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

#include <control-equivalence.h>

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

Classes

struct  Bracket
 
struct  DFSStackEntry
 
struct  NodeData
 

Public Member Functions

 ControlEquivalence (Zone *zone, TFGraph *graph)
 
void Run (Node *exit)
 
size_t ClassOf (Node *node)
 

Private Types

enum  DFSDirection { kInputDirection , kUseDirection }
 
using BracketList = ZoneLinkedList<Bracket>
 
using DFSStack = ZoneStack<DFSStackEntry>
 
using Data = ZoneVector<NodeData*>
 

Private Member Functions

void VisitPre (Node *node)
 
void VisitMid (Node *node, DFSDirection direction)
 
void VisitPost (Node *node, Node *parent_node, DFSDirection direction)
 
void VisitBackedge (Node *from, Node *to, DFSDirection direction)
 
void RunUndirectedDFS (Node *exit)
 
void DetermineParticipationEnqueue (ZoneQueue< Node * > &queue, Node *node)
 
void DetermineParticipation (Node *exit)
 
NodeDataGetData (Node *node)
 
void AllocateData (Node *node)
 
int NewClassNumber ()
 
int NewDFSNumber ()
 
bool Participates (Node *node)
 
size_t GetClass (Node *node)
 
void SetClass (Node *node, size_t number)
 
BracketListGetBracketList (Node *node)
 
void SetBracketList (Node *node, BracketList &list)
 
void DFSPush (DFSStack &stack, Node *node, Node *from, DFSDirection dir)
 
void DFSPop (DFSStack &stack, Node *node)
 
void BracketListDelete (BracketList &blist, Node *to, DFSDirection direction)
 
void BracketListTRACE (BracketList &blist)
 

Private Attributes

Zone *const zone_
 
TFGraph *const graph_
 
int dfs_number_
 
int class_number_
 
Data node_data_
 

Static Private Attributes

static const size_t kInvalidClass = static_cast<size_t>(-1)
 

Detailed Description

Definition at line 33 of file control-equivalence.h.

Member Typedef Documentation

◆ BracketList

◆ Data

◆ DFSStack

Member Enumeration Documentation

◆ DFSDirection

Enumerator
kInputDirection 
kUseDirection 

Definition at line 59 of file control-equivalence.h.

Constructor & Destructor Documentation

◆ ControlEquivalence()

v8::internal::compiler::ControlEquivalence::ControlEquivalence ( Zone * zone,
TFGraph * graph )
inline

Definition at line 36 of file control-equivalence.h.

Member Function Documentation

◆ AllocateData()

void v8::internal::compiler::ControlEquivalence::AllocateData ( Node * node)
inlineprivate

Definition at line 136 of file control-equivalence.h.

Here is the caller graph for this function:

◆ BracketListDelete()

void v8::internal::compiler::ControlEquivalence::BracketListDelete ( BracketList & blist,
Node * to,
DFSDirection direction )
private

Definition at line 207 of file control-equivalence.cc.

Here is the caller graph for this function:

◆ BracketListTRACE()

void v8::internal::compiler::ControlEquivalence::BracketListTRACE ( BracketList & blist)
private

Definition at line 221 of file control-equivalence.cc.

Here is the caller graph for this function:

◆ ClassOf()

size_t v8::internal::compiler::ControlEquivalence::ClassOf ( Node * node)
inline

Definition at line 52 of file control-equivalence.h.

Here is the caller graph for this function:

◆ DetermineParticipation()

void v8::internal::compiler::ControlEquivalence::DetermineParticipation ( Node * exit)
private

Definition at line 174 of file control-equivalence.cc.

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

◆ DetermineParticipationEnqueue()

void v8::internal::compiler::ControlEquivalence::DetermineParticipationEnqueue ( ZoneQueue< Node * > & queue,
Node * node )
private

Definition at line 165 of file control-equivalence.cc.

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

◆ DFSPop()

void v8::internal::compiler::ControlEquivalence::DFSPop ( DFSStack & stack,
Node * node )
private

Definition at line 199 of file control-equivalence.cc.

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

