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

#include <schedule.h>

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

Classes

class  Id
 

Public Types

enum  Control {
  kNone , kGoto , kCall , kBranch ,
  kSwitch , kDeoptimize , kTailCall , kReturn ,
  kThrow
}
 
using value_type = Node*
 
using iterator = NodeVector::iterator
 
using const_iterator = NodeVector::const_iterator
 
using reverse_iterator = NodeVector::reverse_iterator
 

Public Member Functions

 BasicBlock (Zone *zone, Id id)
 
 BasicBlock (const BasicBlock &)=delete
 
BasicBlockoperator= (const BasicBlock &)=delete
 
Id id () const
 
void Print ()
 
BasicBlockVectorpredecessors ()
 
const BasicBlockVectorpredecessors () const
 
size_t PredecessorCount () const
 
BasicBlockPredecessorAt (size_t index)
 
void ClearPredecessors ()
 
void AddPredecessor (BasicBlock *predecessor)
 
void RemovePredecessor (size_t index)
 
BasicBlockVectorsuccessors ()
 
const BasicBlockVectorsuccessors () const
 
size_t SuccessorCount () const
 
BasicBlockSuccessorAt (size_t index)
 
void ClearSuccessors ()
 
void AddSuccessor (BasicBlock *successor)
 
bool empty () const
 
size_t size () const
 
NodeNodeAt (size_t index)
 
size_t NodeCount () const
 
value_typefront ()
 
value_type const & front () const
 
iterator begin ()
 
iterator end ()
 
void RemoveNode (iterator it)
 
const_iterator begin () const
 
const_iterator end () const
 
reverse_iterator rbegin ()
 
reverse_iterator rend ()
 
void AddNode (Node *node)
 
template<class InputIterator >
void InsertNodes (iterator insertion_point, InputIterator insertion_start, InputIterator insertion_end)
 
void TrimNodes (iterator new_end)
 
void ResetRPOInfo ()
 
Control control () const
 
void set_control (Control control)
 
Nodecontrol_input () const
 
void set_control_input (Node *control_input)
 
bool deferred () const
 
void set_deferred (bool deferred)
 
int32_t dominator_depth () const
 
void set_dominator_depth (int32_t depth)
 
BasicBlockdominator () const
 
void set_dominator (BasicBlock *dominator)
 
BasicBlockrpo_next () const
 
void set_rpo_next (BasicBlock *rpo_next)
 
BasicBlockloop_header () const
 
void set_loop_header (BasicBlock *loop_header)
 
BasicBlockloop_end () const
 
void set_loop_end (BasicBlock *loop_end)
 
int32_t loop_depth () const
 
void set_loop_depth (int32_t loop_depth)
 
int32_t loop_number () const
 
void set_loop_number (int32_t loop_number)
 
int32_t rpo_number () const
 
void set_rpo_number (int32_t rpo_number)
 
NodeVectornodes ()
 
bool IsLoopHeader () const
 
bool LoopContains (BasicBlock *block) const
 

Static Public Member Functions

static BasicBlockGetCommonDominator (BasicBlock *b1, BasicBlock *b2)
 

Private Attributes

int32_t loop_number_
 
int32_t rpo_number_
 
bool deferred_
 
int32_t dominator_depth_
 
BasicBlockdominator_
 
BasicBlockrpo_next_
 
BasicBlockloop_header_
 
BasicBlockloop_end_
 
int32_t loop_depth_
 
Control control_
 
Nodecontrol_input_
 
NodeVector nodes_
 
BasicBlockVector successors_
 
BasicBlockVector predecessors_
 
Id id_
 

Detailed Description

Definition at line 29 of file schedule.h.

Member Typedef Documentation

◆ const_iterator

◆ iterator

◆ reverse_iterator

◆ value_type

Definition at line 90 of file schedule.h.

Member Enumeration Documentation

◆ Control

Enumerator
kNone 
kGoto 
kCall 
kBranch 
kSwitch 
kDeoptimize 
kTailCall 
kReturn 
kThrow 

Definition at line 33 of file schedule.h.

Constructor & Destructor Documentation

◆ BasicBlock() [1/2]

v8::internal::compiler::BasicBlock::BasicBlock ( Zone * zone,
Id id )

Definition at line 15 of file schedule.cc.

◆ BasicBlock() [2/2]

