Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index 6a74ec8b35ac649302914da2d9b6a4c5ec8af4e4..7acec8bcd5ebc3e2e0757d312ee591f5e5174e72 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -828,6 +828,7 @@ class HValue: public ZoneObject { |
// This flag is set to true after the SetupInformativeDefinitions() pass |
// has processed this instruction. |
kIDefsProcessingDone, |
+ kHasNoObservableSideEffects, |
kLastFlag = kIDefsProcessingDone |
}; |
@@ -1005,7 +1006,8 @@ class HValue: public ZoneObject { |
return gvn_flags_.ContainsAnyOf(AllSideEffectsFlagSet()); |
} |
bool HasObservableSideEffects() const { |
- return gvn_flags_.ContainsAnyOf(AllObservableSideEffectsFlagSet()); |
+ return !CheckFlag(kHasNoObservableSideEffects) && |
+ gvn_flags_.ContainsAnyOf(AllObservableSideEffectsFlagSet()); |
} |
GVNFlagSet DependsOnFlags() const { |