◆ DFSPush()

void v8::internal::compiler::ControlEquivalence::DFSPush ( DFSStack & stack,
Node * node,
Node * from,
DFSDirection dir )
private

Definition at line 188 of file control-equivalence.cc.

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

◆ GetBracketList()

BracketList & v8::internal::compiler::ControlEquivalence::GetBracketList ( Node * node)
inlineprivate

Definition at line 155 of file control-equivalence.h.

Here is the caller graph for this function:

◆ GetClass()

size_t v8::internal::compiler::ControlEquivalence::GetClass ( Node * node)
inlineprivate

Definition at line 148 of file control-equivalence.h.

Here is the caller graph for this function:

◆ GetData()

NodeData * v8::internal::compiler::ControlEquivalence::GetData ( Node * node)
inlineprivate

Definition at line 131 of file control-equivalence.h.

Here is the caller graph for this function:

◆ NewClassNumber()

int v8::internal::compiler::ControlEquivalence::NewClassNumber ( )
inlineprivate

Definition at line 142 of file control-equivalence.h.

Here is the caller graph for this function:

◆ NewDFSNumber()

int v8::internal::compiler::ControlEquivalence::NewDFSNumber ( )
inlineprivate

Definition at line 143 of file control-equivalence.h.

◆ Participates()

bool v8::internal::compiler::ControlEquivalence::Participates ( Node * node)
inlineprivate

Definition at line 145 of file control-equivalence.h.

Here is the caller graph for this function:

◆ Run()

void v8::internal::compiler::ControlEquivalence::Run ( Node * exit)

Definition at line 17 of file control-equivalence.cc.

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

◆ RunUndirectedDFS()

void v8::internal::compiler::ControlEquivalence::RunUndirectedDFS ( Node * exit)
private

Definition at line 88 of file control-equivalence.cc.

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

◆ SetBracketList()

void v8::internal::compiler::ControlEquivalence::SetBracketList ( Node * node,
BracketList & list )
inlineprivate

Definition at line 159 of file control-equivalence.h.

◆ SetClass()

void v8::internal::compiler::ControlEquivalence::SetClass ( Node * node,
size_t number )
inlineprivate

Definition at line 149 of file control-equivalence.h.

Here is the caller graph for this function:

◆ VisitBackedge()

void v8::internal::compiler::ControlEquivalence::VisitBackedge ( Node * from,
Node * to,
DFSDirection direction )
private

Definition at line 77 of file control-equivalence.cc.

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

◆ VisitMid()

void v8::internal::compiler::ControlEquivalence::VisitMid ( Node * node,
DFSDirection direction )
private

Definition at line 34 of file control-equivalence.cc.

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

◆ VisitPost()

void v8::internal::compiler::ControlEquivalence::VisitPost ( Node * node,
Node * parent_node,
DFSDirection direction )
private

Definition at line 61 of file control-equivalence.cc.

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

◆ VisitPre()

void v8::internal::compiler::ControlEquivalence::VisitPre ( Node * node)
private

Definition at line 29 of file control-equivalence.cc.

Here is the caller graph for this function:

Member Data Documentation

◆ class_number_

int v8::internal::compiler::ControlEquivalence::class_number_
private

Definition at line 176 of file control-equivalence.h.

◆ dfs_number_

int v8::internal::compiler::ControlEquivalence::dfs_number_
private

Definition at line 175 of file control-equivalence.h.

◆ graph_

TFGraph* const v8::internal::compiler::ControlEquivalence::graph_
private

Definition at line 174 of file control-equivalence.h.

◆ kInvalidClass

STATIC_CONST_MEMBER_DEFINITION const size_t v8::internal::compiler::ControlEquivalence::kInvalidClass = static_cast<size_t>(-1)
staticprivate

Definition at line 58 of file control-equivalence.h.

◆ node_data_

Data v8::internal::compiler::ControlEquivalence::node_data_
private

Definition at line 177 of file control-equivalence.h.

◆ zone_

Zone* const v8::internal::compiler::ControlEquivalence::zone_
private

Definition at line 173 of file control-equivalence.h.


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