v8::internal::compiler::BasicBlock::BasicBlock ( const BasicBlock & )
delete

Member Function Documentation

◆ AddNode()

void v8::internal::compiler::BasicBlock::AddNode ( Node * node)

Definition at line 60 of file schedule.cc.

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

◆ AddPredecessor()

void v8::internal::compiler::BasicBlock::AddPredecessor ( BasicBlock * predecessor)

Definition at line 52 of file schedule.cc.

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

◆ AddSuccessor()

void v8::internal::compiler::BasicBlock::AddSuccessor ( BasicBlock * successor)

Definition at line 48 of file schedule.cc.

Here is the call graph for this function:

◆ begin() [1/2]

iterator v8::internal::compiler::BasicBlock::begin ( )
inline

Definition at line 100 of file schedule.h.

Here is the caller graph for this function:

◆ begin() [2/2]

const_iterator v8::internal::compiler::BasicBlock::begin ( ) const
inline

Definition at line 106 of file schedule.h.

◆ ClearPredecessors()

void v8::internal::compiler::BasicBlock::ClearPredecessors ( )
inline

Definition at line 77 of file schedule.h.

Here is the caller graph for this function:

◆ ClearSuccessors()

void v8::internal::compiler::BasicBlock::ClearSuccessors ( )
inline

Definition at line 86 of file schedule.h.

Here is the caller graph for this function:

◆ control()

Control v8::internal::compiler::BasicBlock::control ( ) const
inline

Definition at line 126 of file schedule.h.

Here is the caller graph for this function:

◆ control_input()

Node * v8::internal::compiler::BasicBlock::control_input ( ) const
inline

Definition at line 129 of file schedule.h.

Here is the caller graph for this function:

◆ deferred()

bool v8::internal::compiler::BasicBlock::deferred ( ) const
inline

Definition at line 132 of file schedule.h.

Here is the caller graph for this function:

◆ dominator()

BasicBlock * v8::internal::compiler::BasicBlock::dominator ( ) const
inline

Definition at line 138 of file schedule.h.

Here is the caller graph for this function:

◆ dominator_depth()

int32_t v8::internal::compiler::BasicBlock::dominator_depth ( ) const
inline

Definition at line 135 of file schedule.h.

Here is the caller graph for this function:

◆ empty()

bool v8::internal::compiler::BasicBlock::empty ( ) const
inline

Definition at line 91 of file schedule.h.

◆ end() [1/2]

iterator v8::internal::compiler::BasicBlock::end ( )
inline

Definition at line 101 of file schedule.h.

Here is the caller graph for this function:

◆ end() [2/2]

const_iterator v8::internal::compiler::BasicBlock::end ( ) const
inline

Definition at line 107 of file schedule.h.

◆ front() [1/2]

value_type & v8::internal::compiler::BasicBlock::front ( )
inline

Definition at line 96 of file schedule.h.

Here is the caller graph for this function:

◆ front() [2/2]

value_type const & v8::internal::compiler::BasicBlock::front ( ) const
inline

Definition at line 97 of file schedule.h.

◆ GetCommonDominator()

BasicBlock * v8::internal::compiler::BasicBlock::GetCommonDominator ( BasicBlock * b1,
BasicBlock * b2 )
static

Definition at line 99 of file schedule.cc.

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

◆ id()

Id v8::internal::compiler::BasicBlock::id ( ) const
inline

Definition at line 62 of file schedule.h.

Here is the caller graph for this function:

◆ InsertNodes()

template<class InputIterator >
void v8::internal::compiler::BasicBlock::InsertNodes ( iterator insertion_point,
InputIterator insertion_start,
InputIterator insertion_end )
inline

Definition at line 115 of file schedule.h.

◆ IsLoopHeader()

bool v8::internal::compiler::BasicBlock::IsLoopHeader ( ) const
inline

Definition at line 167 of file schedule.h.

Here is the caller graph for this function:

◆ loop_depth()

int32_t v8::internal::compiler::BasicBlock::loop_depth ( ) const
inline

Definition at line 150 of file schedule.h.

Here is the caller graph for this function:

◆ loop_end()

BasicBlock * v8::internal::compiler::BasicBlock::loop_end ( ) const
inline

Definition at line 147 of file schedule.h.

Here is the caller graph for this function:

◆ loop_header()

