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

#include <load-elimination.h>

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

Classes

class  AbstractElements
 
class  AbstractField
 
class  AbstractMaps
 
class  AbstractState
 
class  AbstractStateForEffectNodes
 
class  AliasStateInfo
 
struct  FieldInfo
 
class  IndexRange
 

Public Member Functions

 LoadElimination (Editor *editor, JSHeapBroker *broker, JSGraph *jsgraph, Zone *zone)
 
 ~LoadElimination () final=default
 
 LoadElimination (const LoadElimination &)=delete
 
LoadEliminationoperator= (const LoadElimination &)=delete
 
const char * reducer_name () const override
 
Reduction Reduce (Node *node) final
 

Private Member Functions

Reduction ReduceCheckMaps (Node *node)
 
Reduction ReduceCompareMaps (Node *node)
 
Reduction ReduceMapGuard (Node *node)
 
Reduction ReduceEnsureWritableFastElements (Node *node)
 
Reduction ReduceMaybeGrowFastElements (Node *node)
 
Reduction ReduceTransitionElementsKind (Node *node)
 
Reduction ReduceTransitionElementsKindOrCheckMap (Node *node)
 
Reduction ReduceLoadField (Node *node, FieldAccess const &access)
 
Reduction ReduceStoreField (Node *node, FieldAccess const &access)
 
Reduction ReduceLoadElement (Node *node)
 
Reduction ReduceStoreElement (Node *node)
 
Reduction ReduceTransitionAndStoreElement (Node *node)
 
Reduction ReduceStoreTypedElement (Node *node)
 
Reduction ReduceEffectPhi (Node *node)
 
Reduction ReduceStart (Node *node)
 
Reduction ReduceOtherNode (Node *node)
 
Reduction UpdateState (Node *node, AbstractState const *state)
 
AbstractState const * ComputeLoopState (Node *node, AbstractState const *state) const
 
AbstractState const * ComputeLoopStateForStoreField (Node *current, LoadElimination::AbstractState const *state, FieldAccess const &access) const
 
AbstractState const * UpdateStateForPhi (AbstractState const *state, Node *effect_phi, Node *phi)
 
CommonOperatorBuildercommon () const
 
Isolateisolate () const
 
Factoryfactory () const
 
TFGraphgraph () const
 
JSGraphjsgraph () const
 
JSHeapBrokerbroker () const
 
Zonezone () const
 

Static Private Member Functions

static IndexRange FieldIndexOf (int offset, int representation_size)
 
static IndexRange FieldIndexOf (FieldAccess const &access)
 
static AbstractState const * empty_state ()
 

Private Attributes

JSHeapBrokerbroker_
 
AbstractStateForEffectNodes node_states_
 
JSGraph *const jsgraph_
 

Static Private Attributes

static const size_t kMaxTrackedElements = 8
 
static size_t const kMaxTrackedFieldsPerObject = 32
 
static size_t const kMaxTrackedObjects = 100
 
static int const kMaxTrackedFields = 300
 

Detailed Description

Definition at line 29 of file load-elimination.h.

Constructor & Destructor Documentation

◆ LoadElimination() [1/2]

v8::internal::compiler::LoadElimination::LoadElimination ( Editor * editor,
JSHeapBroker * broker,
JSGraph * jsgraph,
Zone * zone )
inline

Definition at line 32 of file load-elimination.h.

◆ ~LoadElimination()

v8::internal::compiler::LoadElimination::~LoadElimination ( )
finaldefault

◆ LoadElimination() [2/2]

v8::internal::compiler::LoadElimination::LoadElimination ( const LoadElimination & )
delete

Member Function Documentation

◆ broker()

JSHeapBroker * v8::internal::compiler::LoadElimination::broker ( ) const
inlineprivate

Definition at line 358 of file load-elimination.h.

Here is the caller graph for this function:

◆ common()

CommonOperatorBuilder * v8::internal::compiler::LoadElimination::common ( ) const
private

Definition at line 1564 of file load-elimination.cc.

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

◆ ComputeLoopState()

LoadElimination::AbstractState const * v8::internal::compiler::LoadElimination::ComputeLoopState ( Node * node,
AbstractState const * state ) const
private

Definition at line 1359 of file load-elimination.cc.

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

◆ ComputeLoopStateForStoreField()

LoadElimination::AbstractState const * v8::internal::compiler::LoadElimination::ComputeLoopStateForStoreField ( Node * current,
LoadElimination::AbstractState const * state,
FieldAccess const & access ) const
private

Definition at line 1341 of file load-elimination.cc.

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

◆ empty_state()

static AbstractState const * v8::internal::compiler::LoadElimination::empty_state ( )
inlinestaticprivate

Definition at line 349 of file load-elimination.h.

Here is the caller graph for this function:

◆ factory()

Factory * v8::internal::compiler::LoadElimination::factory ( ) const
private

Definition at line 1572 of file load-elimination.cc.

Here is the call graph for this function:

◆ FieldIndexOf() [1/2]

LoadElimination::IndexRange v8::internal::compiler::LoadElimination::FieldIndexOf ( FieldAccess const & access)
staticprivate

Definition at line 1517 of file load-elimination.cc.

Here is the call graph for this function:

◆ FieldIndexOf() [2/2]

LoadElimination::IndexRange v8::internal::compiler::LoadElimination::FieldIndexOf ( int offset,
int representation_size )
staticprivate

Definition at line 1508 of file load-elimination.cc.

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

◆ graph()

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

Definition at line 1568 of file load-elimination.cc.

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

◆ isolate()

Isolate * v8::internal::compiler::LoadElimination::isolate ( ) const
private

Definition at line 1570 of file load-elimination.cc.

Here is the call graph for this function:

