| Index: src/compiler/verifier.cc
|
| diff --git a/src/compiler/verifier.cc b/src/compiler/verifier.cc
|
| index ff3b2efa45d746309573c755b20918618ba87d4f..cff4b682c5966a8c8120f8c13b5fc906493e8af0 100644
|
| --- a/src/compiler/verifier.cc
|
| +++ b/src/compiler/verifier.cc
|
| @@ -135,6 +135,11 @@ void Verifier::Visitor::Check(Node* node) {
|
| CheckOutput(value, node, value->op()->ValueOutputCount(), "value");
|
| CHECK(IsDefUseChainLinkPresent(value, node));
|
| CHECK(IsUseDefChainLinkPresent(value, node));
|
| + // Verify that only parameters and projections can have input nodes with
|
| + // multiple outputs.
|
| + CHECK(node->opcode() == IrOpcode::kParameter ||
|
| + node->opcode() == IrOpcode::kProjection ||
|
| + value->op()->ValueOutputCount() <= 1);
|
| }
|
|
|
| // Verify all context inputs are value nodes.
|
| @@ -161,16 +166,6 @@ void Verifier::Visitor::Check(Node* node) {
|
| CHECK(IsUseDefChainLinkPresent(control, node));
|
| }
|
|
|
| - // Verify all successors are projections if multiple value outputs exist.
|
| - if (node->op()->ValueOutputCount() > 1) {
|
| - for (Edge edge : node->use_edges()) {
|
| - Node* use = edge.from();
|
| - CHECK(!NodeProperties::IsValueEdge(edge) ||
|
| - use->opcode() == IrOpcode::kProjection ||
|
| - use->opcode() == IrOpcode::kParameter);
|
| - }
|
| - }
|
| -
|
| switch (node->opcode()) {
|
| case IrOpcode::kStart:
|
| // Start has no inputs.
|
|
|