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

#include <memory-optimizer.h>

Collaboration diagram for v8::internal::compiler::MemoryOptimizer:

Classes

struct  Token
 

Public Member Functions

 MemoryOptimizer (JSHeapBroker *broker, JSGraph *jsgraph, Zone *zone, MemoryLowering::AllocationFolding allocation_folding, const char *function_debug_name, TickCounter *tick_counter, bool is_wasm)
 
 ~MemoryOptimizer ()=default
 
void Optimize ()
 

Private Types

using AllocationState = MemoryLowering::AllocationState
 
using AllocationStates = ZoneVector<AllocationState const*>
 

Private Member Functions

void VisitNode (Node *, AllocationState const *, NodeId)
 
void VisitAllocateRaw (Node *, AllocationState const *, NodeId)
 
void VisitCall (Node *, AllocationState const *, NodeId)
 
void VisitLoadFromObject (Node *, AllocationState const *, NodeId)
 
void VisitLoadElement (Node *, AllocationState const *, NodeId)
 
void VisitLoadField (Node *, AllocationState const *, NodeId)
 
void VisitProtectedLoad (Node *, AllocationState const *, NodeId)
 
void VisitProtectedStore (Node *, AllocationState const *, NodeId)
 
void VisitStoreToObject (Node *, AllocationState const *, NodeId)
 
void VisitStoreElement (Node *, AllocationState const *, NodeId)
 
void VisitStoreField (Node *, AllocationState const *, NodeId)
 
void VisitStore (Node *, AllocationState const *, NodeId)
 
void VisitOtherEffect (Node *, AllocationState const *, NodeId)
 
AllocationState const * MergeStates (AllocationStates const &states)
 
void EnqueueMerge (Node *, int, AllocationState const *)
 
void EnqueueUses (Node *, AllocationState const *, NodeId)
 
void EnqueueUse (Node *, int, AllocationState const *, NodeId)
 
void ReplaceUsesAndKillNode (Node *node, Node *replacement)
 
bool AllocationTypeNeedsUpdateToOld (Node *const user, const Edge edge)
 
AllocationState const * empty_state () const
 
MemoryLoweringmemory_lowering ()
 
WasmAddressReassociationwasm_address_reassociation ()
 
TFGraphgraph () const
 
JSGraphjsgraph () const
 
Zonezone () const
 
 DISALLOW_IMPLICIT_CONSTRUCTORS (MemoryOptimizer)
 

Private Attributes

JSGraphAssembler graph_assembler_
 
MemoryLowering memory_lowering_
 
WasmAddressReassociation wasm_address_reassociation_
 
JSGraphjsgraph_
 
AllocationState const *const empty_state_
 
ZoneMap< NodeId, AllocationStatespending_
 
ZoneQueue< Tokentokens_
 
Zone *const zone_
 
TickCounter *const tick_counter_
 

Detailed Description

Definition at line 49 of file memory-optimizer.h.

Member Typedef Documentation

◆ AllocationState

◆ AllocationStates

Constructor & Destructor Documentation

◆ MemoryOptimizer()

v8::internal::compiler::MemoryOptimizer::MemoryOptimizer ( JSHeapBroker * broker,
JSGraph * jsgraph,
Zone * zone,
MemoryLowering::AllocationFolding allocation_folding,
const char * function_debug_name,
TickCounter * tick_counter,
bool is_wasm )

Definition at line 190 of file memory-optimizer.cc.

◆ ~MemoryOptimizer()

v8::internal::compiler::MemoryOptimizer::~MemoryOptimizer ( )
default

Member Function Documentation

◆ AllocationTypeNeedsUpdateToOld()

bool v8::internal::compiler::MemoryOptimizer::AllocationTypeNeedsUpdateToOld ( Node *const user,
const Edge edge )
private

Definition at line 266 of file memory-optimizer.cc.

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

◆ DISALLOW_IMPLICIT_CONSTRUCTORS()

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

◆ empty_state()

AllocationState const * v8::internal::compiler::MemoryOptimizer::empty_state ( ) const
inlineprivate

Definition at line 102 of file memory-optimizer.h.

Here is the caller graph for this function:

◆ EnqueueMerge()

void v8::internal::compiler::MemoryOptimizer::EnqueueMerge ( Node * node,
int index,
AllocationState const * state )
private

Definition at line 465 of file memory-optimizer.cc.

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

◆ EnqueueUse()

void v8::internal::compiler::MemoryOptimizer::EnqueueUse ( Node * node,
int index,
AllocationState const * state,
NodeId effect_chain )
private

Definition at line 518 of file memory-optimizer.cc.

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

◆ EnqueueUses()

void v8::internal::compiler::MemoryOptimizer::EnqueueUses ( Node * node,
AllocationState const * state,
NodeId effect_chain )
private

Definition at line 509 of file memory-optimizer.cc.

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

◆ graph()

TFGraph * v8::internal::compiler::MemoryOptimizer::graph ( ) const
private

Definition at line 532 of file memory-optimizer.cc.

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

◆ jsgraph()

JSGraph * v8::internal::compiler::MemoryOptimizer::jsgraph ( ) const
inlineprivate

Definition at line 108 of file memory-optimizer.h.

Here is the caller graph for this function:

◆ memory_lowering()

MemoryLowering * v8::internal::compiler::MemoryOptimizer::memory_lowering ( )
inlineprivate

Definition at line 103 of file memory-optimizer.h.

Here is the caller graph for this function:

◆ MergeStates()

MemoryOptimizer::AllocationState const * v8::internal::compiler::MemoryOptimizer::MergeStates ( AllocationStates const & states)
private

