v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
pair-load-store-reducer.h
Go to the documentation of this file.
1// Copyright 2023 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef V8_COMPILER_PAIR_LOAD_STORE_REDUCER_H_
6#define V8_COMPILER_PAIR_LOAD_STORE_REDUCER_H_
7
12
13namespace v8 {
14namespace internal {
15namespace compiler {
16
17// Forward declarations.
18class CommonOperatorBuilder;
19class MachineGraph;
20class Word32Adapter;
21class Word64Adapter;
22
23// Reduces (currently only) store pairs which can be combined on supported
24// platforms (currently arm64). Stores are trivially pairable if they are next
25// to each other, write to consecutive indices and do not have a write barrier.
26// TODO(olivf, v8:13877) Add support for loads, more word sizes, and arm.
28 : public NON_EXPORTED_BASE(AdvancedReducer) {
29 public:
30 PairLoadStoreReducer(Editor* editor, MachineGraph* mcgraph,
32
33 const char* reducer_name() const override { return "PairLoadStoreReducer"; }
34
35 Reduction Reduce(Node* node) override;
36
37 private:
40};
41
42} // namespace compiler
43} // namespace internal
44} // namespace v8
45
46#endif // V8_COMPILER_PAIR_LOAD_STORE_REDUCER_H_
Isolate * isolate_
#define NON_EXPORTED_BASE(code)
#define V8_EXPORT_PRIVATE
Definition macros.h:460