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

#include <revectorizer.h>

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

Public Member Functions

 SLPTree (Zone *zone, TFGraph *graph)
 
PackNodeBuildTree (const ZoneVector< Node * > &roots)
 
void DeleteTree ()
 
PackNodeGetPackNode (Node *node)
 
void Print (const char *info)
 
template<typename FunctionType >
void ForEach (FunctionType callback)
 
NodeGetEarlySchedulePosition (Node *node)
 

Private Member Functions

PackNodeBuildTreeRec (const ZoneVector< Node * > &node_group, unsigned depth)
 
PackNodeNewPackNode (const ZoneVector< Node * > &node_group)
 
PackNodeNewPackNodeAndRecurs (const ZoneVector< Node * > &node_group, int start_index, int count, unsigned depth)
 
bool CanBePacked (const ZoneVector< Node * > &node_group)
 
TFGraphgraph () const
 
Zonezone () const
 
void PopStack ()
 
void PushStack (const ZoneVector< Node * > &node_group)
 
void ClearStack ()
 
bool OnStack (Node *node)
 
bool AllOnStack (const ZoneVector< Node * > &node_group)
 
bool StackTopIsPhi ()
 
void TryReduceLoadChain (const ZoneVector< Node * > &loads)
 
bool IsSideEffectFreeLoad (const ZoneVector< Node * > &node_group)
 
bool SameBasicBlock (Node *node0, Node *node1)
 

Private Attributes

Zone *const zone_
 
TFGraph *const graph_
 
PackNoderoot_
 
LinearSchedulerscheduler_
 
ZoneSet< Node * > on_stack_
 
ZoneStack< ZoneVector< Node * > > stack_
 
ZoneUnorderedMap< Node *, PackNode * > node_to_packnode_
 

Static Private Attributes

static constexpr size_t RecursionMaxDepth = 1000
 

Friends

class LinearScheduler
 

Detailed Description

Definition at line 90 of file revectorizer.h.

Constructor & Destructor Documentation

◆ SLPTree()

v8::internal::compiler::SLPTree::SLPTree ( Zone * zone,
TFGraph * graph )
inlineexplicit

Definition at line 92 of file revectorizer.h.

Here is the call graph for this function:

Member Function Documentation

◆ AllOnStack()

bool v8::internal::compiler::SLPTree::AllOnStack ( const ZoneVector< Node * > & node_group)
private

Definition at line 509 of file revectorizer.cc.

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

◆ BuildTree()

PackNode * v8::internal::compiler::SLPTree::BuildTree ( const ZoneVector< Node * > & roots)

Definition at line 612 of file revectorizer.cc.

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

◆ BuildTreeRec()

PackNode * v8::internal::compiler::SLPTree::BuildTreeRec ( const ZoneVector< Node * > & node_group,
unsigned depth )
private

Definition at line 621 of file revectorizer.cc.

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

◆ CanBePacked()

bool v8::internal::compiler::SLPTree::CanBePacked ( const ZoneVector< Node * > & node_group)
private

Definition at line 401 of file revectorizer.cc.

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

◆ ClearStack()

void v8::internal::compiler::SLPTree::ClearStack ( )
private

Definition at line 522 of file revectorizer.cc.

Here is the caller graph for this function:

◆ DeleteTree()

void v8::internal::compiler::SLPTree::DeleteTree ( )

Definition at line 856 of file revectorizer.cc.

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

◆ ForEach()

template<typename FunctionType >
void v8::internal::compiler::SLPTree::ForEach ( FunctionType callback)

Definition at line 871 of file revectorizer.cc.

Here is the caller graph for this function:

◆ GetEarlySchedulePosition()

Node * v8::internal::compiler::SLPTree::GetEarlySchedulePosition ( Node * node)
inline

Definition at line 112 of file revectorizer.h.

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

◆ GetPackNode()

PackNode * v8::internal::compiler::SLPTree::GetPackNode ( Node * node)

Definition at line 475 of file revectorizer.cc.

Here is the caller graph for this function:

◆ graph()

TFGraph * v8::internal::compiler::SLPTree::graph ( ) const
inlineprivate

Definition at line 131 of file revectorizer.h.

Here is the caller graph for this function:

◆ IsSideEffectFreeLoad()

bool v8::internal::compiler::SLPTree::IsSideEffectFreeLoad ( const ZoneVector< Node * > & node_group)
private

Definition at line 554 of file revectorizer.cc.

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

◆ NewPackNode()

PackNode * v8::internal::compiler::SLPTree::NewPackNode ( const ZoneVector< Node * > & node_group)
private

Definition at line 443 of file revectorizer.cc.

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

◆ NewPackNodeAndRecurs()

PackNode * v8::internal::compiler::SLPTree::NewPackNodeAndRecurs ( const ZoneVector< Node * > & node_group,
int start_index,
int count,
unsigned depth )
private

Definition at line 453 of file revectorizer.cc.

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

◆ OnStack()

bool v8::internal::compiler::SLPTree::OnStack ( Node * node)
private

Definition at line 505 of file revectorizer.cc.

Here is the caller graph for this function:

◆ PopStack()

void v8::internal::compiler::SLPTree::PopStack ( )
private

Definition at line 493 of file revectorizer.cc.

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

◆ Print()

void v8::internal::compiler::SLPTree::Print ( const char * info)

Definition at line 861 of file revectorizer.cc.

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

◆ PushStack()

void v8::internal::compiler::SLPTree::PushStack ( const ZoneVector< Node * > & node_group)
private

Definition at line 483 of file revectorizer.cc.

Here is the caller graph for this function:

◆ SameBasicBlock()

bool v8::internal::compiler::SLPTree::SameBasicBlock ( Node * node0,
Node * node1 )
inlineprivate

Definition at line 144 of file revectorizer.h.

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

◆ StackTopIsPhi()

bool v8::internal::compiler::SLPTree::StackTopIsPhi ( )
private

Definition at line 516 of file revectorizer.cc.

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

◆ TryReduceLoadChain()

void v8::internal::compiler::SLPTree::TryReduceLoadChain ( const ZoneVector< Node * > & loads)
private

Definition at line 531 of file revectorizer.cc.

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

◆ zone()

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

Definition at line 132 of file revectorizer.h.

Here is the caller graph for this function:

Friends And Related Symbol Documentation

◆ LinearScheduler

friend class LinearScheduler
friend

Definition at line 117 of file revectorizer.h.

Member Data Documentation

◆ graph_

TFGraph* const v8::internal::compiler::SLPTree::graph_
private

Definition at line 149 of file revectorizer.h.

◆ node_to_packnode_

ZoneUnorderedMap<Node*, PackNode*> v8::internal::compiler::SLPTree::node_to_packnode_
private

Definition at line 155 of file revectorizer.h.

◆ on_stack_

ZoneSet<Node*> v8::internal::compiler::SLPTree::on_stack_
private

Definition at line 152 of file revectorizer.h.

◆ RecursionMaxDepth

size_t v8::internal::compiler::SLPTree::RecursionMaxDepth = 1000
staticconstexprprivate

Definition at line 156 of file revectorizer.h.

◆ root_

PackNode* v8::internal::compiler::SLPTree::root_
private

Definition at line 150 of file revectorizer.h.

◆ scheduler_

LinearScheduler* v8::internal::compiler::SLPTree::scheduler_
private

Definition at line 151 of file revectorizer.h.

◆ stack_

ZoneStack<ZoneVector<Node*> > v8::internal::compiler::SLPTree::stack_
private

Definition at line 153 of file revectorizer.h.

◆ zone_

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

Definition at line 148 of file revectorizer.h.


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