Chromium Code Reviews| Index: src/compiler/raw-machine-assembler.cc |
| diff --git a/src/compiler/raw-machine-assembler.cc b/src/compiler/raw-machine-assembler.cc |
| index 43a3aac2b5e91c518dcc48c08864d31e53448350..7ea1428581efcd0cd626253ba9cd8ab0c8c0a1f6 100644 |
| --- a/src/compiler/raw-machine-assembler.cc |
| +++ b/src/compiler/raw-machine-assembler.cc |
| @@ -5,6 +5,7 @@ |
| #include "src/compiler/raw-machine-assembler.h" |
| #include "src/code-factory.h" |
| +#include "src/compiler/node-properties.h" |
| #include "src/compiler/pipeline.h" |
| #include "src/compiler/scheduler.h" |
| @@ -31,6 +32,7 @@ RawMachineAssembler::RawMachineAssembler(Isolate* isolate, Graph* graph, |
| parameters_[i] = |
| AddNode(common()->Parameter(static_cast<int>(i)), graph->start()); |
| } |
| + graph->SetEnd(UndefinedConstant()); |
|
Michael Starzinger
2015/12/03 12:28:27
This is a dirty hack because currently we disallow
Benedikt Meurer
2015/12/03 12:49:15
As discussed, remove the hack and use End(0)
Michael Starzinger
2015/12/03 12:53:32
Done.
|
| } |
| @@ -212,6 +214,7 @@ Node* RawMachineAssembler::TailCallN(CallDescriptor* desc, Node* function, |
| buffer[index++] = graph()->start(); |
| buffer[index++] = graph()->start(); |
| Node* tail_call = MakeNode(common()->TailCall(desc), input_count, buffer); |
| + NodeProperties::MergeControlToEnd(graph(), common(), tail_call); |
| schedule()->AddTailCall(CurrentBlock(), tail_call); |
| current_block_ = nullptr; |
| return tail_call; |
| @@ -234,6 +237,7 @@ Node* RawMachineAssembler::TailCallRuntime1(Runtime::FunctionId function, |
| graph()->start()}; |
| Node* tail_call = MakeNode(common()->TailCall(desc), arraysize(nodes), nodes); |
| + NodeProperties::MergeControlToEnd(graph(), common(), tail_call); |
| schedule()->AddTailCall(CurrentBlock(), tail_call); |
| current_block_ = nullptr; |
| return tail_call; |
| @@ -258,6 +262,7 @@ Node* RawMachineAssembler::TailCallRuntime2(Runtime::FunctionId function, |
| graph()->start()}; |
| Node* tail_call = MakeNode(common()->TailCall(desc), arraysize(nodes), nodes); |
| + NodeProperties::MergeControlToEnd(graph(), common(), tail_call); |
| schedule()->AddTailCall(CurrentBlock(), tail_call); |
| current_block_ = nullptr; |
| return tail_call; |