v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::compiler::MemoryLowering Class Referencefinal

#include <memory-lowering.h>

Inheritance diagram for v8::internal::compiler::MemoryLowering:
Collaboration diagram for v8::internal::compiler::MemoryLowering:

Classes

class  AllocationGroup
 
class  AllocationState
 

Public Types

enum class  AllocationFolding { kDoAllocationFolding , kDontAllocationFolding }
 
using WriteBarrierAssertFailedCallback
 

Public Member Functions

 MemoryLowering (JSGraph *jsgraph, Zone *zone, JSGraphAssembler *graph_assembler, bool is_wasm, AllocationFolding allocation_folding=AllocationFolding::kDontAllocationFolding, WriteBarrierAssertFailedCallback callback=[](Node *, Node *, const char *, Zone *) { UNREACHABLE();}, const char *function_debug_name=nullptr)
 
const char * reducer_name () const override
 
Reduction Reduce (Node *node) override
 
Reduction ReduceAllocateRaw (Node *node, AllocationType allocation_type, AllocationState const **state)
 
Reduction ReduceLoadFromObject (Node *node)
 
Reduction ReduceLoadElement (Node *node)
 
Reduction ReduceLoadField (Node *node)
 
Reduction ReduceStoreToObject (Node *node, AllocationState const *state=nullptr)
 
Reduction ReduceStoreElement (Node *node, AllocationState const *state=nullptr)
 
Reduction ReduceStoreField (Node *node, AllocationState const *state=nullptr)
 
Reduction ReduceStore (Node *node, AllocationState const *state=nullptr)
 
- Public Member Functions inherited from v8::internal::compiler::Reducer
virtual ~Reducer ()=default
 
Reduction Reduce (Node *node, ObserveNodeManager *observe_node_manager)
 
virtual void Finalize ()
 

Private Member Functions

Reduction ReduceAllocateRaw (Node *node)
 
WriteBarrierKind ComputeWriteBarrierKind (Node *node, Node *object, Node *value, AllocationState const *state, WriteBarrierKind)
 
Reduction ReduceLoadExternalPointerField (Node *node)
 
Reduction ReduceLoadBoundedSize (Node *node)
 
Reduction ReduceLoadMap (Node *node)
 
NodeComputeIndex (ElementAccess const &access, Node *node)
 
void EnsureAllocateOperator ()
 
NodeGetWasmInstanceNode ()
 
NodeAlignToAllocationAlignment (Node *address)
 
TFGraphgraph () const
 
Isolateisolate () const
 
Zonezone () const
 
Zonegraph_zone () const
 
CommonOperatorBuildercommon () const
 
MachineOperatorBuildermachine () const
 
JSGraphAssemblergasm () const
 
 DISALLOW_IMPLICIT_CONSTRUCTORS (MemoryLowering)
 

Private Attributes

SetOncePointer< const Operatorallocate_operator_
 
SetOncePointer< Nodewasm_instance_node_
 
Isolateisolate_
 
Zonezone_
 
TFGraphgraph_
 
CommonOperatorBuildercommon_
 
MachineOperatorBuildermachine_
 
JSGraphAssemblergraph_assembler_
 
bool is_wasm_
 
AllocationFolding allocation_folding_
 
WriteBarrierAssertFailedCallback write_barrier_assert_failed_
 
const char * function_debug_name_
 

Additional Inherited Members

- Static Public Member Functions inherited from v8::internal::compiler::Reducer
static Reduction NoChange ()
 
static Reduction Replace (Node *node)
 
static Reduction Changed (Node *node)
 

Detailed Description

Definition at line 27 of file memory-lowering.h.

Member Typedef Documentation

◆ WriteBarrierAssertFailedCallback

Initial value:
std::function<void(
Node* node, Node* object, const char* name, Zone* temp_zone)>
friend Zone
Definition asm-types.cc:195

Definition at line 73 of file memory-lowering.h.

Member Enumeration Documentation

◆ AllocationFolding

Enumerator
kDoAllocationFolding 
kDontAllocationFolding 

Definition at line 29 of file memory-lowering.h.

