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

Public Member Functions

 CFGBuilder (Zone *zone, Scheduler *scheduler)
 
void Run ()
 
void Run (BasicBlock *block, Node *exit)
 
- Public Member Functions inherited from v8::internal::ZoneObject
void * operator new (size_t, Zone *)=delete
 
void * operator new (size_t size, void *ptr)
 
void operator delete (void *, size_t)
 
void operator delete (void *pointer, Zone *zone)=delete
 

Private Member Functions

void FixNode (BasicBlock *block, Node *node)
 
void Queue (Node *node)
 
void BuildBlocks (Node *node)
 
void ConnectBlocks (Node *node)
 
BasicBlockBuildBlockForNode (Node *node)
 
void BuildBlocksForSuccessors (Node *node)
 
void CollectSuccessorBlocks (Node *node, BasicBlock **successor_blocks, size_t successor_cnt)
 
BasicBlockFindPredecessorBlock (Node *node)
 
void ConnectCall (Node *call)
 
void ConnectBranch (Node *branch)
 
void ConnectSwitch (Node *sw)
 
void ConnectMerge (Node *merge)
 
void ConnectTailCall (Node *call)
 
void ConnectReturn (Node *ret)
 
void ConnectDeoptimize (Node *deopt)
 
void ConnectThrow (Node *thr)
 
void TraceConnect (Node *node, BasicBlock *block, BasicBlock *succ)
 
bool IsFinalMerge (Node *node)
 
bool IsSingleEntrySingleExitRegion (Node *entry, Node *exit) const
 
void ResetDataStructures ()
 

Private Attributes

Zonezone_
 
Schedulerscheduler_
 
Scheduleschedule_
 
NodeMarker< boolqueued_
 
ZoneQueue< Node * > queue_
 
NodeVector control_
 
Nodecomponent_entry_
 
BasicBlockcomponent_start_
 
BasicBlockcomponent_end_
 

Friends

class ScheduleLateNodeVisitor
 
class Scheduler
 

Detailed Description

Definition at line 239 of file scheduler.cc.

Constructor & Destructor Documentation

◆ CFGBuilder()

v8::internal::compiler::CFGBuilder::CFGBuilder ( Zone * zone,
Scheduler * scheduler )
inline

Definition at line 241 of file scheduler.cc.

Member Function Documentation

◆ BuildBlockForNode()

BasicBlock * v8::internal::compiler::CFGBuilder::BuildBlockForNode ( Node * node)
inlineprivate

Definition at line 414 of file scheduler.cc.

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

◆ BuildBlocks()

void v8::internal::compiler::CFGBuilder::BuildBlocks ( Node * node)
inlineprivate

Definition at line 330 of file scheduler.cc.

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

◆ BuildBlocksForSuccessors()

void v8::internal::compiler::CFGBuilder::BuildBlocksForSuccessors ( Node * node)
inlineprivate

Definition at line 425 of file scheduler.cc.

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

◆ CollectSuccessorBlocks()

void v8::internal::compiler::CFGBuilder::CollectSuccessorBlocks ( Node * node,
BasicBlock ** successor_blocks,
size_t successor_cnt )
inlineprivate

Definition at line 434 of file scheduler.cc.

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

◆ ConnectBlocks()

void v8::internal::compiler::CFGBuilder::ConnectBlocks ( Node * node)
inlineprivate

Definition at line 368 of file scheduler.cc.

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

◆ ConnectBranch()

void v8::internal::compiler::CFGBuilder::ConnectBranch ( Node * branch)
inlineprivate

Definition at line 468 of file scheduler.cc.

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

◆ ConnectCall()

void v8::internal::compiler::CFGBuilder::ConnectCall ( Node * call)
inlineprivate

Definition at line 453 of file scheduler.cc.

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

◆ ConnectDeoptimize()

void v8::internal::compiler::CFGBuilder::ConnectDeoptimize ( Node * deopt)
inlineprivate

Definition at line 574 of file scheduler.cc.

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

◆ ConnectMerge()

