| Index: src/hydrogen-instructions.h
|
| diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h
|
| index a6da1c3a75e9b3ceb3abc8264608687180e8f9da..c0ca21cbabf65fb7b961585dc862a1fb6712ae7e 100644
|
| --- a/src/hydrogen-instructions.h
|
| +++ b/src/hydrogen-instructions.h
|
| @@ -875,9 +875,11 @@ class HValue : public ZoneObject {
|
| // This function must be overridden for instructions which have the
|
| // kTrackSideEffectDominators flag set, to track instructions that are
|
| // dominating side effects.
|
| - virtual void HandleSideEffectDominator(GVNFlag side_effect,
|
| + // It returns true if it removed an instruction which had side effects.
|
| + virtual bool HandleSideEffectDominator(GVNFlag side_effect,
|
| HValue* dominator) {
|
| UNREACHABLE();
|
| + return false;
|
| }
|
|
|
| // Check if this instruction has some reason that prevents elimination.
|
| @@ -2664,7 +2666,7 @@ class HCheckMaps V8_FINAL : public HTemplateInstruction<2> {
|
| virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
|
| return Representation::Tagged();
|
| }
|
| - virtual void HandleSideEffectDominator(GVNFlag side_effect,
|
| + virtual bool HandleSideEffectDominator(GVNFlag side_effect,
|
| HValue* dominator) V8_OVERRIDE;
|
| virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
|
|
| @@ -5332,7 +5334,7 @@ class HAllocate V8_FINAL : public HTemplateInstruction<2> {
|
| flags_ = static_cast<HAllocate::Flags>(flags_ | ALLOCATE_DOUBLE_ALIGNED);
|
| }
|
|
|
| - virtual void HandleSideEffectDominator(GVNFlag side_effect,
|
| + virtual bool HandleSideEffectDominator(GVNFlag side_effect,
|
| HValue* dominator) V8_OVERRIDE;
|
|
|
| virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
| @@ -6444,10 +6446,11 @@ class HStoreNamedField V8_FINAL : public HTemplateInstruction<3> {
|
| }
|
| return Representation::Tagged();
|
| }
|
| - virtual void HandleSideEffectDominator(GVNFlag side_effect,
|
| + virtual bool HandleSideEffectDominator(GVNFlag side_effect,
|
| HValue* dominator) V8_OVERRIDE {
|
| ASSERT(side_effect == kChangesNewSpacePromotion);
|
| new_space_dominator_ = dominator;
|
| + return false;
|
| }
|
| virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
|
|
| @@ -6674,10 +6677,11 @@ class HStoreKeyed V8_FINAL
|
| return value()->IsConstant() && HConstant::cast(value())->IsTheHole();
|
| }
|
|
|
| - virtual void HandleSideEffectDominator(GVNFlag side_effect,
|
| + virtual bool HandleSideEffectDominator(GVNFlag side_effect,
|
| HValue* dominator) V8_OVERRIDE {
|
| ASSERT(side_effect == kChangesNewSpacePromotion);
|
| new_space_dominator_ = dominator;
|
| + return false;
|
| }
|
|
|
| HValue* new_space_dominator() const { return new_space_dominator_; }
|
|
|