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_; } |