BasicBlock * v8::internal::compiler::BasicBlock::loop_header ( ) const
inline

Definition at line 144 of file schedule.h.

Here is the caller graph for this function:

◆ loop_number()

int32_t v8::internal::compiler::BasicBlock::loop_number ( ) const
inline

Definition at line 153 of file schedule.h.

Here is the caller graph for this function:

◆ LoopContains()

bool v8::internal::compiler::BasicBlock::LoopContains ( BasicBlock * block) const

Definition at line 39 of file schedule.cc.

Here is the caller graph for this function:

◆ NodeAt()

Node * v8::internal::compiler::BasicBlock::NodeAt ( size_t index)
inline

Definition at line 93 of file schedule.h.

Here is the caller graph for this function:

◆ NodeCount()

size_t v8::internal::compiler::BasicBlock::NodeCount ( ) const
inline

Definition at line 94 of file schedule.h.

Here is the caller graph for this function:

◆ nodes()

NodeVector * v8::internal::compiler::BasicBlock::nodes ( )
inline

Definition at line 159 of file schedule.h.

◆ operator=()

BasicBlock & v8::internal::compiler::BasicBlock::operator= ( const BasicBlock & )
delete

◆ PredecessorAt()

BasicBlock * v8::internal::compiler::BasicBlock::PredecessorAt ( size_t index)
inline

Definition at line 76 of file schedule.h.

Here is the caller graph for this function:

◆ PredecessorCount()

size_t v8::internal::compiler::BasicBlock::PredecessorCount ( ) const
inline

Definition at line 75 of file schedule.h.

Here is the caller graph for this function:

◆ predecessors() [1/2]

BasicBlockVector & v8::internal::compiler::BasicBlock::predecessors ( )
inline

Definition at line 73 of file schedule.h.

Here is the caller graph for this function:

◆ predecessors() [2/2]

const BasicBlockVector & v8::internal::compiler::BasicBlock::predecessors ( ) const
inline

Definition at line 74 of file schedule.h.

◆ Print()

void v8::internal::compiler::BasicBlock::Print ( )

Definition at line 110 of file schedule.cc.

◆ rbegin()

reverse_iterator v8::internal::compiler::BasicBlock::rbegin ( )
inline

Definition at line 110 of file schedule.h.

◆ RemoveNode()

void v8::internal::compiler::BasicBlock::RemoveNode ( iterator it)
inline

Definition at line 103 of file schedule.h.

Here is the caller graph for this function:

◆ RemovePredecessor()

void v8::internal::compiler::BasicBlock::RemovePredecessor ( size_t index)

Definition at line 56 of file schedule.cc.

Here is the call graph for this function:

◆ rend()

reverse_iterator v8::internal::compiler::BasicBlock::rend ( )
inline

Definition at line 111 of file schedule.h.

◆ ResetRPOInfo()

void v8::internal::compiler::BasicBlock::ResetRPOInfo ( )

Definition at line 87 of file schedule.cc.

◆ rpo_next()

BasicBlock * v8::internal::compiler::BasicBlock::rpo_next ( ) const
inline

Definition at line 141 of file schedule.h.

Here is the caller graph for this function:

◆ rpo_number()

int32_t v8::internal::compiler::BasicBlock::rpo_number ( ) const
inline

Definition at line 156 of file schedule.h.

Here is the caller graph for this function:

◆ set_control()

void v8::internal::compiler::BasicBlock::set_control ( Control control)

Definition at line 62 of file schedule.cc.

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

◆ set_control_input()

void v8::internal::compiler::BasicBlock::set_control_input ( Node * control_input)

Definition at line 64 of file schedule.cc.

Here is the call graph for this function:

◆ set_deferred()

void v8::internal::compiler::BasicBlock::set_deferred ( bool deferred)
inline

Definition at line 133 of file schedule.h.

Here is the caller graph for this function:

◆ set_dominator()

void v8::internal::compiler::BasicBlock::set_dominator ( BasicBlock * dominator)
inline

Definition at line 139 of file schedule.h.

Here is the caller graph for this function:

◆ set_dominator_depth()

void v8::internal::compiler::BasicBlock::set_dominator_depth ( int32_t depth)
inline

Definition at line 136 of file schedule.h.

◆ set_loop_depth()

