Index: src/compiler/js-inlining.cc |
diff --git a/src/compiler/js-inlining.cc b/src/compiler/js-inlining.cc |
index 447bdcde8c390ae4637467287236b9b7c0196f74..7aa82c91cb1909c9a5d26a81503dc4699eb86401 100644 |
--- a/src/compiler/js-inlining.cc |
+++ b/src/compiler/js-inlining.cc |
@@ -106,13 +106,13 @@ Reduction JSInliner::InlineCall(Node* call, Node* new_target, Node* context, |
Replace(use, new_target); |
} else if (index == inlinee_arity_index) { |
// The projection is requesting the number of arguments. |
- Replace(use, jsgraph_->Int32Constant(inliner_inputs - 2)); |
+ Replace(use, jsgraph()->Int32Constant(inliner_inputs - 2)); |
} else if (index == inlinee_context_index) { |
// The projection is requesting the inlinee function context. |
Replace(use, context); |
} else { |
// Call has fewer arguments than required, fill with undefined. |
- Replace(use, jsgraph_->UndefinedConstant()); |
+ Replace(use, jsgraph()->UndefinedConstant()); |
} |
break; |
} |
@@ -143,9 +143,8 @@ Reduction JSInliner::InlineCall(Node* call, Node* new_target, Node* context, |
case IrOpcode::kDeoptimize: |
case IrOpcode::kTerminate: |
case IrOpcode::kThrow: |
- NodeProperties::MergeControlToEnd(jsgraph_->graph(), jsgraph_->common(), |
- input); |
- Revisit(jsgraph_->graph()->end()); |
+ NodeProperties::MergeControlToEnd(graph(), common(), input); |
+ Revisit(graph()->end()); |
break; |
default: |
UNREACHABLE(); |
@@ -159,20 +158,20 @@ Reduction JSInliner::InlineCall(Node* call, Node* new_target, Node* context, |
// uses with said value or kill value uses if no value can be returned. |
if (values.size() > 0) { |
int const input_count = static_cast<int>(controls.size()); |
- Node* control_output = jsgraph_->graph()->NewNode( |
- jsgraph_->common()->Merge(input_count), input_count, &controls.front()); |
+ Node* control_output = graph()->NewNode(common()->Merge(input_count), |
+ input_count, &controls.front()); |
values.push_back(control_output); |
effects.push_back(control_output); |
- Node* value_output = jsgraph_->graph()->NewNode( |
- jsgraph_->common()->Phi(MachineRepresentation::kTagged, input_count), |
+ Node* value_output = graph()->NewNode( |
+ common()->Phi(MachineRepresentation::kTagged, input_count), |
static_cast<int>(values.size()), &values.front()); |
- Node* effect_output = jsgraph_->graph()->NewNode( |
- jsgraph_->common()->EffectPhi(input_count), |
- static_cast<int>(effects.size()), &effects.front()); |
+ Node* effect_output = |
+ graph()->NewNode(common()->EffectPhi(input_count), |
+ static_cast<int>(effects.size()), &effects.front()); |
ReplaceWithValue(call, value_output, effect_output, control_output); |
return Changed(value_output); |
} else { |
- ReplaceWithValue(call, call, call, jsgraph_->Dead()); |
+ ReplaceWithValue(call, call, call, jsgraph()->Dead()); |
return Changed(call); |
} |
} |
@@ -183,24 +182,24 @@ Node* JSInliner::CreateArtificialFrameState(Node* node, Node* outer_frame_state, |
FrameStateType frame_state_type, |
Handle<SharedFunctionInfo> shared) { |
const FrameStateFunctionInfo* state_info = |
- jsgraph_->common()->CreateFrameStateFunctionInfo( |
- frame_state_type, parameter_count + 1, 0, shared); |
+ common()->CreateFrameStateFunctionInfo(frame_state_type, |
+ parameter_count + 1, 0, shared); |
- const Operator* op = jsgraph_->common()->FrameState( |
+ const Operator* op = common()->FrameState( |
BailoutId(-1), OutputFrameStateCombine::Ignore(), state_info); |
- const Operator* op0 = jsgraph_->common()->StateValues(0); |
- Node* node0 = jsgraph_->graph()->NewNode(op0); |
+ const Operator* op0 = common()->StateValues(0); |
+ Node* node0 = graph()->NewNode(op0); |
NodeVector params(local_zone_); |
for (int parameter = 0; parameter < parameter_count + 1; ++parameter) { |
params.push_back(node->InputAt(1 + parameter)); |
} |
const Operator* op_param = |
- jsgraph_->common()->StateValues(static_cast<int>(params.size())); |
- Node* params_node = jsgraph_->graph()->NewNode( |
+ common()->StateValues(static_cast<int>(params.size())); |
+ Node* params_node = graph()->NewNode( |
op_param, static_cast<int>(params.size()), ¶ms.front()); |
- return jsgraph_->graph()->NewNode(op, params_node, node0, node0, |
- jsgraph_->UndefinedConstant(), |
- node->InputAt(0), outer_frame_state); |
+ return graph()->NewNode(op, params_node, node0, node0, |
+ jsgraph()->UndefinedConstant(), node->InputAt(0), |
+ outer_frame_state); |
} |
Node* JSInliner::CreateTailCallerFrameState(Node* node, Node* frame_state) { |
@@ -221,16 +220,16 @@ Node* JSInliner::CreateTailCallerFrameState(Node* node, Node* frame_state) { |
} |
const FrameStateFunctionInfo* state_info = |
- jsgraph_->common()->CreateFrameStateFunctionInfo( |
+ common()->CreateFrameStateFunctionInfo( |
FrameStateType::kTailCallerFunction, 0, 0, shared); |
- const Operator* op = jsgraph_->common()->FrameState( |
+ const Operator* op = common()->FrameState( |
BailoutId(-1), OutputFrameStateCombine::Ignore(), state_info); |
- const Operator* op0 = jsgraph_->common()->StateValues(0); |
- Node* node0 = jsgraph_->graph()->NewNode(op0); |
- return jsgraph_->graph()->NewNode(op, node0, node0, node0, |
- jsgraph_->UndefinedConstant(), function, |
- frame_state); |
+ const Operator* op0 = common()->StateValues(0); |
+ Node* node0 = graph()->NewNode(op0); |
+ return graph()->NewNode(op, node0, node0, node0, |
+ jsgraph()->UndefinedConstant(), function, |
+ frame_state); |
} |
namespace { |
@@ -417,7 +416,7 @@ Reduction JSInliner::ReduceJSCall(Node* node, Handle<JSFunction> function) { |
} |
Node* frame_state = call.frame_state(); |
- Node* new_target = jsgraph_->UndefinedConstant(); |
+ Node* new_target = jsgraph()->UndefinedConstant(); |
// Inline {JSCallConstruct} requires some additional magic. |
if (node->opcode() == IrOpcode::kJSCallConstruct) { |
@@ -425,24 +424,24 @@ Reduction JSInliner::ReduceJSCall(Node* node, Handle<JSFunction> function) { |
// constructor dispatch (allocate implicit receiver and check return value). |
// This models the behavior usually accomplished by our {JSConstructStub}. |
// Note that the context has to be the callers context (input to call node). |
- Node* receiver = jsgraph_->UndefinedConstant(); // Implicit receiver. |
+ Node* receiver = jsgraph()->UndefinedConstant(); // Implicit receiver. |
if (NeedsImplicitReceiver(shared_info)) { |
Node* frame_state_before = NodeProperties::FindFrameStateBefore(node); |
Node* effect = NodeProperties::GetEffectInput(node); |
Node* context = NodeProperties::GetContextInput(node); |
- Node* create = jsgraph_->graph()->NewNode( |
- jsgraph_->javascript()->Create(), call.target(), call.new_target(), |
- context, frame_state_before, effect); |
+ Node* create = graph()->NewNode(javascript()->Create(), call.target(), |
+ call.new_target(), context, |
+ frame_state_before, effect); |
NodeProperties::ReplaceEffectInput(node, create); |
// Insert a check of the return value to determine whether the return |
// value |
// or the implicit receiver should be selected as a result of the call. |
- Node* check = jsgraph_->graph()->NewNode( |
- jsgraph_->javascript()->CallRuntime(Runtime::kInlineIsJSReceiver, 1), |
- node, context, node, start); |
- Node* select = jsgraph_->graph()->NewNode( |
- jsgraph_->common()->Select(MachineRepresentation::kTagged), check, |
- node, create); |
+ Node* check = graph()->NewNode( |
+ javascript()->CallRuntime(Runtime::kInlineIsJSReceiver, 1), node, |
+ context, node, start); |
+ Node* select = |
+ graph()->NewNode(common()->Select(MachineRepresentation::kTagged), |
+ check, node, create); |
NodeProperties::ReplaceUses(node, select, check, node, node); |
NodeProperties::ReplaceValueInput(select, node, 1); |
NodeProperties::ReplaceValueInput(check, node, 0); |
@@ -455,7 +454,7 @@ Reduction JSInliner::ReduceJSCall(Node* node, Handle<JSFunction> function) { |
// behaves as if we were dealing with a regular function invocation. |
new_target = call.new_target(); // Retrieve new target value input. |
node->RemoveInput(call.formal_arguments() + 1); // Drop new target. |
- node->InsertInput(jsgraph_->graph()->zone(), 1, receiver); |
+ node->InsertInput(graph()->zone(), 1, receiver); |
// Insert a construct stub frame into the chain of frame states. This will |
// reconstruct the proper frame when deoptimizing within the constructor. |
@@ -468,7 +467,7 @@ Reduction JSInliner::ReduceJSCall(Node* node, Handle<JSFunction> function) { |
// TODO(turbofan): We might want to load the context from the JSFunction at |
// runtime in case we only know the SharedFunctionInfo once we have dynamic |
// type feedback in the compiler. |
- Node* context = jsgraph_->Constant(handle(function->context())); |
+ Node* context = jsgraph()->Constant(handle(function->context())); |
// Insert a JSConvertReceiver node for sloppy callees. Note that the context |
// passed into this node has to be the callees context (loaded above). Note |
@@ -481,9 +480,9 @@ Reduction JSInliner::ReduceJSCall(Node* node, Handle<JSFunction> function) { |
const CallFunctionParameters& p = CallFunctionParametersOf(node->op()); |
Node* frame_state_before = NodeProperties::FindFrameStateBefore(node); |
Node* effect = NodeProperties::GetEffectInput(node); |
- Node* convert = jsgraph_->graph()->NewNode( |
- jsgraph_->javascript()->ConvertReceiver(p.convert_mode()), |
- call.receiver(), context, frame_state_before, effect, start); |
+ Node* convert = graph()->NewNode( |
+ javascript()->ConvertReceiver(p.convert_mode()), call.receiver(), |
+ context, frame_state_before, effect, start); |
NodeProperties::ReplaceValueInput(node, convert, 1); |
NodeProperties::ReplaceEffectInput(node, convert); |
} |
@@ -519,6 +518,12 @@ Reduction JSInliner::ReduceJSCall(Node* node, Handle<JSFunction> function) { |
Graph* JSInliner::graph() const { return jsgraph()->graph(); } |
+JSOperatorBuilder* JSInliner::javascript() const { |
+ return jsgraph()->javascript(); |
+} |
+ |
+CommonOperatorBuilder* JSInliner::common() const { return jsgraph()->common(); } |
+ |
} // namespace compiler |
} // namespace internal |
} // namespace v8 |