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

#include <branch-elimination-reducer.h>

Inheritance diagram for v8::internal::compiler::turboshaft::BranchEliminationReducer< Next >:
Collaboration diagram for v8::internal::compiler::turboshaft::BranchEliminationReducer< Next >:

Public Member Functions

void Bind (Block *new_block)
 
V< None > REDUCE Branch (V< Word32 > cond, Block *if_true, Block *if_false, BranchHint hint)
 
V< Any > REDUCE Select (V< Word32 > cond, V< Any > vtrue, V< Any > vfalse, RegisterRepresentation rep, BranchHint hint, SelectOp::Implementation implem)
 
V< None > REDUCE Goto (Block *destination, bool is_backedge)
 
V< None > REDUCE DeoptimizeIf (V< Word32 > condition, V< FrameState > frame_state, bool negated, const DeoptimizeParameters *parameters)
 

Private Member Functions

void ResetToBlock (Block *block)
 
void ClearCurrentEntries ()
 
void StartLayer (Block *block)
 
void ReplayMissingPredecessors (Block *new_block)
 
bool CanBeConstantFolded (OpIndex idx, const Block *cond_input_block, bool has_phi=false, int depth=0)
 

Private Attributes

ZoneVector< Block * > dominator_path_ {__ phase_zone()}
 
LayeredHashMap< V< Word32 >, boolknown_conditions_
 

Detailed Description

template<class Next>
class v8::internal::compiler::turboshaft::BranchEliminationReducer< Next >

Definition at line 26 of file branch-elimination-reducer.h.

Member Function Documentation

◆ Bind()

template<class Next >
void v8::internal::compiler::turboshaft::BranchEliminationReducer< Next >::Bind ( Block * new_block)
inline

Definition at line 202 of file branch-elimination-reducer.h.

Here is the call graph for this function:

◆ Branch()

template<class Next >
V< None > REDUCE v8::internal::compiler::turboshaft::BranchEliminationReducer< Next >::Branch ( V< Word32 > cond,
Block * if_true,
Block * if_false,
BranchHint hint )
inline

Definition at line 238 of file branch-elimination-reducer.h.

Here is the call graph for this function:

◆ CanBeConstantFolded()

template<class Next >
bool v8::internal::compiler::turboshaft::BranchEliminationReducer< Next >::CanBeConstantFolded ( OpIndex idx,
const Block * cond_input_block,
bool has_phi = false,
int depth = 0 )
inlineprivate

Definition at line 560 of file branch-elimination-reducer.h.

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

◆ ClearCurrentEntries()

template<class Next >
void v8::internal::compiler::turboshaft::BranchEliminationReducer< Next >::ClearCurrentEntries ( )
inlineprivate

Definition at line 472 of file branch-elimination-reducer.h.

Here is the caller graph for this function:

◆ DeoptimizeIf()

template<class Next >
V< None > REDUCE v8::internal::compiler::turboshaft::BranchEliminationReducer< Next >::DeoptimizeIf ( V< Word32 > condition,
V< FrameState > frame_state,
bool negated,
const DeoptimizeParameters * parameters )
inline

Definition at line 399 of file branch-elimination-reducer.h.

Here is the call graph for this function:

◆ Goto()

template<class Next >
V< None > REDUCE v8::internal::compiler::turboshaft::BranchEliminationReducer< Next >::Goto ( Block * destination,
bool is_backedge )
inline

Definition at line 296 of file branch-elimination-reducer.h.

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

◆ ReplayMissingPredecessors()

template<class Next >
void v8::internal::compiler::turboshaft::BranchEliminationReducer< Next >::ReplayMissingPredecessors ( Block * new_block)
inlineprivate

Definition at line 523 of file branch-elimination-reducer.h.

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

◆ ResetToBlock()

template<class Next >
void v8::internal::compiler::turboshaft::BranchEliminationReducer< Next >::ResetToBlock ( Block * block)
inlineprivate

Definition at line 454 of file branch-elimination-reducer.h.

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

◆ Select()

template<class Next >
V< Any > REDUCE v8::internal::compiler::turboshaft::BranchEliminationReducer< Next >::Select ( V< Word32 > cond,
V< Any > vtrue,
V< Any > vfalse,
RegisterRepresentation rep,
BranchHint hint,
SelectOp::Implementation implem )
inline

Definition at line 278 of file branch-elimination-reducer.h.

Here is the call graph for this function:

◆ StartLayer()

template<class Next >
void v8::internal::compiler::turboshaft::BranchEliminationReducer< Next >::StartLayer ( Block * block)
inlineprivate

Definition at line 477 of file branch-elimination-reducer.h.

Here is the caller graph for this function:

Member Data Documentation

◆ dominator_path_

template<class Next >
ZoneVector<Block*> v8::internal::compiler::turboshaft::BranchEliminationReducer< Next >::dominator_path_ {__ phase_zone()}
private

Definition at line 604 of file branch-elimination-reducer.h.

◆ known_conditions_

template<class Next >
LayeredHashMap<V<Word32>, bool> v8::internal::compiler::turboshaft::BranchEliminationReducer< Next >::known_conditions_
private
Initial value:
{
__ phase_zone(), __ input_graph().DominatorTreeDepth() * 2}

Definition at line 605 of file branch-elimination-reducer.h.


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