| Index: src/compiler/verifier.cc
|
| diff --git a/src/compiler/verifier.cc b/src/compiler/verifier.cc
|
| index 47edd35d553172346ee9967e24cf161a8b69988c..85c6caa539fc7748f5a5d20251e369dc3e04c615 100644
|
| --- a/src/compiler/verifier.cc
|
| +++ b/src/compiler/verifier.cc
|
| @@ -178,6 +178,16 @@ void Verifier::Visitor::Check(Node* node) {
|
| }
|
|
|
| switch (node->opcode()) {
|
| + case IrOpcode::kAlways:
|
| + // Always has no inputs.
|
| + CHECK_EQ(0, input_count);
|
| + // Always uses are Branch.
|
| + for (auto use : node->uses()) {
|
| + CHECK(use->opcode() == IrOpcode::kBranch);
|
| + }
|
| + // Type is boolean.
|
| + CheckUpperIs(node, Type::Boolean());
|
| + break;
|
| case IrOpcode::kStart:
|
| // Start has no inputs.
|
| CHECK_EQ(0, input_count);
|
| @@ -233,12 +243,6 @@ void Verifier::Visitor::Check(Node* node) {
|
| // Type is empty.
|
| CheckNotTyped(node);
|
| break;
|
| - case IrOpcode::kTerminate:
|
| - // Type is empty.
|
| - CheckNotTyped(node);
|
| - CHECK_EQ(1, control_count);
|
| - CHECK_EQ(input_count, 1 + effect_count);
|
| - break;
|
| case IrOpcode::kOsrNormalEntry:
|
| case IrOpcode::kOsrLoopEntry:
|
| // Osr entries have
|
| @@ -348,6 +352,12 @@ void Verifier::Visitor::Check(Node* node) {
|
| CHECK_EQ(input_count, 1 + effect_count);
|
| break;
|
| }
|
| + case IrOpcode::kEffectSet: {
|
| + CHECK_EQ(0, value_count);
|
| + CHECK_EQ(0, control_count);
|
| + CHECK_LT(1, effect_count);
|
| + break;
|
| + }
|
| case IrOpcode::kValueEffect:
|
| // TODO(rossberg): what are the constraints on these?
|
| break;
|
|
|