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

#include <graph-reducer.h>

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

Classes

struct  NodeState
 

Public Types

enum class  State : uint8_t { kUnvisited , kRevisit , kOnStack , kVisited }
 

Public Member Functions

 GraphReducer (Zone *zone, TFGraph *graph, TickCounter *tick_counter, JSHeapBroker *broker, Node *dead=nullptr, ObserveNodeManager *observe_node_manager=nullptr)
 
 ~GraphReducer () override
 
 GraphReducer (const GraphReducer &)=delete
 
GraphReduceroperator= (const GraphReducer &)=delete
 
TFGraphgraph () const
 
void AddReducer (Reducer *reducer)
 
void ReduceNode (Node *const)
 
void ReduceGraph ()
 

Private Member Functions

Reduction Reduce (Node *const)
 
void ReduceTop ()
 
void Replace (Node *node, Node *replacement) final
 
void ReplaceWithValue (Node *node, Node *value, Node *effect, Node *control) final
 
void Replace (Node *node, Node *replacement, NodeId max_id) final
 
void Pop ()
 
void Push (Node *node)
 
bool Recurse (Node *node)
 
void Revisit (Node *node) final
 

Private Attributes

TFGraph *const graph_
 
Node *const dead_
 
NodeMarker< Statestate_
 
ZoneVector< Reducer * > reducers_
 
ZoneQueue< Node * > revisit_
 
ZoneStack< NodeStatestack_
 
TickCounter *const tick_counter_
 
JSHeapBroker *const broker_
 
ObserveNodeManager *const observe_node_manager_
 

Detailed Description

Definition at line 150 of file graph-reducer.h.

Member Enumeration Documentation

◆ State

enum class v8::internal::compiler::GraphReducer::State : uint8_t
strong
Enumerator
kUnvisited 
kRevisit 
kOnStack 
kVisited 

Definition at line 22 of file graph-reducer.cc.

Constructor & Destructor Documentation

◆ GraphReducer() [1/2]

v8::internal::compiler::GraphReducer::GraphReducer ( Zone * zone,
TFGraph * graph,
TickCounter * tick_counter,
JSHeapBroker * broker,
Node * dead = nullptr,
ObserveNodeManager * observe_node_manager = nullptr )

Definition at line 42 of file graph-reducer.cc.

Here is the call graph for this function:

◆ ~GraphReducer()

v8::internal::compiler::GraphReducer::~GraphReducer ( )
overridedefault

◆ GraphReducer() [2/2]

v8::internal::compiler::GraphReducer::GraphReducer ( const GraphReducer & )
delete

Member Function Documentation

◆ AddReducer()

void v8::internal::compiler::GraphReducer::AddReducer ( Reducer * reducer)

Definition at line 62 of file graph-reducer.cc.

◆ graph()

TFGraph * v8::internal::compiler::GraphReducer::graph ( ) const
inline

Definition at line 161 of file graph-reducer.h.

Here is the caller graph for this function:

◆ operator=()

GraphReducer & v8::internal::compiler::GraphReducer::operator= ( const GraphReducer & )
delete

◆ Pop()

void v8::internal::compiler::GraphReducer::Pop ( )
private

Definition at line 289 of file graph-reducer.cc.

Here is the caller graph for this function:

◆ Push()

void v8::internal::compiler::GraphReducer::Push ( Node * node)
private

Definition at line 296 of file graph-reducer.cc.

Here is the caller graph for this function:

◆ Recurse()

bool v8::internal::compiler::GraphReducer::Recurse ( Node * node)
private

Definition at line 303 of file graph-reducer.cc.

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

◆ Reduce()

Reduction v8::internal::compiler::GraphReducer::Reduce ( Node * const node)
private

Definition at line 100 of file graph-reducer.cc.

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

◆ ReduceGraph()

void v8::internal::compiler::GraphReducer::ReduceGraph ( )

Definition at line 97 of file graph-reducer.cc.

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

◆ ReduceNode()

void v8::internal::compiler::GraphReducer::ReduceNode ( Node * const node)

Definition at line 67 of file graph-reducer.cc.

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

◆ ReduceTop()

void v8::internal::compiler::GraphReducer::ReduceTop ( )
private

Definition at line 148 of file graph-reducer.cc.

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

◆ Replace() [1/2]

void v8::internal::compiler::GraphReducer::Replace ( Node * node,
Node * replacement )
finalprivate

Definition at line 212 of file graph-reducer.cc.

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

◆ Replace() [2/2]

void v8::internal::compiler::GraphReducer::Replace ( Node * node,
Node * replacement,
NodeId max_id )
finalprivate

Definition at line 217 of file graph-reducer.cc.

Here is the call graph for this function:

◆ ReplaceWithValue()

void v8::internal::compiler::GraphReducer::ReplaceWithValue ( Node * node,
Node * value,
Node * effect,
Node * control )
finalprivate

Definition at line 251 of file graph-reducer.cc.

Here is the call graph for this function:

◆ Revisit()

void v8::internal::compiler::GraphReducer::Revisit ( Node * node)
finalprivate

Definition at line 310 of file graph-reducer.cc.

Here is the caller graph for this function:

Member Data Documentation

◆ broker_

JSHeapBroker* const v8::internal::compiler::GraphReducer::broker_
private

Definition at line 211 of file graph-reducer.h.

◆ dead_

Node* const v8::internal::compiler::GraphReducer::dead_
private

Definition at line 205 of file graph-reducer.h.

◆ graph_

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

Definition at line 204 of file graph-reducer.h.

◆ observe_node_manager_

ObserveNodeManager* const v8::internal::compiler::GraphReducer::observe_node_manager_
private

Definition at line 212 of file graph-reducer.h.

◆ reducers_

ZoneVector<Reducer*> v8::internal::compiler::GraphReducer::reducers_
private

Definition at line 207 of file graph-reducer.h.

◆ revisit_

ZoneQueue<Node*> v8::internal::compiler::GraphReducer::revisit_
private

Definition at line 208 of file graph-reducer.h.

◆ stack_

ZoneStack<NodeState> v8::internal::compiler::GraphReducer::stack_
private

Definition at line 209 of file graph-reducer.h.

◆ state_

NodeMarker<State> v8::internal::compiler::GraphReducer::state_
private

Definition at line 206 of file graph-reducer.h.

◆ tick_counter_

TickCounter* const v8::internal::compiler::GraphReducer::tick_counter_
private

Definition at line 210 of file graph-reducer.h.


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