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

#include <loop-variable-optimizer.h>

Collaboration diagram for v8::internal::compiler::LoopVariableOptimizer:

Classes

struct  Constraint
 

Public Member Functions

void Run ()
 
 LoopVariableOptimizer (TFGraph *graph, CommonOperatorBuilder *common, Zone *zone)
 
const ZoneMap< int, InductionVariable * > & induction_variables ()
 
void ChangeToInductionVariablePhis ()
 
void ChangeToPhisAndInsertGuards ()
 

Private Types

using VariableLimits = FunctionalList<Constraint>
 

Private Member Functions

void VisitBackedge (Node *from, Node *loop)
 
void VisitNode (Node *node)
 
void VisitMerge (Node *node)
 
void VisitLoop (Node *node)
 
void VisitIf (Node *node, bool polarity)
 
void VisitStart (Node *node)
 
void VisitLoopExit (Node *node)
 
void VisitOtherControl (Node *node)
 
void AddCmpToLimits (VariableLimits *limits, Node *node, InductionVariable::ConstraintKind kind, bool polarity)
 
void TakeConditionsFromFirstControl (Node *node)
 
const InductionVariableFindInductionVariable (Node *node)
 
InductionVariableTryGetInductionVariable (Node *phi)
 
void DetectInductionVariables (Node *loop)
 
TFGraphgraph ()
 
CommonOperatorBuildercommon ()
 
Zonezone ()
 

Private Attributes

const int kAssumedLoopEntryIndex = 0
 
const int kFirstBackedge = 1
 
TFGraphgraph_
 
CommonOperatorBuildercommon_
 
Zonezone_
 
NodeAuxData< VariableLimitslimits_
 
NodeAuxData< boolreduced_
 
ZoneMap< int, InductionVariable * > induction_vars_
 

Detailed Description

Definition at line 70 of file loop-variable-optimizer.h.

Member Typedef Documentation

◆ VariableLimits

Constructor & Destructor Documentation

◆ LoopVariableOptimizer()

v8::internal::compiler::LoopVariableOptimizer::LoopVariableOptimizer ( TFGraph * graph,
CommonOperatorBuilder * common,
Zone * zone )

Definition at line 25 of file loop-variable-optimizer.cc.

Member Function Documentation

◆ AddCmpToLimits()

void v8::internal::compiler::LoopVariableOptimizer::AddCmpToLimits ( VariableLimits * limits,
Node * node,
InductionVariable::ConstraintKind kind,
bool polarity )
private

Definition at line 182 of file loop-variable-optimizer.cc.

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

◆ ChangeToInductionVariablePhis()

void v8::internal::compiler::LoopVariableOptimizer::ChangeToInductionVariablePhis ( )

Definition at line 289 of file loop-variable-optimizer.cc.

Here is the call graph for this function:

◆ ChangeToPhisAndInsertGuards()

void v8::internal::compiler::LoopVariableOptimizer::ChangeToPhisAndInsertGuards ( )

Definition at line 319 of file loop-variable-optimizer.cc.

Here is the call graph for this function:

◆ common()

CommonOperatorBuilder * v8::internal::compiler::LoopVariableOptimizer::common ( )
inlineprivate

Definition at line 118 of file loop-variable-optimizer.h.

Here is the caller graph for this function:

◆ DetectInductionVariables()

void v8::internal::compiler::LoopVariableOptimizer::DetectInductionVariables ( Node * loop)
private

Definition at line 272 of file loop-variable-optimizer.cc.

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

◆ FindInductionVariable()

const InductionVariable * v8::internal::compiler::LoopVariableOptimizer::FindInductionVariable ( Node * node)
private

Definition at line 214 of file loop-variable-optimizer.cc.

Here is the caller graph for this function:

◆ graph()

TFGraph * v8::internal::compiler::LoopVariableOptimizer::graph ( )
inlineprivate

Definition at line 117 of file loop-variable-optimizer.h.

Here is the caller graph for this function:

◆ induction_variables()

const ZoneMap< int, InductionVariable * > & v8::internal::compiler::LoopVariableOptimizer::induction_variables ( )
inline

Definition at line 77 of file loop-variable-optimizer.h.

◆ Run()

void v8::internal::compiler::LoopVariableOptimizer::Run ( )

Definition at line 35 of file loop-variable-optimizer.cc.

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

◆ TakeConditionsFromFirstControl()

void v8::internal::compiler::LoopVariableOptimizer::TakeConditionsFromFirstControl ( Node * node)
private

Definition at line 210 of file loop-variable-optimizer.cc.

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

◆ TryGetInductionVariable()

InductionVariable * v8::internal::compiler::LoopVariableOptimizer::TryGetInductionVariable ( Node * phi)
private

Definition at line 223 of file loop-variable-optimizer.cc.

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

◆ VisitBackedge()

void v8::internal::compiler::LoopVariableOptimizer::VisitBackedge ( Node * from,
Node * loop )
private

Definition at line 97 of file loop-variable-optimizer.cc.

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

◆ VisitIf()

void v8::internal::compiler::LoopVariableOptimizer::VisitIf ( Node * node,
bool polarity )
private

Definition at line 154 of file loop-variable-optimizer.cc.

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

◆ VisitLoop()

void v8::internal::compiler::LoopVariableOptimizer::VisitLoop ( Node * node)
private

Definition at line 148 of file loop-variable-optimizer.cc.

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

◆ VisitLoopExit()

void v8::internal::compiler::LoopVariableOptimizer::VisitLoopExit ( Node * node)
private

Definition at line 201 of file loop-variable-optimizer.cc.

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

◆ VisitMerge()

void v8::internal::compiler::LoopVariableOptimizer::VisitMerge ( Node * node)
private

Definition at line 139 of file loop-variable-optimizer.cc.

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

◆ VisitNode()

void v8::internal::compiler::LoopVariableOptimizer::VisitNode ( Node * node)
private

Definition at line 120 of file loop-variable-optimizer.cc.

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

◆ VisitOtherControl()

void v8::internal::compiler::LoopVariableOptimizer::VisitOtherControl ( Node * node)
private

Definition at line 205 of file loop-variable-optimizer.cc.

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

◆ VisitStart()

void v8::internal::compiler::LoopVariableOptimizer::VisitStart ( Node * node)
private

Definition at line 199 of file loop-variable-optimizer.cc.

Here is the caller graph for this function:

◆ zone()

Zone * v8::internal::compiler::LoopVariableOptimizer::zone ( )
inlineprivate

Definition at line 119 of file loop-variable-optimizer.h.

Here is the caller graph for this function:

Member Data Documentation

◆ common_

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

Definition at line 122 of file loop-variable-optimizer.h.

◆ graph_

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

Definition at line 121 of file loop-variable-optimizer.h.

◆ induction_vars_

ZoneMap<int, InductionVariable*> v8::internal::compiler::LoopVariableOptimizer::induction_vars_
private

Definition at line 127 of file loop-variable-optimizer.h.

◆ kAssumedLoopEntryIndex

const int v8::internal::compiler::LoopVariableOptimizer::kAssumedLoopEntryIndex = 0
private

Definition at line 85 of file loop-variable-optimizer.h.

◆ kFirstBackedge

const int v8::internal::compiler::LoopVariableOptimizer::kFirstBackedge = 1
private

Definition at line 86 of file loop-variable-optimizer.h.

◆ limits_

NodeAuxData<VariableLimits> v8::internal::compiler::LoopVariableOptimizer::limits_
private

Definition at line 124 of file loop-variable-optimizer.h.

◆ reduced_

NodeAuxData<bool> v8::internal::compiler::LoopVariableOptimizer::reduced_
private

Definition at line 125 of file loop-variable-optimizer.h.

◆ zone_

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

Definition at line 123 of file loop-variable-optimizer.h.


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