Constructor & Destructor Documentation

◆ MemoryLowering()

v8::internal::compiler::MemoryLowering::MemoryLowering ( JSGraph * jsgraph,
Zone * zone,
JSGraphAssembler * graph_assembler,
bool is_wasm,
AllocationFolding allocation_folding = AllocationFolding::kDontAllocationFolding,
WriteBarrierAssertFailedCallback callback = [](Node*, Node*, const char*,                                                     Zone*) { UNREACHABLE(); },
const char * function_debug_name = nullptr )

Definition at line 61 of file memory-lowering.cc.

Member Function Documentation

◆ AlignToAllocationAlignment()

Node * v8::internal::compiler::MemoryLowering::AlignToAllocationAlignment ( Node * address)
private

Definition at line 136 of file memory-lowering.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ common()

CommonOperatorBuilder * v8::internal::compiler::MemoryLowering::common ( ) const
inlineprivate

Definition at line 126 of file memory-lowering.h.

Here is the caller graph for this function:

◆ ComputeIndex()

Node * v8::internal::compiler::MemoryLowering::ComputeIndex ( ElementAccess const & access,
Node * node )
private

Definition at line 663 of file memory-lowering.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ComputeWriteBarrierKind()

WriteBarrierKind v8::internal::compiler::MemoryLowering::ComputeWriteBarrierKind ( Node * node,
Node * object,
Node * value,
AllocationState const * state,
WriteBarrierKind write_barrier_kind )
private

Definition at line 707 of file memory-lowering.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DISALLOW_IMPLICIT_CONSTRUCTORS()

v8::internal::compiler::MemoryLowering::DISALLOW_IMPLICIT_CONSTRUCTORS ( MemoryLowering )
private

◆ EnsureAllocateOperator()

void v8::internal::compiler::MemoryLowering::EnsureAllocateOperator ( )
private

Definition at line 108 of file memory-lowering.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ gasm()

JSGraphAssembler * v8::internal::compiler::MemoryLowering::gasm ( ) const
inlineprivate

Definition at line 128 of file memory-lowering.h.

Here is the caller graph for this function:

◆ GetWasmInstanceNode()

Node * v8::internal::compiler::MemoryLowering::GetWasmInstanceNode ( )
private
Here is the caller graph for this function:

◆ graph()

TFGraph * v8::internal::compiler::MemoryLowering::graph ( ) const
inlineprivate

Definition at line 122 of file memory-lowering.h.

Here is the caller graph for this function:

◆ graph_zone()

Zone * v8::internal::compiler::MemoryLowering::graph_zone ( ) const
inlineprivate

Definition at line 77 of file memory-lowering.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isolate()

Isolate * v8::internal::compiler::MemoryLowering::isolate ( ) const
inlineprivate

Definition at line 123 of file memory-lowering.h.

Here is the caller graph for this function:

◆ machine()

MachineOperatorBuilder * v8::internal::compiler::MemoryLowering::machine ( ) const
inlineprivate

Definition at line 127 of file memory-lowering.h.

Here is the caller graph for this function:

◆ Reduce()

Reduction v8::internal::compiler::MemoryLowering::Reduce ( Node * node)
overridevirtual

Implements v8::internal::compiler::Reducer.

Definition at line 79 of file memory-lowering.cc.

Here is the call graph for this function:

◆ ReduceAllocateRaw() [1/2]

Reduction v8::internal::compiler::MemoryLowering::ReduceAllocateRaw ( Node * node)
private

Definition at line 701 of file memory-lowering.cc.

Here is the call graph for this function:

◆ ReduceAllocateRaw() [2/2]

Reduction v8::internal::compiler::MemoryLowering::ReduceAllocateRaw ( Node * node,
AllocationType allocation_type,
AllocationState const ** state )

Definition at line 162 of file memory-lowering.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReduceLoadBoundedSize()

Reduction v8::internal::compiler::MemoryLowering::ReduceLoadBoundedSize ( Node * node)
private

Definition at line 498 of file memory-lowering.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReduceLoadElement()

Reduction v8::internal::compiler::MemoryLowering::ReduceLoadElement ( Node * node)

