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

Public Member Functions

 LoopFinderImpl (TFGraph *graph, LoopTree *loop_tree, TickCounter *tick_counter, Zone *zone)
 
void Run ()
 
void Print ()
 

Private Member Functions

int num_nodes ()
 
bool PropagateBackwardMarks (Node *from, Node *to, int loop_filter)
 
bool SetBackwardMark (Node *to, int loop_num)
 
bool SetForwardMark (Node *to, int loop_num)
 
bool PropagateForwardMarks (Node *from, Node *to)
 
bool IsInLoop (Node *node, int loop_num)
 
void PropagateBackward ()
 
int CreateLoopInfo (Node *node)
 
void SetLoopMark (Node *node, int loop_num)
 
void SetLoopMarkForLoopHeader (Node *node, int loop_num)
 
void ResizeBackwardMarks ()
 
void ResizeForwardMarks ()
 
void PropagateForward ()
 
bool IsLoopHeaderNode (Node *node)
 
bool IsLoopExitNode (Node *node)
 
bool IsBackedge (Node *use, int index)
 
int LoopNum (Node *node)
 
NodeInfoinfo (Node *node)
 
void Queue (Node *node)
 
void AddNodeToLoop (NodeInfo *node_info, TempLoopInfo *loop, int loop_num)
 
void FinishLoopTree ()
 
void FinishSingleLoop ()
 
void SerializeLoop (LoopTree::Loop *loop)
 
LoopTree::LoopConnectLoopTree (int loop_num)
 
void PrintLoop (LoopTree::Loop *loop)
 

Private Attributes

Zonezone_
 
Nodeend_
 
NodeDeque queue_
 
NodeMarker< boolqueued_
 
ZoneVector< NodeInfoinfo_
 
ZoneVector< TempLoopInfoloops_
 
ZoneVector< int > loop_num_
 
LoopTreeloop_tree_
 
int loops_found_
 
int width_
 
uint32_t * backward_
 
uint32_t * forward_
 
TickCounter *const tick_counter_
 

Detailed Description

Definition at line 60 of file loop-analysis.cc.

Constructor & Destructor Documentation

◆ LoopFinderImpl()

v8::internal::compiler::LoopFinderImpl::LoopFinderImpl ( TFGraph * graph,
LoopTree * loop_tree,
TickCounter * tick_counter,
Zone * zone )
inline

Definition at line 62 of file loop-analysis.cc.

Member Function Documentation

◆ AddNodeToLoop()

void v8::internal::compiler::LoopFinderImpl::AddNodeToLoop ( NodeInfo * node_info,
TempLoopInfo * loop,
int loop_num )
inlineprivate

Definition at line 374 of file loop-analysis.cc.

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

◆ ConnectLoopTree()

LoopTree::Loop * v8::internal::compiler::LoopFinderImpl::ConnectLoopTree ( int loop_num)
inlineprivate

Definition at line 497 of file loop-analysis.cc.

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

◆ CreateLoopInfo()

int v8::internal::compiler::LoopFinderImpl::CreateLoopInfo ( Node * node)
inlineprivate

Definition at line 249 of file loop-analysis.cc.

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

◆ FinishLoopTree()

void v8::internal::compiler::LoopFinderImpl::FinishLoopTree ( )
inlineprivate

Definition at line 390 of file loop-analysis.cc.

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

◆ FinishSingleLoop()

void v8::internal::compiler::LoopFinderImpl::FinishSingleLoop ( )
inlineprivate

Definition at line 442 of file loop-analysis.cc.

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

◆ info()

NodeInfo & v8::internal::compiler::LoopFinderImpl::info ( Node * node)
inlineprivate

Definition at line 361 of file loop-analysis.cc.

◆ IsBackedge()

bool v8::internal::compiler::LoopFinderImpl::IsBackedge ( Node * use,
int index )
inlineprivate

Definition at line 347 of file loop-analysis.cc.

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

◆ IsInLoop()

bool v8::internal::compiler::LoopFinderImpl::IsInLoop ( Node * node,
int loop_num )
inlineprivate

Definition at line 185 of file loop-analysis.cc.

Here is the caller graph for this function:

◆ IsLoopExitNode()

bool v8::internal::compiler::LoopFinderImpl::IsLoopExitNode ( Node * node)
inlineprivate

Definition at line 341 of file loop-analysis.cc.

Here is the caller graph for this function:

◆ IsLoopHeaderNode()

bool v8::internal::compiler::LoopFinderImpl::IsLoopHeaderNode ( Node * node)
inlineprivate

Definition at line 337 of file loop-analysis.cc.

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

◆ LoopNum()

int v8::internal::compiler::LoopFinderImpl::LoopNum ( Node * node)
inlineprivate

Definition at line 359 of file loop-analysis.cc.

Here is the caller graph for this function:

◆ num_nodes()

int v8::internal::compiler::LoopFinderImpl::num_nodes ( )
inlineprivate

Definition at line 131 of file loop-analysis.cc.

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

◆ Print()