void v8::internal::compiler::CFGBuilder::ConnectMerge ( Node * merge)
inlineprivate

Definition at line 545 of file scheduler.cc.

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

◆ ConnectReturn()

void v8::internal::compiler::CFGBuilder::ConnectReturn ( Node * ret)
inlineprivate

Definition at line 567 of file scheduler.cc.

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

◆ ConnectSwitch()

void v8::internal::compiler::CFGBuilder::ConnectSwitch ( Node * sw)
inlineprivate

Definition at line 517 of file scheduler.cc.

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

◆ ConnectTailCall()

void v8::internal::compiler::CFGBuilder::ConnectTailCall ( Node * call)
inlineprivate

Definition at line 560 of file scheduler.cc.

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

◆ ConnectThrow()

void v8::internal::compiler::CFGBuilder::ConnectThrow ( Node * thr)
inlineprivate

Definition at line 581 of file scheduler.cc.

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

◆ FindPredecessorBlock()

BasicBlock * v8::internal::compiler::CFGBuilder::FindPredecessorBlock ( Node * node)
inlineprivate

Definition at line 443 of file scheduler.cc.

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

◆ FixNode()

void v8::internal::compiler::CFGBuilder::FixNode ( BasicBlock * block,
Node * node )
inlineprivate

Definition at line 315 of file scheduler.cc.

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

◆ IsFinalMerge()

bool v8::internal::compiler::CFGBuilder::IsFinalMerge ( Node * node)
inlineprivate

Definition at line 599 of file scheduler.cc.

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

◆ IsSingleEntrySingleExitRegion()

bool v8::internal::compiler::CFGBuilder::IsSingleEntrySingleExitRegion ( Node * entry,
Node * exit ) const
inlineprivate

Definition at line 604 of file scheduler.cc.

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

◆ Queue()

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

Definition at line 320 of file scheduler.cc.

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

◆ ResetDataStructures()

void v8::internal::compiler::CFGBuilder::ResetDataStructures ( )
inlineprivate

Definition at line 610 of file scheduler.cc.

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

◆ Run() [1/2]

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

Definition at line 255 of file scheduler.cc.

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

◆ Run() [2/2]

void v8::internal::compiler::CFGBuilder::Run ( BasicBlock * block,
Node * exit )
inline

Definition at line 277 of file scheduler.cc.

Here is the call graph for this function:

◆ TraceConnect()

void v8::internal::compiler::CFGBuilder::TraceConnect ( Node * node,
BasicBlock * block,
BasicBlock * succ )
inlineprivate

Definition at line 588 of file scheduler.cc.

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

Friends And Related Symbol Documentation

◆ ScheduleLateNodeVisitor

friend class ScheduleLateNodeVisitor
friend

Definition at line 312 of file scheduler.cc.

◆ Scheduler

friend class Scheduler
friend

Definition at line 313 of file scheduler.cc.

Member Data Documentation

◆ component_end_

BasicBlock* v8::internal::compiler::CFGBuilder::component_end_
private

Definition at line 624 of file scheduler.cc.

◆ component_entry_

Node* v8::internal::compiler::CFGBuilder::component_entry_
private

Definition at line 622 of file scheduler.cc.

◆ component_start_

BasicBlock* v8::internal::compiler::CFGBuilder::component_start_
private

Definition at line 623 of file scheduler.cc.

◆ control_

NodeVector v8::internal::compiler::CFGBuilder::control_
private

Definition at line 621 of file scheduler.cc.

◆ queue_

ZoneQueue<Node*> v8::internal::compiler::CFGBuilder::queue_
private

Definition at line 620 of file scheduler.cc.

◆ queued_

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

Definition at line 619 of file scheduler.cc.

◆ schedule_

Schedule* v8::internal::compiler::CFGBuilder::schedule_
private

Definition at line 618 of file scheduler.cc.

◆ scheduler_

Scheduler* v8::internal::compiler::CFGBuilder::scheduler_
private

Definition at line 617 of file scheduler.cc.

◆ zone_

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

Definition at line 616 of file scheduler.cc.


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