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
 
LoadElimination & operator= (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)
 
CommonOperatorBuilder * common () const
 
Isolate * isolate () const
 
Factory * factory () const
 
TFGraph * graph () const
 
JSGraph * jsgraph () const
 
JSHeapBroker * broker () const
 
Zone * zone () 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

JSHeapBroker * broker_
 
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: