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

Classes

struct  BytecodeJumpTarget
 
union  Data
 
struct  LabelJumpTarget
 
class  PatchAccumulatorInBranchScope
 

Public Types

enum  Mode { kBytecodeJumpTarget , kLabelJumpTarget }
 

Public Member Functions

 BranchBuilder (MaglevGraphBuilder *builder, BranchType jump_type)
 
 BranchBuilder (MaglevGraphBuilder *builder, MaglevSubGraphBuilder *sub_builder, BranchType jump_type, MaglevSubGraphBuilder::Label *jump_label)
 
Mode mode () const
 
BranchType GetCurrentBranchType () const
 
void SetBranchSpecializationMode (BranchSpecializationMode mode)
 
void SwapTargets ()
 
BasicBlockRefjump_target ()
 
BasicBlockReffallthrough ()
 
BasicBlockReftrue_target ()
 
BasicBlockReffalse_target ()
 
BranchResult FromBool (bool value) const
 
BranchResult AlwaysTrue () const
 
BranchResult AlwaysFalse () const
 
template<typename NodeT , typename... Args>
BranchResult Build (std::initializer_list< ValueNode * > inputs, Args &&... args)
 
template<typename ControlNodeT , typename... Args>
MaglevGraphBuilder::BranchResult Build (std::initializer_list< ValueNode * > control_inputs, Args &&... args)
 

Private Member Functions

void StartFallthroughBlock (BasicBlock *predecessor)
 
void SetAccumulatorInBranch (BranchType jump_type) const
 

Private Attributes

MaglevGraphBuilderbuilder_
 
MaglevGraphBuilder::MaglevSubGraphBuildersub_builder_
 
BranchType jump_type_
 
BranchSpecializationMode branch_specialization_mode_
 
Data data_
 

Detailed Description

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

Member Enumeration Documentation

◆ Mode

Enumerator
kBytecodeJumpTarget 
kLabelJumpTarget 

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

Constructor & Destructor Documentation

◆ BranchBuilder() [1/2]

v8::internal::maglev::MaglevGraphBuilder::BranchBuilder::BranchBuilder ( MaglevGraphBuilder * builder,
BranchType jump_type )
inline

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

◆ BranchBuilder() [2/2]

v8::internal::maglev::MaglevGraphBuilder::BranchBuilder::BranchBuilder ( MaglevGraphBuilder * builder,
MaglevSubGraphBuilder * sub_builder,
BranchType jump_type,
MaglevSubGraphBuilder::Label * jump_label )
inline

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

Member Function Documentation

◆ AlwaysFalse()

BranchResult v8::internal::maglev::MaglevGraphBuilder::BranchBuilder::AlwaysFalse ( ) const
inline

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

Here is the caller graph for this function:

◆ AlwaysTrue()

BranchResult v8::internal::maglev::MaglevGraphBuilder::BranchBuilder::AlwaysTrue ( ) const
inline

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

Here is the caller graph for this function:

◆ Build() [1/2]

template<typename ControlNodeT , typename... Args>
MaglevGraphBuilder::BranchResult v8::internal::maglev::MaglevGraphBuilder::BranchBuilder::Build ( std::initializer_list< ValueNode * > control_inputs,
Args &&... args )

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

Here is the call graph for this function:

◆ Build() [2/2]

template<typename NodeT , typename... Args>
BranchResult v8::internal::maglev::MaglevGraphBuilder::BranchBuilder::Build ( std::initializer_list< ValueNode * > inputs,
Args &&... args )
Here is the caller graph for this function:

◆ fallthrough()

BasicBlockRef * v8::internal::maglev::MaglevGraphBuilder::BranchBuilder::fallthrough ( )

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

Here is the call graph for this function:

◆ false_target()

BasicBlockRef * v8::internal::maglev::MaglevGraphBuilder::BranchBuilder::false_target ( )

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

◆ FromBool()

MaglevGraphBuilder::BranchResult v8::internal::maglev::MaglevGraphBuilder::BranchBuilder::FromBool ( bool value) const

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

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

◆ GetCurrentBranchType()

BranchType v8::internal::maglev::MaglevGraphBuilder::BranchBuilder::GetCurrentBranchType ( ) const
inline

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

◆ jump_target()

BasicBlockRef * v8::internal::maglev::MaglevGraphBuilder::BranchBuilder::jump_target ( )

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

Here is the call graph for this function:

◆ mode()

Mode v8::internal::maglev::MaglevGraphBuilder::BranchBuilder::mode ( ) const
inline

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

Here is the caller graph for this function:

◆ SetAccumulatorInBranch()

void v8::internal::maglev::MaglevGraphBuilder::BranchBuilder::SetAccumulatorInBranch ( BranchType jump_type) const
private

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

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

◆ SetBranchSpecializationMode()

void v8::internal::maglev::MaglevGraphBuilder::BranchBuilder::SetBranchSpecializationMode ( BranchSpecializationMode mode)
inline

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

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

◆ StartFallthroughBlock()

void v8::internal::maglev::MaglevGraphBuilder::BranchBuilder::StartFallthroughBlock ( BasicBlock * predecessor)
private

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

Here is the call graph for this function:

◆ SwapTargets()

void v8::internal::maglev::MaglevGraphBuilder::BranchBuilder::SwapTargets ( )
inline

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

Here is the caller graph for this function:

◆ true_target()

BasicBlockRef * v8::internal::maglev::MaglevGraphBuilder::BranchBuilder::true_target ( )

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

Member Data Documentation

◆ branch_specialization_mode_

BranchSpecializationMode v8::internal::maglev::MaglevGraphBuilder::BranchBuilder::branch_specialization_mode_
private

◆ builder_

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

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

◆ data_

Data v8::internal::maglev::MaglevGraphBuilder::BranchBuilder::data_
private

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

◆ jump_type_

BranchType v8::internal::maglev::MaglevGraphBuilder::BranchBuilder::jump_type_
private

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

◆ sub_builder_

MaglevGraphBuilder::MaglevSubGraphBuilder* v8::internal::maglev::MaglevGraphBuilder::BranchBuilder::sub_builder_
private

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


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