| Index: src/hydrogen-instructions.h
|
| diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h
|
| index 7d33141a4f61c150320d02aaceb2c74218506b66..732cabfeee2b2d6cbb56f8211ccb4a7ebd81f2cf 100644
|
| --- a/src/hydrogen-instructions.h
|
| +++ b/src/hydrogen-instructions.h
|
| @@ -782,11 +782,15 @@ class HValue : public ZoneObject {
|
| // phase (so that live ranges will be shorter).
|
| virtual bool IsPurelyInformativeDefinition() { return false; }
|
|
|
| - // This method must always return the original HValue SSA definition
|
| - // (regardless of any iDef of this value).
|
| + // This method must always return the original HValue SSA definition,
|
| + // regardless of any chain of iDefs of this value.
|
| HValue* ActualValue() {
|
| - int index = RedefinedOperandIndex();
|
| - return index == kNoRedefinedOperand ? this : OperandAt(index);
|
| + HValue* value = this;
|
| + int index;
|
| + while ((index = value->RedefinedOperandIndex()) != kNoRedefinedOperand) {
|
| + value = value->OperandAt(index);
|
| + }
|
| + return value;
|
| }
|
|
|
| bool IsInteger32Constant();
|
|
|