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
8
#include "
src/base/compiler-specific.h
"
9
#include "
src/common/globals.h
"
10
#include "
src/compiler/graph-reducer.h
"
11
#include "
src/compiler/machine-operator.h
"
12
13
namespace
v8
{
14
namespace
internal
{
15
namespace
compiler {
16
17
// Forward declarations.
18
class
CommonOperatorBuilder;
19
class
MachineGraph;
20
class
Word32Adapter;
21
class
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.
27
class
V8_EXPORT_PRIVATE
PairLoadStoreReducer
final
28
:
public
NON_EXPORTED_BASE
(AdvancedReducer) {
29
public
:
30
PairLoadStoreReducer
(Editor* editor,
MachineGraph
* mcgraph,
31
Isolate
*
isolate_
);
32
33
const
char
*
reducer_name
()
const override
{
return
"PairLoadStoreReducer"
; }
34
35
Reduction
Reduce(
Node
* node)
override
;
36
37
private
:
38
MachineGraph
*
mcgraph_
;
39
Isolate
*
isolate_
;
40
};
41
42
}
// namespace compiler
43
}
// namespace internal
44
}
// namespace v8
45
46
#endif
// V8_COMPILER_PAIR_LOAD_STORE_REDUCER_H_
isolate_
Isolate * isolate_
Definition
api-natives.cc:37
v8::internal::Isolate
Definition
isolate.h:586
v8::internal::compiler::MachineGraph
Definition
machine-graph.h:24
v8::internal::compiler::Node
Definition
node.h:41
v8::internal::compiler::PairLoadStoreReducer
Definition
pair-load-store-reducer.h:28
v8::internal::compiler::PairLoadStoreReducer::mcgraph_
MachineGraph * mcgraph_
Definition
pair-load-store-reducer.h:38
v8::internal::compiler::PairLoadStoreReducer::isolate_
Isolate * isolate_
Definition
pair-load-store-reducer.h:39
v8::internal::compiler::PairLoadStoreReducer::reducer_name
const char * reducer_name() const override
Definition
pair-load-store-reducer.h:33
v8::internal::compiler::Reduction
Definition
graph-reducer.h:34
globals.h
graph-reducer.h
machine-operator.h
v8::internal::internal
internal
Definition
wasm-objects-inl.h:458
v8
Definition
api-arguments-inl.h:19
compiler-specific.h
NON_EXPORTED_BASE
#define NON_EXPORTED_BASE(code)
Definition
compiler-specific.h:93
V8_EXPORT_PRIVATE
#define V8_EXPORT_PRIVATE
Definition
macros.h:460
src
compiler
pair-load-store-reducer.h
Generated on Sun Apr 6 2025 21:08:52 for v8 by
1.12.0