Definition at line 439 of file memory-optimizer.cc.

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

◆ Optimize()

void v8::internal::compiler::MemoryOptimizer::Optimize ( )

Definition at line 206 of file memory-optimizer.cc.

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

◆ ReplaceUsesAndKillNode()

void v8::internal::compiler::MemoryOptimizer::ReplaceUsesAndKillNode ( Node * node,
Node * replacement )
private

Definition at line 280 of file memory-optimizer.cc.

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

◆ VisitAllocateRaw()

void v8::internal::compiler::MemoryOptimizer::VisitAllocateRaw ( Node * node,
AllocationState const * state,
NodeId effect_chain )
private

Definition at line 289 of file memory-optimizer.cc.

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

◆ VisitCall()

void v8::internal::compiler::MemoryOptimizer::VisitCall ( Node * node,
AllocationState const * state,
NodeId effect_chain )
private

Definition at line 424 of file memory-optimizer.cc.

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

◆ VisitLoadElement()

void v8::internal::compiler::MemoryOptimizer::VisitLoadElement ( Node * node,
AllocationState const * state,
NodeId effect_chain )
private

Definition at line 352 of file memory-optimizer.cc.

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

◆ VisitLoadField()

void v8::internal::compiler::MemoryOptimizer::VisitLoadField ( Node * node,
AllocationState const * state,
NodeId effect_chain )
private

Definition at line 359 of file memory-optimizer.cc.

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

◆ VisitLoadFromObject()

void v8::internal::compiler::MemoryOptimizer::VisitLoadFromObject ( Node * node,
AllocationState const * state,
NodeId effect_chain )
private

Definition at line 331 of file memory-optimizer.cc.

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

◆ VisitNode()

void v8::internal::compiler::MemoryOptimizer::VisitNode ( Node * node,
AllocationState const * state,
NodeId effect_chain )
private

Definition at line 220 of file memory-optimizer.cc.

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

◆ VisitOtherEffect()

void v8::internal::compiler::MemoryOptimizer::VisitOtherEffect ( Node * node,
AllocationState const * state,
NodeId effect_chain )
private

Definition at line 434 of file memory-optimizer.cc.

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

◆ VisitProtectedLoad()

void v8::internal::compiler::MemoryOptimizer::VisitProtectedLoad ( Node * node,
AllocationState const * state,
NodeId effect_chain )
private

Definition at line 379 of file memory-optimizer.cc.

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

◆ VisitProtectedStore()

void v8::internal::compiler::MemoryOptimizer::VisitProtectedStore ( Node * node,
AllocationState const * state,
NodeId effect_chain )
private

Definition at line 391 of file memory-optimizer.cc.

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

◆ VisitStore()

void v8::internal::compiler::MemoryOptimizer::VisitStore ( Node * node,
AllocationState const * state,
NodeId effect_chain )
private

Definition at line 417 of file memory-optimizer.cc.

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

◆ VisitStoreElement()

void v8::internal::compiler::MemoryOptimizer::VisitStoreElement ( Node * node,
AllocationState const * state,
NodeId effect_chain )
private

Definition at line 403 of file memory-optimizer.cc.

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

◆ VisitStoreField()

void v8::internal::compiler::MemoryOptimizer::VisitStoreField ( Node * node,
AllocationState const * state,
NodeId effect_chain )
private

Definition at line 411 of file memory-optimizer.cc.

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

◆ VisitStoreToObject()

void v8::internal::compiler::MemoryOptimizer::VisitStoreToObject ( Node * node,
AllocationState const * state,
NodeId effect_chain )
private

Definition at line 343 of file memory-optimizer.cc.

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

◆ wasm_address_reassociation()

WasmAddressReassociation * v8::internal::compiler::MemoryOptimizer::wasm_address_reassociation ( )
inlineprivate

Definition at line 104 of file memory-optimizer.h.

Here is the caller graph for this function:

◆ zone()

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

Definition at line 109 of file memory-optimizer.h.

Here is the caller graph for this function:

Member Data Documentation

◆ empty_state_

AllocationState const* const v8::internal::compiler::MemoryOptimizer::empty_state_
private

Definition at line 115 of file memory-optimizer.h.

◆ graph_assembler_

JSGraphAssembler v8::internal::compiler::MemoryOptimizer::graph_assembler_
private

Definition at line 111 of file memory-optimizer.h.

◆ jsgraph_

JSGraph* v8::internal::compiler::MemoryOptimizer::jsgraph_
private

Definition at line 114 of file memory-optimizer.h.

◆ memory_lowering_

MemoryLowering v8::internal::compiler::MemoryOptimizer::memory_lowering_
private

Definition at line 112 of file memory-optimizer.h.

◆ pending_

ZoneMap<NodeId, AllocationStates> v8::internal::compiler::MemoryOptimizer::pending_
private

Definition at line 116 of file memory-optimizer.h.

◆ tick_counter_

TickCounter* const v8::internal::compiler::MemoryOptimizer::tick_counter_
private

Definition at line 119 of file memory-optimizer.h.

◆ tokens_

ZoneQueue<Token> v8::internal::compiler::MemoryOptimizer::tokens_
private

Definition at line 117 of file memory-optimizer.h.

◆ wasm_address_reassociation_

WasmAddressReassociation v8::internal::compiler::MemoryOptimizer::wasm_address_reassociation_
private

Definition at line 113 of file memory-optimizer.h.

◆ zone_

Zone* const v8::internal::compiler::MemoryOptimizer::zone_
private

Definition at line 118 of file memory-optimizer.h.


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