void v8::internal::compiler::BasicBlock::set_loop_depth ( int32_t loop_depth)

Definition at line 71 of file schedule.cc.

Here is the call graph for this function:

◆ set_loop_end()

void v8::internal::compiler::BasicBlock::set_loop_end ( BasicBlock * loop_end)

Definition at line 79 of file schedule.cc.

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

◆ set_loop_header()

void v8::internal::compiler::BasicBlock::set_loop_header ( BasicBlock * loop_header)

Definition at line 81 of file schedule.cc.

Here is the call graph for this function:

◆ set_loop_number()

void v8::internal::compiler::BasicBlock::set_loop_number ( int32_t loop_number)
inline

Definition at line 154 of file schedule.h.

◆ set_rpo_next()

void v8::internal::compiler::BasicBlock::set_rpo_next ( BasicBlock * rpo_next)
inline

Definition at line 142 of file schedule.h.

Here is the caller graph for this function:

◆ set_rpo_number()

void v8::internal::compiler::BasicBlock::set_rpo_number ( int32_t rpo_number)

Definition at line 75 of file schedule.cc.

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

◆ size()

size_t v8::internal::compiler::BasicBlock::size ( ) const
inline

Definition at line 92 of file schedule.h.

Here is the caller graph for this function:

◆ SuccessorAt()

BasicBlock * v8::internal::compiler::BasicBlock::SuccessorAt ( size_t index)
inline

Definition at line 85 of file schedule.h.

Here is the caller graph for this function:

◆ SuccessorCount()

size_t v8::internal::compiler::BasicBlock::SuccessorCount ( ) const
inline

Definition at line 84 of file schedule.h.

Here is the caller graph for this function:

◆ successors() [1/2]

BasicBlockVector & v8::internal::compiler::BasicBlock::successors ( )
inline

Definition at line 82 of file schedule.h.

Here is the caller graph for this function:

◆ successors() [2/2]

const BasicBlockVector & v8::internal::compiler::BasicBlock::successors ( ) const
inline

Definition at line 83 of file schedule.h.

◆ TrimNodes()

void v8::internal::compiler::BasicBlock::TrimNodes ( iterator new_end)

Definition at line 85 of file schedule.cc.

Here is the call graph for this function:

Member Data Documentation

◆ control_

Control v8::internal::compiler::BasicBlock::control_
private

Definition at line 187 of file schedule.h.

◆ control_input_

Node* v8::internal::compiler::BasicBlock::control_input_
private

Definition at line 188 of file schedule.h.

◆ deferred_

bool v8::internal::compiler::BasicBlock::deferred_
private

Definition at line 177 of file schedule.h.

◆ dominator_

BasicBlock* v8::internal::compiler::BasicBlock::dominator_
private

Definition at line 179 of file schedule.h.

◆ dominator_depth_

int32_t v8::internal::compiler::BasicBlock::dominator_depth_
private

Definition at line 178 of file schedule.h.

◆ id_

Id v8::internal::compiler::BasicBlock::id_
private

Definition at line 199 of file schedule.h.

◆ loop_depth_

int32_t v8::internal::compiler::BasicBlock::loop_depth_
private

Definition at line 185 of file schedule.h.

◆ loop_end_

BasicBlock* v8::internal::compiler::BasicBlock::loop_end_
private

Definition at line 184 of file schedule.h.

◆ loop_header_

BasicBlock* v8::internal::compiler::BasicBlock::loop_header_
private

Definition at line 181 of file schedule.h.

◆ loop_number_

int32_t v8::internal::compiler::BasicBlock::loop_number_
private

Definition at line 175 of file schedule.h.

◆ nodes_

NodeVector v8::internal::compiler::BasicBlock::nodes_
private

Definition at line 189 of file schedule.h.

◆ predecessors_

BasicBlockVector v8::internal::compiler::BasicBlock::predecessors_
private

Definition at line 192 of file schedule.h.

◆ rpo_next_

BasicBlock* v8::internal::compiler::BasicBlock::rpo_next_
private

Definition at line 180 of file schedule.h.

◆ rpo_number_

int32_t v8::internal::compiler::BasicBlock::rpo_number_
private

Definition at line 176 of file schedule.h.

◆ successors_

BasicBlockVector v8::internal::compiler::BasicBlock::successors_
private

Definition at line 191 of file schedule.h.


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