Index: src/compiler/verifier.cc |
diff --git a/src/compiler/verifier.cc b/src/compiler/verifier.cc |
index 071cd0287daa4d8cf5f487e7d31e0dfbab97c57e..4c57f4fe1d7f35ac50946cd8f8e1c56a0a7f4423 100644 |
--- a/src/compiler/verifier.cc |
+++ b/src/compiler/verifier.cc |
@@ -395,6 +395,24 @@ void Verifier::Visitor::Check(Node* node) { |
CHECK_EQ(input_count, 1 + effect_count); |
break; |
} |
+ case IrOpcode::kLoopExit: { |
+ CHECK_EQ(2, control_count); |
+ Node* loop = NodeProperties::GetControlInput(node, 1); |
+ CHECK_EQ(IrOpcode::kLoop, loop->opcode()); |
+ break; |
+ } |
+ case IrOpcode::kLoopExitValue: { |
+ CHECK_EQ(1, control_count); |
+ Node* loop_exit = NodeProperties::GetControlInput(node, 0); |
+ CHECK_EQ(IrOpcode::kLoopExit, loop_exit->opcode()); |
+ break; |
+ } |
+ case IrOpcode::kLoopExitEffect: { |
+ CHECK_EQ(1, control_count); |
+ Node* loop_exit = NodeProperties::GetControlInput(node, 0); |
+ CHECK_EQ(IrOpcode::kLoopExit, loop_exit->opcode()); |
+ break; |
+ } |
case IrOpcode::kCheckpoint: |
// Type is empty. |
CheckNotTyped(node); |