◆ jsgraph()

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

Definition at line 357 of file load-elimination.h.

Here is the caller graph for this function:

◆ operator=()

LoadElimination & v8::internal::compiler::LoadElimination::operator= ( const LoadElimination & )
delete

◆ Reduce()

Reduction v8::internal::compiler::LoadElimination::Reduce ( Node * node)
final

Definition at line 77 of file load-elimination.cc.

Here is the call graph for this function:

◆ ReduceCheckMaps()

Reduction v8::internal::compiler::LoadElimination::ReduceCheckMaps ( Node * node)
private

Definition at line 782 of file load-elimination.cc.

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

◆ ReduceCompareMaps()

Reduction v8::internal::compiler::LoadElimination::ReduceCompareMaps ( Node * node)
private

Definition at line 797 of file load-elimination.cc.

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

◆ ReduceEffectPhi()

Reduction v8::internal::compiler::LoadElimination::ReduceEffectPhi ( Node * node)
private

Definition at line 1258 of file load-elimination.cc.

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

◆ ReduceEnsureWritableFastElements()

Reduction v8::internal::compiler::LoadElimination::ReduceEnsureWritableFastElements ( Node * node)
private

Definition at line 815 of file load-elimination.cc.

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

◆ ReduceLoadElement()

Reduction v8::internal::compiler::LoadElimination::ReduceLoadElement ( Node * node)
private

Definition at line 1128 of file load-elimination.cc.

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

◆ ReduceLoadField()

Reduction v8::internal::compiler::LoadElimination::ReduceLoadField ( Node * node,
FieldAccess const & access )
private

Definition at line 981 of file load-elimination.cc.

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

◆ ReduceMapGuard()

Reduction v8::internal::compiler::LoadElimination::ReduceMapGuard ( Node * node)
private

Definition at line 767 of file load-elimination.cc.

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

◆ ReduceMaybeGrowFastElements()

Reduction v8::internal::compiler::LoadElimination::ReduceMaybeGrowFastElements ( Node * node)
private

Definition at line 842 of file load-elimination.cc.

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

◆ ReduceOtherNode()

Reduction v8::internal::compiler::LoadElimination::ReduceOtherNode ( Node * node)
private

Definition at line 1303 of file load-elimination.cc.

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

◆ reducer_name()

const char * v8::internal::compiler::LoadElimination::reducer_name ( ) const
inlineoverride

Definition at line 42 of file load-elimination.h.

◆ ReduceStart()

Reduction v8::internal::compiler::LoadElimination::ReduceStart ( Node * node)
private

Definition at line 1299 of file load-elimination.cc.

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

◆ ReduceStoreElement()

Reduction v8::internal::compiler::LoadElimination::ReduceStoreElement ( Node * node)
private

Definition at line 1182 of file load-elimination.cc.

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

◆ ReduceStoreField()

Reduction v8::internal::compiler::LoadElimination::ReduceStoreField ( Node * node,
FieldAccess const & access )
private

Definition at line 1044 of file load-elimination.cc.

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

◆ ReduceStoreTypedElement()

Reduction v8::internal::compiler::LoadElimination::ReduceStoreTypedElement ( Node * node)
private

Definition at line 1230 of file load-elimination.cc.

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

◆ ReduceTransitionAndStoreElement()

Reduction v8::internal::compiler::LoadElimination::ReduceTransitionAndStoreElement ( Node * node)
private

Definition at line 956 of file load-elimination.cc.

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

◆ ReduceTransitionElementsKind()

Reduction v8::internal::compiler::LoadElimination::ReduceTransitionElementsKind ( Node * node)
private

Definition at line 870 of file load-elimination.cc.

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

◆ ReduceTransitionElementsKindOrCheckMap()

Reduction v8::internal::compiler::LoadElimination::ReduceTransitionElementsKindOrCheckMap ( Node * node)
private

Definition at line 910 of file load-elimination.cc.

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

◆ UpdateState()

Reduction v8::internal::compiler::LoadElimination::UpdateState ( Node * node,
AbstractState const * state )
private

Definition at line 1327 of file load-elimination.cc.

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

◆ UpdateStateForPhi()

LoadElimination::AbstractState const * v8::internal::compiler::LoadElimination::UpdateStateForPhi ( AbstractState const * state,
Node * effect_phi,
Node * phi )
private

Definition at line 1237 of file load-elimination.cc.

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

◆ zone()

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

Definition at line 359 of file load-elimination.h.

Here is the caller graph for this function:

Member Data Documentation

◆ broker_

JSHeapBroker* v8::internal::compiler::LoadElimination::broker_
private

Definition at line 361 of file load-elimination.h.

◆ jsgraph_

JSGraph* const v8::internal::compiler::LoadElimination::jsgraph_
private

Definition at line 363 of file load-elimination.h.

◆ kMaxTrackedElements

const size_t v8::internal::compiler::LoadElimination::kMaxTrackedElements = 8
staticprivate

Definition at line 47 of file load-elimination.h.

◆ kMaxTrackedFields

int const v8::internal::compiler::LoadElimination::kMaxTrackedFields = 300
staticprivate

Definition at line 188 of file load-elimination.h.

◆ kMaxTrackedFieldsPerObject

size_t const v8::internal::compiler::LoadElimination::kMaxTrackedFieldsPerObject = 32
staticprivate

Definition at line 186 of file load-elimination.h.

◆ kMaxTrackedObjects

size_t const v8::internal::compiler::LoadElimination::kMaxTrackedObjects = 100
staticprivate

Definition at line 187 of file load-elimination.h.

◆ node_states_

AbstractStateForEffectNodes v8::internal::compiler::LoadElimination::node_states_
private

Definition at line 362 of file load-elimination.h.


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