Index: src/compiler/operator-properties-inl.h |
diff --git a/src/compiler/operator-properties-inl.h b/src/compiler/operator-properties-inl.h |
index 42833fdeb417027543f0ed87ff293663d2b2c259..7830c1a1077099b290acaa1e8b2032b15e22193f 100644 |
--- a/src/compiler/operator-properties-inl.h |
+++ b/src/compiler/operator-properties-inl.h |
@@ -42,7 +42,8 @@ inline int OperatorProperties::GetContextInputCount(Operator* op) { |
} |
inline int OperatorProperties::GetEffectInputCount(Operator* op) { |
- if (op->opcode() == IrOpcode::kEffectPhi) { |
+ if (op->opcode() == IrOpcode::kEffectPhi || |
+ op->opcode() == IrOpcode::kFinish) { |
return static_cast<Operator1<int>*>(op)->parameter(); |
} |
if (op->HasProperty(Operator::kNoRead) && op->HasProperty(Operator::kNoWrite)) |
@@ -54,6 +55,7 @@ inline int OperatorProperties::GetControlInputCount(Operator* op) { |
switch (op->opcode()) { |
case IrOpcode::kPhi: |
case IrOpcode::kEffectPhi: |
+ case IrOpcode::kControlEffect: |
return 1; |
#define OPCODE_CASE(x) case IrOpcode::k##x: |
CONTROL_OP_LIST(OPCODE_CASE) |
@@ -87,7 +89,9 @@ inline bool OperatorProperties::HasValueOutput(Operator* op) { |
} |
inline bool OperatorProperties::HasEffectOutput(Operator* op) { |
- return op->opcode() == IrOpcode::kStart || GetEffectInputCount(op) > 0; |
+ return op->opcode() == IrOpcode::kStart || |
+ op->opcode() == IrOpcode::kControlEffect || |
+ (op->opcode() != IrOpcode::kFinish && GetEffectInputCount(op) > 0); |
} |
inline bool OperatorProperties::HasControlOutput(Operator* op) { |