| Index: src/compiler/raw-machine-assembler.cc
|
| diff --git a/src/compiler/raw-machine-assembler.cc b/src/compiler/raw-machine-assembler.cc
|
| index 937e3be8b9df120ed64ea8b7bd3205950681329d..b517e938d6e2bd081a42792dc63005d17244af26 100644
|
| --- a/src/compiler/raw-machine-assembler.cc
|
| +++ b/src/compiler/raw-machine-assembler.cc
|
| @@ -32,7 +32,7 @@ RawMachineAssembler::RawMachineAssembler(Isolate* isolate, Graph* graph,
|
| parameters_ = zone()->NewArray<Node*>(param_count);
|
| for (size_t i = 0; i < parameter_count(); ++i) {
|
| parameters_[i] =
|
| - NewNode(common()->Parameter(static_cast<int>(i)), graph->start());
|
| + AddNode(common()->Parameter(static_cast<int>(i)), graph->start());
|
| }
|
| }
|
|
|
| @@ -64,7 +64,7 @@ void RawMachineAssembler::Goto(Label* label) {
|
| void RawMachineAssembler::Branch(Node* condition, Label* true_val,
|
| Label* false_val) {
|
| DCHECK(current_block_ != schedule()->end());
|
| - Node* branch = NewNode(common()->Branch(), condition);
|
| + Node* branch = AddNode(common()->Branch(), condition);
|
| schedule()->AddBranch(CurrentBlock(), branch, Use(true_val), Use(false_val));
|
| current_block_ = nullptr;
|
| }
|
| @@ -75,7 +75,7 @@ void RawMachineAssembler::Switch(Node* index, Label* default_label,
|
| size_t case_count) {
|
| DCHECK_NE(schedule()->end(), current_block_);
|
| size_t succ_count = case_count + 1;
|
| - Node* switch_node = NewNode(common()->Switch(succ_count), index);
|
| + Node* switch_node = AddNode(common()->Switch(succ_count), index);
|
| BasicBlock** succ_blocks = zone()->NewArray<BasicBlock*>(succ_count);
|
| for (size_t index = 0; index < case_count; ++index) {
|
| int32_t case_value = case_values[index];
|
| @@ -95,7 +95,7 @@ void RawMachineAssembler::Switch(Node* index, Label* default_label,
|
|
|
|
|
| void RawMachineAssembler::Return(Node* value) {
|
| - Node* ret = graph()->NewNode(common()->Return(), value);
|
| + Node* ret = MakeNode(common()->Return(), 1, &value);
|
| schedule()->AddReturn(CurrentBlock(), ret);
|
| current_block_ = nullptr;
|
| }
|
| @@ -114,9 +114,7 @@ Node* RawMachineAssembler::CallN(CallDescriptor* desc, Node* function,
|
| }
|
| buffer[index++] = graph()->start();
|
| buffer[index++] = graph()->start();
|
| - Node* call = graph()->NewNode(common()->Call(desc), input_count, buffer);
|
| - schedule()->AddNode(CurrentBlock(), call);
|
| - return call;
|
| + return AddNode(common()->Call(desc), input_count, buffer);
|
| }
|
|
|
|
|
| @@ -136,9 +134,7 @@ Node* RawMachineAssembler::CallNWithFrameState(CallDescriptor* desc,
|
| buffer[index++] = frame_state;
|
| buffer[index++] = graph()->start();
|
| buffer[index++] = graph()->start();
|
| - Node* call = graph()->NewNode(common()->Call(desc), input_count, buffer);
|
| - schedule()->AddNode(CurrentBlock(), call);
|
| - return call;
|
| + return AddNode(common()->Call(desc), input_count, buffer);
|
| }
|
|
|
|
|
| @@ -155,8 +151,7 @@ Node* RawMachineAssembler::TailCallN(CallDescriptor* desc, Node* function,
|
| }
|
| buffer[index++] = graph()->start();
|
| buffer[index++] = graph()->start();
|
| - Node* tail_call =
|
| - graph()->NewNode(common()->TailCall(desc), input_count, buffer);
|
| + Node* tail_call = MakeNode(common()->TailCall(desc), input_count, buffer);
|
| schedule()->AddTailCall(CurrentBlock(), tail_call);
|
| return tail_call;
|
| }
|
| @@ -170,11 +165,8 @@ Node* RawMachineAssembler::CallFunctionStub0(Node* function, Node* receiver,
|
| isolate(), zone(), callable.descriptor(), 1,
|
| CallDescriptor::kNeedsFrameState, Operator::kNoProperties);
|
| Node* stub_code = HeapConstant(callable.code());
|
| - Node* call = graph()->NewNode(common()->Call(desc), stub_code, function,
|
| - receiver, context, frame_state,
|
| - graph()->start(), graph()->start());
|
| - schedule()->AddNode(CurrentBlock(), call);
|
| - return call;
|
| + return AddNode(common()->Call(desc), stub_code, function, receiver, context,
|
| + frame_state, graph()->start(), graph()->start());
|
| }
|
|
|
|
|
| @@ -184,15 +176,12 @@ Node* RawMachineAssembler::CallRuntime1(Runtime::FunctionId function,
|
| zone(), function, 1, Operator::kNoProperties, false);
|
|
|
| Node* centry = HeapConstant(CEntryStub(isolate(), 1).GetCode());
|
| - Node* ref = NewNode(
|
| + Node* ref = AddNode(
|
| common()->ExternalConstant(ExternalReference(function, isolate())));
|
| Node* arity = Int32Constant(1);
|
|
|
| - Node* call =
|
| - graph()->NewNode(common()->Call(descriptor), centry, arg1, ref, arity,
|
| - context, graph()->start(), graph()->start());
|
| - schedule()->AddNode(CurrentBlock(), call);
|
| - return call;
|
| + return AddNode(common()->Call(descriptor), centry, arg1, ref, arity, context,
|
| + graph()->start(), graph()->start());
|
| }
|
|
|
|
|
| @@ -202,15 +191,12 @@ Node* RawMachineAssembler::CallRuntime2(Runtime::FunctionId function,
|
| zone(), function, 2, Operator::kNoProperties, false);
|
|
|
| Node* centry = HeapConstant(CEntryStub(isolate(), 1).GetCode());
|
| - Node* ref = NewNode(
|
| + Node* ref = AddNode(
|
| common()->ExternalConstant(ExternalReference(function, isolate())));
|
| Node* arity = Int32Constant(2);
|
|
|
| - Node* call =
|
| - graph()->NewNode(common()->Call(descriptor), centry, arg1, arg2, ref,
|
| - arity, context, graph()->start(), graph()->start());
|
| - schedule()->AddNode(CurrentBlock(), call);
|
| - return call;
|
| + return AddNode(common()->Call(descriptor), centry, arg1, arg2, ref, arity,
|
| + context, graph()->start(), graph()->start());
|
| }
|
|
|
|
|
| @@ -221,10 +207,8 @@ Node* RawMachineAssembler::CallCFunction0(MachineType return_type,
|
| const CallDescriptor* descriptor =
|
| Linkage::GetSimplifiedCDescriptor(zone(), builder.Build());
|
|
|
| - Node* call = graph()->NewNode(common()->Call(descriptor), function,
|
| - graph()->start(), graph()->start());
|
| - schedule()->AddNode(CurrentBlock(), call);
|
| - return call;
|
| + return AddNode(common()->Call(descriptor), function, graph()->start(),
|
| + graph()->start());
|
| }
|
|
|
|
|
| @@ -237,10 +221,8 @@ Node* RawMachineAssembler::CallCFunction1(MachineType return_type,
|
| const CallDescriptor* descriptor =
|
| Linkage::GetSimplifiedCDescriptor(zone(), builder.Build());
|
|
|
| - Node* call = graph()->NewNode(common()->Call(descriptor), function, arg0,
|
| - graph()->start(), graph()->start());
|
| - schedule()->AddNode(CurrentBlock(), call);
|
| - return call;
|
| + return AddNode(common()->Call(descriptor), function, arg0, graph()->start(),
|
| + graph()->start());
|
| }
|
|
|
|
|
| @@ -255,10 +237,8 @@ Node* RawMachineAssembler::CallCFunction2(MachineType return_type,
|
| const CallDescriptor* descriptor =
|
| Linkage::GetSimplifiedCDescriptor(zone(), builder.Build());
|
|
|
| - Node* call = graph()->NewNode(common()->Call(descriptor), function, arg0,
|
| - arg1, graph()->start(), graph()->start());
|
| - schedule()->AddNode(CurrentBlock(), call);
|
| - return call;
|
| + return AddNode(common()->Call(descriptor), function, arg0, arg1,
|
| + graph()->start(), graph()->start());
|
| }
|
|
|
|
|
| @@ -291,10 +271,7 @@ Node* RawMachineAssembler::CallCFunction8(
|
| graph()->start()};
|
| const CallDescriptor* descriptor =
|
| Linkage::GetSimplifiedCDescriptor(zone(), builder.Build());
|
| - Node* call =
|
| - graph()->NewNode(common()->Call(descriptor), arraysize(args), args);
|
| - schedule()->AddNode(CurrentBlock(), call);
|
| - return call;
|
| + return AddNode(common()->Call(descriptor), arraysize(args), args);
|
| }
|
|
|
|
|
| @@ -324,15 +301,23 @@ BasicBlock* RawMachineAssembler::CurrentBlock() {
|
| }
|
|
|
|
|
| -Node* RawMachineAssembler::MakeNode(const Operator* op, int input_count,
|
| - Node** inputs) {
|
| +Node* RawMachineAssembler::AddNode(const Operator* op, int input_count,
|
| + Node** inputs) {
|
| DCHECK_NOT_NULL(schedule_);
|
| DCHECK(current_block_ != nullptr);
|
| - Node* node = graph()->NewNode(op, input_count, inputs);
|
| + Node* node = MakeNode(op, input_count, inputs);
|
| schedule()->AddNode(CurrentBlock(), node);
|
| return node;
|
| }
|
|
|
| +
|
| +Node* RawMachineAssembler::MakeNode(const Operator* op, int input_count,
|
| + Node** inputs) {
|
| + // The raw machine assembler nodes do not have effect and control inputs,
|
| + // so we disable checking input counts here.
|
| + return graph()->NewNodeUnchecked(op, input_count, inputs);
|
| +}
|
| +
|
| } // namespace compiler
|
| } // namespace internal
|
| } // namespace v8
|
|
|