| Index: src/compiler/operator-properties-inl.h
|
| diff --git a/src/compiler/operator-properties-inl.h b/src/compiler/operator-properties-inl.h
|
| index 2ddaeca145c8163f3232cdbcd8c4408807b2ed55..7c2ae1635ffeffb8d422ded1fa05a2fffb494a29 100644
|
| --- a/src/compiler/operator-properties-inl.h
|
| +++ b/src/compiler/operator-properties-inl.h
|
| @@ -81,6 +81,9 @@ inline bool OperatorProperties::HasFrameStateInput(const Operator* op) {
|
| case IrOpcode::kJSStoreProperty:
|
| case IrOpcode::kJSSubtract:
|
|
|
| + // Conversions
|
| + case IrOpcode::kJSToObject:
|
| +
|
| // Other
|
| case IrOpcode::kJSDeleteProperty:
|
| return true;
|
| @@ -104,7 +107,8 @@ inline int OperatorProperties::GetFrameStateInputCount(const Operator* op) {
|
|
|
| inline int OperatorProperties::GetEffectInputCount(const Operator* op) {
|
| if (op->opcode() == IrOpcode::kEffectPhi ||
|
| - op->opcode() == IrOpcode::kFinish) {
|
| + op->opcode() == IrOpcode::kFinish ||
|
| + op->opcode() == IrOpcode::kTerminate) {
|
| return OpParameter<int>(op);
|
| }
|
| if (op->HasProperty(Operator::kNoRead) && op->HasProperty(Operator::kNoWrite))
|
| @@ -113,6 +117,7 @@ inline int OperatorProperties::GetEffectInputCount(const Operator* op) {
|
| }
|
|
|
| inline int OperatorProperties::GetControlInputCount(const Operator* op) {
|
| + // TODO(titzer): fix this mess; just make them a count on the operator.
|
| switch (op->opcode()) {
|
| case IrOpcode::kPhi:
|
| case IrOpcode::kEffectPhi:
|
| @@ -123,6 +128,8 @@ inline int OperatorProperties::GetControlInputCount(const Operator* op) {
|
| #define OPCODE_CASE(x) case IrOpcode::k##x:
|
| CONTROL_OP_LIST(OPCODE_CASE)
|
| #undef OPCODE_CASE
|
| + if (op->opcode() == IrOpcode::kBranch) return 1;
|
| + if (op->opcode() == IrOpcode::kTerminate) return 1;
|
| // Control operators are Operator1<int>.
|
| return OpParameter<int>(op);
|
| default:
|
| @@ -152,7 +159,8 @@ inline bool OperatorProperties::HasValueOutput(const Operator* op) {
|
| inline bool OperatorProperties::HasEffectOutput(const Operator* op) {
|
| return op->opcode() == IrOpcode::kStart ||
|
| op->opcode() == IrOpcode::kValueEffect ||
|
| - (op->opcode() != IrOpcode::kFinish && GetEffectInputCount(op) > 0);
|
| + (op->opcode() != IrOpcode::kFinish &&
|
| + op->opcode() != IrOpcode::kTerminate && GetEffectInputCount(op) > 0);
|
| }
|
|
|
| inline bool OperatorProperties::HasControlOutput(const Operator* op) {
|
|
|