diff options
Diffstat (limited to 'deps/v8/src/compiler/dead-code-elimination.cc')
-rw-r--r-- | deps/v8/src/compiler/dead-code-elimination.cc | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/deps/v8/src/compiler/dead-code-elimination.cc b/deps/v8/src/compiler/dead-code-elimination.cc index 424db00fc4..2251121c7f 100644 --- a/deps/v8/src/compiler/dead-code-elimination.cc +++ b/deps/v8/src/compiler/dead-code-elimination.cc @@ -65,7 +65,8 @@ Reduction DeadCodeElimination::Reduce(Node* node) { case IrOpcode::kDeoptimize: case IrOpcode::kReturn: case IrOpcode::kTerminate: - return ReduceDeoptimizeOrReturnOrTerminate(node); + case IrOpcode::kTailCall: + return ReduceDeoptimizeOrReturnOrTerminateOrTailCall(node); case IrOpcode::kThrow: return PropagateDeadControl(node); case IrOpcode::kBranch: @@ -281,10 +282,12 @@ Reduction DeadCodeElimination::ReduceEffectNode(Node* node) { return NoChange(); } -Reduction DeadCodeElimination::ReduceDeoptimizeOrReturnOrTerminate(Node* node) { +Reduction DeadCodeElimination::ReduceDeoptimizeOrReturnOrTerminateOrTailCall( + Node* node) { DCHECK(node->opcode() == IrOpcode::kDeoptimize || node->opcode() == IrOpcode::kReturn || - node->opcode() == IrOpcode::kTerminate); + node->opcode() == IrOpcode::kTerminate || + node->opcode() == IrOpcode::kTailCall); Reduction reduction = PropagateDeadControl(node); if (reduction.Changed()) return reduction; if (FindDeadInput(node) != nullptr) { |