Definition at line 419 of file memory-lowering.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReduceLoadExternalPointerField()

Reduction v8::internal::compiler::MemoryLowering::ReduceLoadExternalPointerField ( Node * node)
private

Definition at line 430 of file memory-lowering.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReduceLoadField()

Reduction v8::internal::compiler::MemoryLowering::ReduceLoadField ( Node * node)

Definition at line 535 of file memory-lowering.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReduceLoadFromObject()

Reduction v8::internal::compiler::MemoryLowering::ReduceLoadFromObject ( Node * node)

Definition at line 397 of file memory-lowering.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReduceLoadMap()

Reduction v8::internal::compiler::MemoryLowering::ReduceLoadMap ( Node * node)
private

Definition at line 519 of file memory-lowering.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reducer_name()

const char * v8::internal::compiler::MemoryLowering::reducer_name ( ) const
inlineoverridevirtual

Implements v8::internal::compiler::Reducer.

Definition at line 85 of file memory-lowering.h.

◆ ReduceStore()

Reduction v8::internal::compiler::MemoryLowering::ReduceStore ( Node * node,
AllocationState const * state = nullptr )

Definition at line 646 of file memory-lowering.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReduceStoreElement()

Reduction v8::internal::compiler::MemoryLowering::ReduceStoreElement ( Node * node,
AllocationState const * state = nullptr )

Definition at line 581 of file memory-lowering.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReduceStoreField()

Reduction v8::internal::compiler::MemoryLowering::ReduceStoreField ( Node * node,
AllocationState const * state = nullptr )

Definition at line 597 of file memory-lowering.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReduceStoreToObject()

Reduction v8::internal::compiler::MemoryLowering::ReduceStoreToObject ( Node * node,
AllocationState const * state = nullptr )

Definition at line 560 of file memory-lowering.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ zone()

Zone * v8::internal::compiler::MemoryLowering::zone ( ) const
inlineprivate

Definition at line 124 of file memory-lowering.h.

Here is the caller graph for this function:

Member Data Documentation

◆ allocate_operator_

SetOncePointer<const Operator> v8::internal::compiler::MemoryLowering::allocate_operator_
private

Definition at line 130 of file memory-lowering.h.

◆ allocation_folding_

AllocationFolding v8::internal::compiler::MemoryLowering::allocation_folding_
private

Definition at line 139 of file memory-lowering.h.

◆ common_

CommonOperatorBuilder* v8::internal::compiler::MemoryLowering::common_
private

Definition at line 135 of file memory-lowering.h.

◆ function_debug_name_

const char* v8::internal::compiler::MemoryLowering::function_debug_name_
private

Definition at line 141 of file memory-lowering.h.

◆ graph_

TFGraph* v8::internal::compiler::MemoryLowering::graph_
private

Definition at line 134 of file memory-lowering.h.

◆ graph_assembler_

JSGraphAssembler* v8::internal::compiler::MemoryLowering::graph_assembler_
private

Definition at line 137 of file memory-lowering.h.

◆ is_wasm_

bool v8::internal::compiler::MemoryLowering::is_wasm_
private

Definition at line 138 of file memory-lowering.h.

◆ isolate_

Isolate* v8::internal::compiler::MemoryLowering::isolate_
private

Definition at line 132 of file memory-lowering.h.

◆ machine_

MachineOperatorBuilder* v8::internal::compiler::MemoryLowering::machine_
private

Definition at line 136 of file memory-lowering.h.

◆ wasm_instance_node_

SetOncePointer<Node> v8::internal::compiler::MemoryLowering::wasm_instance_node_
private

Definition at line 131 of file memory-lowering.h.

◆ write_barrier_assert_failed_

WriteBarrierAssertFailedCallback v8::internal::compiler::MemoryLowering::write_barrier_assert_failed_
private

Definition at line 140 of file memory-lowering.h.

◆ zone_

Zone* v8::internal::compiler::MemoryLowering::zone_
private

Definition at line 133 of file memory-lowering.h.


The documentation for this class was generated from the following files: