Index: src/compiler/schedule.cc |
diff --git a/src/compiler/schedule.cc b/src/compiler/schedule.cc |
index f30e5f61ceb9d944a8afdbe0c16ba2a5822f4a62..adb80a7b081b7c3ceba52752f589d669e25241bc 100644 |
--- a/src/compiler/schedule.cc |
+++ b/src/compiler/schedule.cc |
@@ -108,6 +108,8 @@ std::ostream& operator<<(std::ostream& os, const BasicBlock::Control& c) { |
return os << "switch"; |
case BasicBlock::kDeoptimize: |
return os << "deoptimize"; |
+ case BasicBlock::kTailCall: |
+ return os << "tailcall"; |
case BasicBlock::kReturn: |
return os << "return"; |
case BasicBlock::kThrow: |
@@ -233,6 +235,14 @@ void Schedule::AddSwitch(BasicBlock* block, Node* sw, BasicBlock** succ_blocks, |
} |
+void Schedule::AddTailCall(BasicBlock* block, Node* input) { |
+ DCHECK_EQ(BasicBlock::kNone, block->control()); |
+ block->set_control(BasicBlock::kTailCall); |
+ SetControlInput(block, input); |
+ if (block != end()) AddSuccessor(block, end()); |
+} |
+ |
+ |
void Schedule::AddReturn(BasicBlock* block, Node* input) { |
DCHECK_EQ(BasicBlock::kNone, block->control()); |
block->set_control(BasicBlock::kReturn); |