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

#include <branch-elimination.h>

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

Public Types

enum  Phase { kEARLY , kLATE }
 

Public Member Functions

 BranchElimination (Editor *editor, JSGraph *js_graph, Zone *zone, Phase phase=kLATE)
 
 ~BranchElimination () final
 
const char * reducer_name () const override
 
Reduction Reduce (Node *node) final
 

Private Types

using ControlPathConditions
 

Private Member Functions

Reduction ReduceBranch (Node *node)
 
Reduction ReduceDeoptimizeConditional (Node *node)
 
Reduction ReduceIf (Node *node, bool is_true_branch)
 
Reduction ReduceTrapConditional (Node *node)
 
Reduction ReduceLoop (Node *node)
 
Reduction ReduceMerge (Node *node)
 
Reduction ReduceStart (Node *node)
 
Reduction ReduceOtherControl (Node *node)
 
void SimplifyBranchCondition (Node *branch)
 
bool TryEliminateBranchWithPhiCondition (Node *branch, Node *phi, Node *merge)
 
Reduction UpdateStatesHelper (Node *node, ControlPathConditions prev_conditions, Node *current_condition, Node *current_branch, bool is_true_branch, bool in_new_block)
 
Nodedead () const
 
TFGraphgraph () const
 
JSGraphjsgraph () const
 
Isolateisolate () const
 
CommonOperatorBuildercommon () const
 

Private Attributes

JSGraph *const jsgraph_
 
Nodedead_
 
Phase phase_
 

Detailed Description

Definition at line 42 of file branch-elimination.h.

Member Typedef Documentation

◆ ControlPathConditions

Initial value:
ControlPathState<BranchCondition, kUniqueInstance>

Definition at line 61 of file branch-elimination.h.

Member Enumeration Documentation

◆ Phase

Enumerator
kEARLY 
kLATE 

Definition at line 48 of file branch-elimination.h.

Constructor & Destructor Documentation

◆ BranchElimination()

v8::internal::compiler::BranchElimination::BranchElimination ( Editor * editor,
JSGraph * js_graph,
Zone * zone,
Phase phase = kLATE )

Definition at line 18 of file branch-elimination.cc.

◆ ~BranchElimination()

v8::internal::compiler::BranchElimination::~BranchElimination ( )
finaldefault

Member Function Documentation

◆ common()

CommonOperatorBuilder * v8::internal::compiler::BranchElimination::common ( ) const
private

Definition at line 394 of file branch-elimination.cc.

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

◆ dead()

Node * v8::internal::compiler::BranchElimination::dead ( ) const
inlineprivate

Definition at line 84 of file branch-elimination.h.

Here is the caller graph for this function:

◆ graph()

TFGraph * v8::internal::compiler::BranchElimination::graph ( ) const
private

Definition at line 390 of file branch-elimination.cc.

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

◆ isolate()

Isolate * v8::internal::compiler::BranchElimination::isolate ( ) const
private

Definition at line 392 of file branch-elimination.cc.

Here is the call graph for this function:

◆ jsgraph()

JSGraph * v8::internal::compiler::BranchElimination::jsgraph ( ) const
inlineprivate

Definition at line 86 of file branch-elimination.h.

Here is the caller graph for this function:

◆ Reduce()

Reduction v8::internal::compiler::BranchElimination::Reduce ( Node * node)
final

Definition at line 27 of file branch-elimination.cc.

Here is the call graph for this function:

◆ ReduceBranch()

Reduction v8::internal::compiler::BranchElimination::ReduceBranch ( Node * node)
private

Definition at line 221 of file branch-elimination.cc.

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

◆ ReduceDeoptimizeConditional()

Reduction v8::internal::compiler::BranchElimination::ReduceDeoptimizeConditional ( Node * node)
private

Definition at line 295 of file branch-elimination.cc.

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

◆ ReduceIf()

Reduction v8::internal::compiler::BranchElimination::ReduceIf ( Node * node,
bool is_true_branch )
private

Definition at line 331 of file branch-elimination.cc.

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

◆ ReduceLoop()

Reduction v8::internal::compiler::BranchElimination::ReduceLoop ( Node * node)
private

Definition at line 346 of file branch-elimination.cc.

Here is the caller graph for this function:

◆ ReduceMerge()

Reduction v8::internal::compiler::BranchElimination::ReduceMerge ( Node * node)
private

Definition at line 353 of file branch-elimination.cc.

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

◆ ReduceOtherControl()

Reduction v8::internal::compiler::BranchElimination::ReduceOtherControl ( Node * node)
private

Definition at line 385 of file branch-elimination.cc.

Here is the caller graph for this function:

◆ reducer_name()

const char * v8::internal::compiler::BranchElimination::reducer_name ( ) const
inlineoverride

Definition at line 56 of file branch-elimination.h.

◆ ReduceStart()

Reduction v8::internal::compiler::BranchElimination::ReduceStart ( Node * node)
private

Definition at line 381 of file branch-elimination.cc.

Here is the caller graph for this function:

◆ ReduceTrapConditional()

Reduction v8::internal::compiler::BranchElimination::ReduceTrapConditional ( Node * node)
private

Definition at line 260 of file branch-elimination.cc.

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

◆ SimplifyBranchCondition()

void v8::internal::compiler::BranchElimination::SimplifyBranchCondition ( Node * branch)
private

Definition at line 58 of file branch-elimination.cc.

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

◆ TryEliminateBranchWithPhiCondition()

bool v8::internal::compiler::BranchElimination::TryEliminateBranchWithPhiCondition ( Node * branch,
Node * phi,
Node * merge )
private

Definition at line 141 of file branch-elimination.cc.

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

◆ UpdateStatesHelper()

Reduction v8::internal::compiler::BranchElimination::UpdateStatesHelper ( Node * node,
ControlPathConditions prev_conditions,
Node * current_condition,
Node * current_branch,
bool is_true_branch,
bool in_new_block )
inlineprivate

Definition at line 74 of file branch-elimination.h.

Here is the caller graph for this function:

Member Data Documentation

◆ dead_

Node* v8::internal::compiler::BranchElimination::dead_
private

Definition at line 92 of file branch-elimination.h.

◆ jsgraph_

JSGraph* const v8::internal::compiler::BranchElimination::jsgraph_
private

Definition at line 90 of file branch-elimination.h.

◆ phase_

Phase v8::internal::compiler::BranchElimination::phase_
private

Definition at line 93 of file branch-elimination.h.


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