void v8::internal::compiler::LoopFinderImpl::Print ( )
inline

Definition at line 84 of file loop-analysis.cc.

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

◆ PrintLoop()

void v8::internal::compiler::LoopFinderImpl::PrintLoop ( LoopTree::Loop * loop)
inlineprivate

Definition at line 518 of file loop-analysis.cc.

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

◆ PropagateBackward()

void v8::internal::compiler::LoopFinderImpl::PropagateBackward ( )
inlineprivate

Definition at line 191 of file loop-analysis.cc.

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

◆ PropagateBackwardMarks()

bool v8::internal::compiler::LoopFinderImpl::PropagateBackwardMarks ( Node * from,
Node * to,
int loop_filter )
inlineprivate

Definition at line 136 of file loop-analysis.cc.

Here is the caller graph for this function:

◆ PropagateForward()

void v8::internal::compiler::LoopFinderImpl::PropagateForward ( )
inlineprivate

Definition at line 316 of file loop-analysis.cc.

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

◆ PropagateForwardMarks()

bool v8::internal::compiler::LoopFinderImpl::PropagateForwardMarks ( Node * from,
Node * to )
inlineprivate

Definition at line 170 of file loop-analysis.cc.

Here is the caller graph for this function:

◆ Queue()

void v8::internal::compiler::LoopFinderImpl::Queue ( Node * node)
inlineprivate

Definition at line 367 of file loop-analysis.cc.

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

◆ ResizeBackwardMarks()

void v8::internal::compiler::LoopFinderImpl::ResizeBackwardMarks ( )
inlineprivate

Definition at line 293 of file loop-analysis.cc.

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

◆ ResizeForwardMarks()

void v8::internal::compiler::LoopFinderImpl::ResizeForwardMarks ( )
inlineprivate

Definition at line 309 of file loop-analysis.cc.

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

◆ Run()

void v8::internal::compiler::LoopFinderImpl::Run ( )
inline

Definition at line 78 of file loop-analysis.cc.

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

◆ SerializeLoop()

void v8::internal::compiler::LoopFinderImpl::SerializeLoop ( LoopTree::Loop * loop)
inlineprivate

Definition at line 465 of file loop-analysis.cc.

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

◆ SetBackwardMark()

bool v8::internal::compiler::LoopFinderImpl::SetBackwardMark ( Node * to,
int loop_num )
inlineprivate

Definition at line 152 of file loop-analysis.cc.

Here is the caller graph for this function:

◆ SetForwardMark()

bool v8::internal::compiler::LoopFinderImpl::SetForwardMark ( Node * to,
int loop_num )
inlineprivate

Definition at line 161 of file loop-analysis.cc.

Here is the caller graph for this function:

◆ SetLoopMark()

void v8::internal::compiler::LoopFinderImpl::SetLoopMark ( Node * node,
int loop_num )
inlineprivate

Definition at line 264 of file loop-analysis.cc.

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

◆ SetLoopMarkForLoopHeader()

void v8::internal::compiler::LoopFinderImpl::SetLoopMarkForLoopHeader ( Node * node,
int loop_num )
inlineprivate

Definition at line 270 of file loop-analysis.cc.

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

Member Data Documentation

◆ backward_

uint32_t* v8::internal::compiler::LoopFinderImpl::backward_
private

Definition at line 127 of file loop-analysis.cc.

◆ end_

Node* v8::internal::compiler::LoopFinderImpl::end_
private

Definition at line 118 of file loop-analysis.cc.

◆ forward_

uint32_t* v8::internal::compiler::LoopFinderImpl::forward_
private

Definition at line 128 of file loop-analysis.cc.

◆ info_

ZoneVector<NodeInfo> v8::internal::compiler::LoopFinderImpl::info_
private

Definition at line 121 of file loop-analysis.cc.

◆ loop_num_

ZoneVector<int> v8::internal::compiler::LoopFinderImpl::loop_num_
private

Definition at line 123 of file loop-analysis.cc.

◆ loop_tree_

LoopTree* v8::internal::compiler::LoopFinderImpl::loop_tree_
private

Definition at line 124 of file loop-analysis.cc.

◆ loops_

ZoneVector<TempLoopInfo> v8::internal::compiler::LoopFinderImpl::loops_
private

Definition at line 122 of file loop-analysis.cc.

◆ loops_found_

int v8::internal::compiler::LoopFinderImpl::loops_found_
private

Definition at line 125 of file loop-analysis.cc.

◆ queue_

NodeDeque v8::internal::compiler::LoopFinderImpl::queue_
private

Definition at line 119 of file loop-analysis.cc.

◆ queued_

NodeMarker<bool> v8::internal::compiler::LoopFinderImpl::queued_
private

Definition at line 120 of file loop-analysis.cc.

◆ tick_counter_

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

Definition at line 129 of file loop-analysis.cc.

◆ width_

int v8::internal::compiler::LoopFinderImpl::width_
private

Definition at line 126 of file loop-analysis.cc.

◆ zone_

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

Definition at line 117 of file loop-analysis.cc.


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