V8 Project
v8::internal::compiler::ContextSpecializationVisitor Class Reference
+ Inheritance diagram for v8::internal::compiler::ContextSpecializationVisitor:
+ Collaboration diagram for v8::internal::compiler::ContextSpecializationVisitor:

Public Member Functions

 ContextSpecializationVisitor (JSContextSpecializer *spec)
 
GenericGraphVisit::Control Post (Node *node)
 
- Public Member Functions inherited from v8::internal::compiler::GenericGraphVisit::NullNodeVisitor< B, S >
Control Pre (GenericNode< B, S > *node)
 
Control Post (GenericNode< B, S > *node)
 
void PreEdge (GenericNode< B, S > *from, int index, GenericNode< B, S > *to)
 
void PostEdge (GenericNode< B, S > *from, int index, GenericNode< B, S > *to)
 

Private Attributes

JSContextSpecializerspec_
 

Detailed Description

Definition at line 18 of file js-context-specialization.cc.

Constructor & Destructor Documentation

◆ ContextSpecializationVisitor()

v8::internal::compiler::ContextSpecializationVisitor::ContextSpecializationVisitor ( JSContextSpecializer spec)
inlineexplicit

Definition at line 20 of file js-context-specialization.cc.

Member Function Documentation

◆ Post()

GenericGraphVisit::Control v8::internal::compiler::ContextSpecializationVisitor::Post ( Node *  node)
inline

Definition at line 23 of file js-context-specialization.cc.

23  {
24  switch (node->opcode()) {
25  case IrOpcode::kJSLoadContext: {
26  Reduction r = spec_->ReduceJSLoadContext(node);
27  if (r.Changed() && r.replacement() != node) {
28  NodeProperties::ReplaceWithValue(node, r.replacement());
29  node->RemoveAllInputs();
30  }
31  break;
32  }
33  case IrOpcode::kJSStoreContext: {
34  Reduction r = spec_->ReduceJSStoreContext(node);
35  if (r.Changed() && r.replacement() != node) {
36  NodeProperties::ReplaceWithValue(node, r.replacement());
37  node->RemoveAllInputs();
38  }
39  break;
40  }
41  default:
42  break;
43  }
45  }
static void ReplaceWithValue(Node *node, Node *value, Node *effect=NULL)

References v8::internal::compiler::GenericGraphVisit::CONTINUE, v8::internal::compiler::JSContextSpecializer::ReduceJSLoadContext(), v8::internal::compiler::JSContextSpecializer::ReduceJSStoreContext(), v8::internal::compiler::NodeProperties::ReplaceWithValue(), and spec_.

+ Here is the call graph for this function:

Member Data Documentation

◆ spec_

JSContextSpecializer* v8::internal::compiler::ContextSpecializationVisitor::spec_
private

Definition at line 48 of file js-context-specialization.cc.

Referenced by Post().


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