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

Classes

class  BorrowParentKnownNodeAspectsAndVOs
 
class  Label
 
class  LoopLabel
 
class  Variable
 

Public Member Functions

 MaglevSubGraphBuilder (MaglevGraphBuilder *builder, int variable_count)
 
LoopLabel BeginLoop (std::initializer_list< Variable * > loop_vars)
 
template<typename ControlNodeT , typename... Args>
void GotoIfTrue (Label *true_target, std::initializer_list< ValueNode * > control_inputs, Args &&... args)
 
template<typename ControlNodeT , typename... Args>
void GotoIfFalse (Label *false_target, std::initializer_list< ValueNode * > control_inputs, Args &&... args)
 
void GotoOrTrim (Label *label)
 
void Goto (Label *label)
 
void ReducePredecessorCount (Label *label, unsigned num=1)
 
void EndLoop (LoopLabel *loop_label)
 
void Bind (Label *label)
 
V8_NODISCARD ReduceResult TrimPredecessorsAndBind (Label *label)
 
void set (Variable &var, ValueNode *value)
 
ValueNodeget (const Variable &var) const
 
template<typename FCond , typename FTrue , typename FFalse >
ReduceResult Branch (std::initializer_list< Variable * > vars, FCond cond, FTrue if_true, FFalse if_false)
 
void MergeIntoLabel (Label *label, BasicBlock *predecessor)
 
template<typename FCond , typename FTrue , typename FFalse >
ReduceResult Branch (std::initializer_list< MaglevSubGraphBuilder::Variable * > vars, FCond cond, FTrue if_true, FFalse if_false)
 

Private Member Functions

void TakeKnownNodeAspectsAndVOsFromParent ()
 
void MoveKnownNodeAspectsAndVOsToParent ()
 

Private Attributes

MaglevGraphBuilderbuilder_
 
MaglevCompilationUnitcompilation_unit_
 
InterpreterFrameState pseudo_frame_
 

Detailed Description

Definition at line 499 of file maglev-graph-builder.h.

Constructor & Destructor Documentation

◆ MaglevSubGraphBuilder()

v8::internal::maglev::MaglevGraphBuilder::MaglevSubGraphBuilder::MaglevSubGraphBuilder ( MaglevGraphBuilder * builder,
int variable_count )

Definition at line 611 of file maglev-graph-builder.cc.

Here is the call graph for this function:

Member Function Documentation

◆ BeginLoop()

MaglevGraphBuilder::MaglevSubGraphBuilder::LoopLabel v8::internal::maglev::MaglevGraphBuilder::MaglevSubGraphBuilder::BeginLoop ( std::initializer_list< Variable * > loop_vars)

Definition at line 626 of file maglev-graph-builder.cc.

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

◆ Bind()

void v8::internal::maglev::MaglevGraphBuilder::MaglevSubGraphBuilder::Bind ( Label * label)

Definition at line 764 of file maglev-graph-builder.cc.

Here is the caller graph for this function:

◆ Branch() [1/2]

template<typename FCond , typename FTrue , typename FFalse >
ReduceResult v8::internal::maglev::MaglevGraphBuilder::MaglevSubGraphBuilder::Branch ( std::initializer_list< MaglevSubGraphBuilder::Variable * > vars,
FCond cond,
FTrue if_true,
FFalse if_false )

Definition at line 788 of file maglev-graph-builder.cc.

Here is the call graph for this function:

◆ Branch() [2/2]

template<typename FCond , typename FTrue , typename FFalse >
ReduceResult v8::internal::maglev::MaglevGraphBuilder::MaglevSubGraphBuilder::Branch ( std::initializer_list< Variable * > vars,
FCond cond,
FTrue if_true,
FFalse if_false )

◆ EndLoop()

void v8::internal::maglev::MaglevGraphBuilder::MaglevSubGraphBuilder::EndLoop ( LoopLabel * loop_label)

Definition at line 734 of file maglev-graph-builder.cc.

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

◆ get()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::MaglevSubGraphBuilder::get ( const Variable & var) const

Definition at line 782 of file maglev-graph-builder.cc.

Here is the caller graph for this function:

◆ Goto()

void v8::internal::maglev::MaglevGraphBuilder::MaglevSubGraphBuilder::Goto ( Label * label)

Definition at line 716 of file maglev-graph-builder.cc.

Here is the caller graph for this function:

◆ GotoIfFalse()

template<typename ControlNodeT , typename... Args>
void v8::internal::maglev::MaglevGraphBuilder::MaglevSubGraphBuilder::GotoIfFalse ( Label * false_target,
std::initializer_list< ValueNode * > control_inputs,
Args &&... args )

Definition at line 690 of file maglev-graph-builder.cc.

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

◆ GotoIfTrue()

template<typename ControlNodeT , typename... Args>
void v8::internal::maglev::MaglevGraphBuilder::MaglevSubGraphBuilder::GotoIfTrue ( Label * true_target,
std::initializer_list< ValueNode * > control_inputs,
Args &&... args )

Definition at line 671 of file maglev-graph-builder.cc.

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

◆ GotoOrTrim()

void v8::internal::maglev::MaglevGraphBuilder::MaglevSubGraphBuilder::GotoOrTrim ( Label * label)

Definition at line 708 of file maglev-graph-builder.cc.

Here is the caller graph for this function:

◆ MergeIntoLabel()

void v8::internal::maglev::MaglevGraphBuilder::MaglevSubGraphBuilder::MergeIntoLabel ( Label * label,
BasicBlock * predecessor )

Definition at line 906 of file maglev-graph-builder.cc.

Here is the caller graph for this function:

◆ MoveKnownNodeAspectsAndVOsToParent()

void v8::internal::maglev::MaglevGraphBuilder::MaglevSubGraphBuilder::MoveKnownNodeAspectsAndVOsToParent ( )
private

Definition at line 895 of file maglev-graph-builder.cc.

◆ ReducePredecessorCount()

void v8::internal::maglev::MaglevGraphBuilder::MaglevSubGraphBuilder::ReducePredecessorCount ( Label * label,
unsigned num = 1 )

Definition at line 722 of file maglev-graph-builder.cc.

◆ set()

void v8::internal::maglev::MaglevGraphBuilder::MaglevSubGraphBuilder::set ( Variable & var,
ValueNode * value )

Definition at line 778 of file maglev-graph-builder.cc.

Here is the caller graph for this function:

◆ TakeKnownNodeAspectsAndVOsFromParent()

void v8::internal::maglev::MaglevGraphBuilder::MaglevSubGraphBuilder::TakeKnownNodeAspectsAndVOsFromParent ( )
private

Definition at line 885 of file maglev-graph-builder.cc.

◆ TrimPredecessorsAndBind()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::MaglevSubGraphBuilder::TrimPredecessorsAndBind ( Label * label)

Definition at line 750 of file maglev-graph-builder.cc.

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

Member Data Documentation

◆ builder_

MaglevGraphBuilder* v8::internal::maglev::MaglevGraphBuilder::MaglevSubGraphBuilder::builder_
private

Definition at line 535 of file maglev-graph-builder.h.

◆ compilation_unit_

MaglevCompilationUnit* v8::internal::maglev::MaglevGraphBuilder::MaglevSubGraphBuilder::compilation_unit_
private

Definition at line 536 of file maglev-graph-builder.h.

◆ pseudo_frame_

InterpreterFrameState v8::internal::maglev::MaglevGraphBuilder::MaglevSubGraphBuilder::pseudo_frame_
private

Definition at line 537 of file maglev-graph-builder.h.


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