Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index 9073ac36ca9983aa3e51550cb137b882370a511d..035925006aa68ddb2323402065ee291a3461da86 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -476,22 +476,28 @@ class HUseIterator V8_FINAL BASE_EMBEDDED { |
}; |
-// There must be one corresponding kDepends flag for every kChanges flag and |
-// the order of the kChanges flags must be exactly the same as of the kDepends |
-// flags. All tracked flags should appear before untracked ones. |
+// All tracked flags should appear before untracked ones. |
enum GVNFlag { |
// Declare global value numbering flags. |
-#define DECLARE_FLAG(type) kChanges##type, kDependsOn##type, |
+#define DECLARE_FLAG(Type) k##Type, |
GVN_TRACKED_FLAG_LIST(DECLARE_FLAG) |
GVN_UNTRACKED_FLAG_LIST(DECLARE_FLAG) |
#undef DECLARE_FLAG |
- kNumberOfFlags, |
-#define COUNT_FLAG(type) + 1 |
- kNumberOfTrackedSideEffects = 0 GVN_TRACKED_FLAG_LIST(COUNT_FLAG) |
+#define COUNT_FLAG(Type) + 1 |
+ kNumberOfTrackedSideEffects = 0 GVN_TRACKED_FLAG_LIST(COUNT_FLAG), |
+ kNumberOfUntrackedSideEffects = 0 GVN_UNTRACKED_FLAG_LIST(COUNT_FLAG), |
#undef COUNT_FLAG |
+ kNumberOfFlags = kNumberOfTrackedSideEffects + kNumberOfUntrackedSideEffects |
}; |
+static inline GVNFlag GVNFlagFromInt(int i) { |
+ ASSERT(i >= 0); |
+ ASSERT(i < kNumberOfFlags); |
+ return static_cast<GVNFlag>(i); |
+} |
+ |
+ |
class DecompositionResult V8_FINAL BASE_EMBEDDED { |
public: |
DecompositionResult() : base_(NULL), offset_(0), scale_(0) {} |
@@ -537,7 +543,7 @@ class DecompositionResult V8_FINAL BASE_EMBEDDED { |
}; |
-typedef EnumSet<GVNFlag, int64_t> GVNFlagSet; |
+typedef EnumSet<GVNFlag, int32_t> GVNFlagSet; |
class HValue : public ZoneObject { |
@@ -588,18 +594,6 @@ class HValue : public ZoneObject { |
STATIC_ASSERT(kLastFlag < kBitsPerInt); |
- static const int kChangesToDependsFlagsLeftShift = 1; |
- |
- static GVNFlag ChangesFlagFromInt(int x) { |
- return static_cast<GVNFlag>(x * 2); |
- } |
- static GVNFlag DependsOnFlagFromInt(int x) { |
- return static_cast<GVNFlag>(x * 2 + 1); |
- } |
- static GVNFlagSet ConvertChangesToDependsFlags(GVNFlagSet flags) { |
- return GVNFlagSet(flags.ToIntegral() << kChangesToDependsFlagsLeftShift); |
- } |
- |
static HValue* cast(HValue* value) { return value; } |
enum Opcode { |
@@ -775,43 +769,38 @@ class HValue : public ZoneObject { |
// of uses is non-empty. |
bool HasAtLeastOneUseWithFlagAndNoneWithout(Flag f) const; |
- GVNFlagSet gvn_flags() const { return gvn_flags_; } |
- void SetGVNFlag(GVNFlag f) { gvn_flags_.Add(f); } |
- void ClearGVNFlag(GVNFlag f) { gvn_flags_.Remove(f); } |
- bool CheckGVNFlag(GVNFlag f) const { return gvn_flags_.Contains(f); } |
- void SetAllSideEffects() { gvn_flags_.Add(AllSideEffectsFlagSet()); } |
+ GVNFlagSet ChangesFlags() const { return changes_flags_; } |
+ GVNFlagSet DependsOnFlags() const { return depends_on_flags_; } |
+ void SetChangesFlag(GVNFlag f) { changes_flags_.Add(f); } |
+ void SetDependsOnFlag(GVNFlag f) { depends_on_flags_.Add(f); } |
+ void ClearChangesFlag(GVNFlag f) { changes_flags_.Remove(f); } |
+ void ClearDependsOnFlag(GVNFlag f) { depends_on_flags_.Remove(f); } |
+ bool CheckChangesFlag(GVNFlag f) const { |
+ return changes_flags_.Contains(f); |
+ } |
+ bool CheckDependsOnFlag(GVNFlag f) const { |
+ return depends_on_flags_.Contains(f); |
+ } |
+ void SetAllSideEffects() { changes_flags_.Add(AllSideEffectsFlagSet()); } |
void ClearAllSideEffects() { |
- gvn_flags_.Remove(AllSideEffectsFlagSet()); |
+ changes_flags_.Remove(AllSideEffectsFlagSet()); |
} |
bool HasSideEffects() const { |
- return gvn_flags_.ContainsAnyOf(AllSideEffectsFlagSet()); |
+ return changes_flags_.ContainsAnyOf(AllSideEffectsFlagSet()); |
} |
bool HasObservableSideEffects() const { |
return !CheckFlag(kHasNoObservableSideEffects) && |
- gvn_flags_.ContainsAnyOf(AllObservableSideEffectsFlagSet()); |
- } |
- |
- GVNFlagSet DependsOnFlags() const { |
- GVNFlagSet result = gvn_flags_; |
- result.Intersect(AllDependsOnFlagSet()); |
- return result; |
+ changes_flags_.ContainsAnyOf(AllObservableSideEffectsFlagSet()); |
} |
GVNFlagSet SideEffectFlags() const { |
- GVNFlagSet result = gvn_flags_; |
+ GVNFlagSet result = ChangesFlags(); |
result.Intersect(AllSideEffectsFlagSet()); |
return result; |
} |
- GVNFlagSet ChangesFlags() const { |
- GVNFlagSet result = gvn_flags_; |
- result.Intersect(AllChangesFlagSet()); |
- return result; |
- } |
- |
GVNFlagSet ObservableChangesFlags() const { |
- GVNFlagSet result = gvn_flags_; |
- result.Intersect(AllChangesFlagSet()); |
+ GVNFlagSet result = ChangesFlags(); |
result.Intersect(AllObservableSideEffectsFlagSet()); |
return result; |
} |
@@ -952,20 +941,9 @@ class HValue : public ZoneObject { |
representation_ = r; |
} |
- static GVNFlagSet AllDependsOnFlagSet() { |
- GVNFlagSet result; |
- // Create changes mask. |
-#define ADD_FLAG(type) result.Add(kDependsOn##type); |
- GVN_TRACKED_FLAG_LIST(ADD_FLAG) |
- GVN_UNTRACKED_FLAG_LIST(ADD_FLAG) |
-#undef ADD_FLAG |
- return result; |
- } |
- |
- static GVNFlagSet AllChangesFlagSet() { |
+ static GVNFlagSet AllFlagSet() { |
GVNFlagSet result; |
- // Create changes mask. |
-#define ADD_FLAG(type) result.Add(kChanges##type); |
+#define ADD_FLAG(Type) result.Add(k##Type); |
GVN_TRACKED_FLAG_LIST(ADD_FLAG) |
GVN_UNTRACKED_FLAG_LIST(ADD_FLAG) |
#undef ADD_FLAG |
@@ -974,19 +952,19 @@ class HValue : public ZoneObject { |
// A flag mask to mark an instruction as having arbitrary side effects. |
static GVNFlagSet AllSideEffectsFlagSet() { |
- GVNFlagSet result = AllChangesFlagSet(); |
- result.Remove(kChangesOsrEntries); |
+ GVNFlagSet result = AllFlagSet(); |
+ result.Remove(kOsrEntries); |
return result; |
} |
// A flag mask of all side effects that can make observable changes in |
// an executing program (i.e. are not safe to repeat, move or remove); |
static GVNFlagSet AllObservableSideEffectsFlagSet() { |
- GVNFlagSet result = AllChangesFlagSet(); |
- result.Remove(kChangesNewSpacePromotion); |
- result.Remove(kChangesElementsKind); |
- result.Remove(kChangesElementsPointer); |
- result.Remove(kChangesMaps); |
+ GVNFlagSet result = AllFlagSet(); |
+ result.Remove(kNewSpacePromotion); |
+ result.Remove(kElementsKind); |
+ result.Remove(kElementsPointer); |
+ result.Remove(kMaps); |
return result; |
} |
@@ -1007,7 +985,8 @@ class HValue : public ZoneObject { |
HUseListNode* use_list_; |
Range* range_; |
int flags_; |
- GVNFlagSet gvn_flags_; |
+ GVNFlagSet changes_flags_; |
+ GVNFlagSet depends_on_flags_; |
private: |
virtual bool IsDeletable() const { return false; } |
@@ -1261,7 +1240,7 @@ class HInstruction : public HValue { |
next_(NULL), |
previous_(NULL), |
position_(RelocInfo::kNoPosition) { |
- SetGVNFlag(kDependsOnOsrEntries); |
+ SetDependsOnFlag(kOsrEntries); |
} |
virtual void DeleteFromGraph() V8_OVERRIDE { Unlink(); } |
@@ -1721,7 +1700,7 @@ class HChange V8_FINAL : public HUnaryOperation { |
set_type(HType::Smi()); |
} else { |
set_type(HType::TaggedNumber()); |
- if (to.IsTagged()) SetGVNFlag(kChangesNewSpacePromotion); |
+ if (to.IsTagged()) SetChangesFlag(kNewSpacePromotion); |
} |
} |
@@ -1967,7 +1946,7 @@ class HStackCheck V8_FINAL : public HTemplateInstruction<1> { |
private: |
HStackCheck(HValue* context, Type type) : type_(type) { |
SetOperandAt(0, context); |
- SetGVNFlag(kChangesNewSpacePromotion); |
+ SetChangesFlag(kNewSpacePromotion); |
} |
Type type_; |
@@ -2515,7 +2494,7 @@ class HMapEnumLength V8_FINAL : public HUnaryOperation { |
: HUnaryOperation(value, HType::Smi()) { |
set_representation(Representation::Smi()); |
SetFlag(kUseGVN); |
- SetGVNFlag(kDependsOnMaps); |
+ SetDependsOnFlag(kMaps); |
} |
virtual bool IsDeletable() const V8_OVERRIDE { return true; } |
@@ -2589,7 +2568,7 @@ class HUnaryMathOperation V8_FINAL : public HTemplateInstruction<2> { |
SetFlag(kFlexibleRepresentation); |
// TODO(svenpanne) This flag is actually only needed if representation() |
// is tagged, and not when it is an unboxed double or unboxed integer. |
- SetGVNFlag(kChangesNewSpacePromotion); |
+ SetChangesFlag(kNewSpacePromotion); |
break; |
case kMathLog: |
case kMathExp: |
@@ -2638,7 +2617,7 @@ class HLoadRoot V8_FINAL : public HTemplateInstruction<0> { |
SetFlag(kUseGVN); |
// TODO(bmeurer): We'll need kDependsOnRoots once we add the |
// corresponding HStoreRoot instruction. |
- SetGVNFlag(kDependsOnCalls); |
+ SetDependsOnFlag(kCalls); |
} |
virtual bool IsDeletable() const V8_OVERRIDE { return true; } |
@@ -2703,7 +2682,7 @@ class HCheckMaps V8_FINAL : public HTemplateInstruction<2> { |
map_set_.Add(Unique<Map>(map), zone); |
if (!has_migration_target_ && map->is_migration_target()) { |
has_migration_target_ = true; |
- SetGVNFlag(kChangesNewSpacePromotion); |
+ SetChangesFlag(kNewSpacePromotion); |
} |
} |
@@ -2717,8 +2696,8 @@ class HCheckMaps V8_FINAL : public HTemplateInstruction<2> { |
set_representation(Representation::Tagged()); |
SetFlag(kUseGVN); |
SetFlag(kTrackSideEffectDominators); |
- SetGVNFlag(kDependsOnMaps); |
- SetGVNFlag(kDependsOnElementsKind); |
+ SetDependsOnFlag(kMaps); |
+ SetDependsOnFlag(kElementsKind); |
} |
bool omit_; |
@@ -3322,7 +3301,7 @@ class HCapturedObject V8_FINAL : public HDematerializedObject { |
void ReuseSideEffectsFromStore(HInstruction* store) { |
ASSERT(store->HasObservableSideEffects()); |
ASSERT(store->IsStoreNamedField()); |
- gvn_flags_.Add(store->gvn_flags()); |
+ changes_flags_.Add(store->ChangesFlags()); |
} |
// Replay effects of this instruction on the given environment. |
@@ -3955,7 +3934,7 @@ class HBitwiseBinaryOperation : public HBinaryOperation { |
} |
virtual void RepresentationChanged(Representation to) V8_OVERRIDE { |
- if (to.IsTagged()) SetGVNFlag(kChangesNewSpacePromotion); |
+ if (to.IsTagged()) SetChangesFlag(kNewSpacePromotion); |
if (to.IsTagged() && |
(left()->ToNumberCanBeObserved() || right()->ToNumberCanBeObserved())) { |
SetAllSideEffects(); |
@@ -4032,7 +4011,7 @@ class HArithmeticBinaryOperation : public HBinaryOperation { |
} |
virtual void RepresentationChanged(Representation to) V8_OVERRIDE { |
- if (to.IsTagged()) SetGVNFlag(kChangesNewSpacePromotion); |
+ if (to.IsTagged()) SetChangesFlag(kNewSpacePromotion); |
if (to.IsTagged() && |
(left()->ToNumberCanBeObserved() || right()->ToNumberCanBeObserved())) { |
SetAllSideEffects(); |
@@ -4357,7 +4336,7 @@ class HStringCompareAndBranch : public HTemplateControlInstruction<2, 3> { |
SetOperandAt(1, left); |
SetOperandAt(2, right); |
set_representation(Representation::Tagged()); |
- SetGVNFlag(kChangesNewSpacePromotion); |
+ SetChangesFlag(kNewSpacePromotion); |
} |
Token::Value token_; |
@@ -4582,7 +4561,7 @@ class HPower V8_FINAL : public HTemplateInstruction<2> { |
SetOperandAt(1, right); |
set_representation(Representation::Double()); |
SetFlag(kUseGVN); |
- SetGVNFlag(kChangesNewSpacePromotion); |
+ SetChangesFlag(kNewSpacePromotion); |
} |
virtual bool IsDeletable() const V8_OVERRIDE { |
@@ -4624,7 +4603,7 @@ class HAdd V8_FINAL : public HArithmeticBinaryOperation { |
virtual void RepresentationChanged(Representation to) V8_OVERRIDE { |
if (to.IsTagged()) { |
- SetGVNFlag(kChangesNewSpacePromotion); |
+ SetChangesFlag(kNewSpacePromotion); |
ClearFlag(kAllowUndefinedAsNaN); |
} |
if (to.IsTagged() && |
@@ -5081,8 +5060,8 @@ class HOsrEntry V8_FINAL : public HTemplateInstruction<0> { |
private: |
explicit HOsrEntry(BailoutId ast_id) : ast_id_(ast_id) { |
- SetGVNFlag(kChangesOsrEntries); |
- SetGVNFlag(kChangesNewSpacePromotion); |
+ SetChangesFlag(kOsrEntries); |
+ SetChangesFlag(kNewSpacePromotion); |
} |
BailoutId ast_id_; |
@@ -5224,7 +5203,7 @@ class HLoadGlobalCell V8_FINAL : public HTemplateInstruction<0> { |
: cell_(Unique<Cell>::CreateUninitialized(cell)), details_(details) { |
set_representation(Representation::Tagged()); |
SetFlag(kUseGVN); |
- SetGVNFlag(kDependsOnGlobalVars); |
+ SetDependsOnFlag(kGlobalVars); |
} |
virtual bool IsDeletable() const V8_OVERRIDE { return !RequiresHoleCheck(); } |
@@ -5376,8 +5355,8 @@ class HAllocate V8_FINAL : public HTemplateInstruction<2> { |
SetOperandAt(1, size); |
set_representation(Representation::Tagged()); |
SetFlag(kTrackSideEffectDominators); |
- SetGVNFlag(kChangesNewSpacePromotion); |
- SetGVNFlag(kDependsOnNewSpacePromotion); |
+ SetChangesFlag(kNewSpacePromotion); |
+ SetDependsOnFlag(kNewSpacePromotion); |
if (FLAG_trace_pretenuring) { |
PrintF("HAllocate with AllocationSite %p %s\n", |
@@ -5575,7 +5554,7 @@ class HStoreGlobalCell V8_FINAL : public HUnaryOperation { |
: HUnaryOperation(value), |
cell_(Unique<PropertyCell>::CreateUninitialized(cell)), |
details_(details) { |
- SetGVNFlag(kChangesGlobalVars); |
+ SetChangesFlag(kGlobalVars); |
} |
Unique<PropertyCell> cell_; |
@@ -5614,7 +5593,7 @@ class HLoadContextSlot V8_FINAL : public HUnaryOperation { |
} |
set_representation(Representation::Tagged()); |
SetFlag(kUseGVN); |
- SetGVNFlag(kDependsOnContextSlots); |
+ SetDependsOnFlag(kContextSlots); |
} |
int slot_index() const { return slot_index_; } |
@@ -5698,7 +5677,7 @@ class HStoreContextSlot V8_FINAL : public HTemplateInstruction<2> { |
: slot_index_(slot_index), mode_(mode) { |
SetOperandAt(0, context); |
SetOperandAt(1, value); |
- SetGVNFlag(kChangesContextSlots); |
+ SetChangesFlag(kContextSlots); |
} |
int slot_index_; |
@@ -5976,7 +5955,7 @@ class HObjectAccess V8_FINAL { |
return HObjectAccess(kInobject, GlobalObject::kNativeContextOffset); |
} |
- void PrintTo(StringStream* stream); |
+ void PrintTo(StringStream* stream) const; |
inline bool Equals(HObjectAccess that) const { |
return value_ == that.value_; // portion and offset must match |
@@ -5998,6 +5977,8 @@ class HObjectAccess V8_FINAL { |
kExternalMemory // some field in external memory |
}; |
+ HObjectAccess() : value_(0) {} |
+ |
HObjectAccess(Portion portion, int offset, |
Representation representation = Representation::Tagged(), |
Handle<String> name = Handle<String>::null(), |
@@ -6030,6 +6011,7 @@ class HObjectAccess V8_FINAL { |
friend class HLoadNamedField; |
friend class HStoreNamedField; |
+ friend class SideEffectsTracker; |
inline Portion portion() const { |
return PortionField::decode(value_); |
@@ -6166,7 +6148,7 @@ class HLoadFunctionPrototype V8_FINAL : public HUnaryOperation { |
: HUnaryOperation(function) { |
set_representation(Representation::Tagged()); |
SetFlag(kUseGVN); |
- SetGVNFlag(kDependsOnCalls); |
+ SetDependsOnFlag(kCalls); |
} |
}; |
@@ -6311,10 +6293,10 @@ class HLoadKeyed V8_FINAL |
set_representation(Representation::Tagged()); |
} |
- SetGVNFlag(kDependsOnArrayElements); |
+ SetDependsOnFlag(kArrayElements); |
} else { |
set_representation(Representation::Double()); |
- SetGVNFlag(kDependsOnDoubleArrayElements); |
+ SetDependsOnFlag(kDoubleArrayElements); |
} |
} else { |
if (elements_kind == EXTERNAL_FLOAT32_ELEMENTS || |
@@ -6327,14 +6309,14 @@ class HLoadKeyed V8_FINAL |
} |
if (is_external()) { |
- SetGVNFlag(kDependsOnExternalMemory); |
+ SetDependsOnFlag(kExternalMemory); |
} else if (is_fixed_typed_array()) { |
- SetGVNFlag(kDependsOnTypedArrayElements); |
+ SetDependsOnFlag(kTypedArrayElements); |
} else { |
UNREACHABLE(); |
} |
// Native code could change the specialized array. |
- SetGVNFlag(kDependsOnCalls); |
+ SetDependsOnFlag(kCalls); |
} |
SetFlag(kUseGVN); |
@@ -6458,7 +6440,7 @@ class HStoreNamedField V8_FINAL : public HTemplateInstruction<3> { |
} |
virtual bool HandleSideEffectDominator(GVNFlag side_effect, |
HValue* dominator) V8_OVERRIDE { |
- ASSERT(side_effect == kChangesNewSpacePromotion); |
+ ASSERT(side_effect == kNewSpacePromotion); |
new_space_dominator_ = dominator; |
return false; |
} |
@@ -6690,7 +6672,7 @@ class HStoreKeyed V8_FINAL |
virtual bool HandleSideEffectDominator(GVNFlag side_effect, |
HValue* dominator) V8_OVERRIDE { |
- ASSERT(side_effect == kChangesNewSpacePromotion); |
+ ASSERT(side_effect == kNewSpacePromotion); |
new_space_dominator_ = dominator; |
return false; |
} |
@@ -6733,20 +6715,20 @@ class HStoreKeyed V8_FINAL |
if (IsFastObjectElementsKind(elements_kind)) { |
SetFlag(kTrackSideEffectDominators); |
- SetGVNFlag(kDependsOnNewSpacePromotion); |
+ SetDependsOnFlag(kNewSpacePromotion); |
} |
if (is_external()) { |
- SetGVNFlag(kChangesExternalMemory); |
+ SetChangesFlag(kExternalMemory); |
SetFlag(kAllowUndefinedAsNaN); |
} else if (IsFastDoubleElementsKind(elements_kind)) { |
- SetGVNFlag(kChangesDoubleArrayElements); |
+ SetChangesFlag(kDoubleArrayElements); |
} else if (IsFastSmiElementsKind(elements_kind)) { |
- SetGVNFlag(kChangesArrayElements); |
+ SetChangesFlag(kArrayElements); |
} else if (is_fixed_typed_array()) { |
- SetGVNFlag(kChangesTypedArrayElements); |
+ SetChangesFlag(kTypedArrayElements); |
SetFlag(kAllowUndefinedAsNaN); |
} else { |
- SetGVNFlag(kChangesArrayElements); |
+ SetChangesFlag(kArrayElements); |
} |
// EXTERNAL_{UNSIGNED_,}{BYTE,SHORT,INT}_ELEMENTS are truncating. |
@@ -6850,10 +6832,10 @@ class HTransitionElementsKind V8_FINAL : public HTemplateInstruction<2> { |
SetOperandAt(0, object); |
SetOperandAt(1, context); |
SetFlag(kUseGVN); |
- SetGVNFlag(kChangesElementsKind); |
+ SetChangesFlag(kElementsKind); |
if (!IsSimpleMapChangeTransition(from_kind_, to_kind_)) { |
- SetGVNFlag(kChangesElementsPointer); |
- SetGVNFlag(kChangesNewSpacePromotion); |
+ SetChangesFlag(kElementsPointer); |
+ SetChangesFlag(kNewSpacePromotion); |
} |
set_representation(Representation::Tagged()); |
} |
@@ -6904,8 +6886,8 @@ class HStringAdd V8_FINAL : public HBinaryOperation { |
flags_(flags), pretenure_flag_(pretenure_flag) { |
set_representation(Representation::Tagged()); |
SetFlag(kUseGVN); |
- SetGVNFlag(kDependsOnMaps); |
- SetGVNFlag(kChangesNewSpacePromotion); |
+ SetDependsOnFlag(kMaps); |
+ SetChangesFlag(kNewSpacePromotion); |
if (FLAG_trace_pretenuring) { |
PrintF("HStringAdd with AllocationSite %p %s\n", |
allocation_site.is_null() |
@@ -6956,9 +6938,9 @@ class HStringCharCodeAt V8_FINAL : public HTemplateInstruction<3> { |
SetOperandAt(2, index); |
set_representation(Representation::Integer32()); |
SetFlag(kUseGVN); |
- SetGVNFlag(kDependsOnMaps); |
- SetGVNFlag(kDependsOnStringChars); |
- SetGVNFlag(kChangesNewSpacePromotion); |
+ SetDependsOnFlag(kMaps); |
+ SetDependsOnFlag(kStringChars); |
+ SetChangesFlag(kNewSpacePromotion); |
} |
// No side effects: runtime function assumes string + number inputs. |
@@ -6992,7 +6974,7 @@ class HStringCharFromCode V8_FINAL : public HTemplateInstruction<2> { |
SetOperandAt(1, char_code); |
set_representation(Representation::Tagged()); |
SetFlag(kUseGVN); |
- SetGVNFlag(kChangesNewSpacePromotion); |
+ SetChangesFlag(kNewSpacePromotion); |
} |
virtual bool IsDeletable() const V8_OVERRIDE { |
@@ -7101,7 +7083,7 @@ class HFunctionLiteral V8_FINAL : public HTemplateInstruction<1> { |
language_mode_(shared->language_mode()) { |
SetOperandAt(0, context); |
set_representation(Representation::Tagged()); |
- SetGVNFlag(kChangesNewSpacePromotion); |
+ SetChangesFlag(kNewSpacePromotion); |
} |
virtual bool IsDeletable() const V8_OVERRIDE { return true; } |
@@ -7172,7 +7154,7 @@ class HToFastProperties V8_FINAL : public HUnaryOperation { |
private: |
explicit HToFastProperties(HValue* value) : HUnaryOperation(value) { |
set_representation(Representation::Tagged()); |
- SetGVNFlag(kChangesNewSpacePromotion); |
+ SetChangesFlag(kNewSpacePromotion); |
// This instruction is not marked as kChangesMaps, but does |
// change the map of the input operand. Use it only when creating |
@@ -7251,7 +7233,7 @@ class HSeqStringGetChar V8_FINAL : public HTemplateInstruction<2> { |
SetOperandAt(1, index); |
set_representation(Representation::Integer32()); |
SetFlag(kUseGVN); |
- SetGVNFlag(kDependsOnStringChars); |
+ SetDependsOnFlag(kStringChars); |
} |
virtual bool IsDeletable() const V8_OVERRIDE { return true; } |
@@ -7290,7 +7272,7 @@ class HSeqStringSetChar V8_FINAL : public HTemplateInstruction<4> { |
SetOperandAt(2, index); |
SetOperandAt(3, value); |
set_representation(Representation::Tagged()); |
- SetGVNFlag(kChangesStringChars); |
+ SetChangesFlag(kStringChars); |
} |
String::Encoding encoding_; |
@@ -7330,8 +7312,8 @@ class HCheckMapValue V8_FINAL : public HTemplateInstruction<2> { |
SetOperandAt(1, map); |
set_representation(Representation::Tagged()); |
SetFlag(kUseGVN); |
- SetGVNFlag(kDependsOnMaps); |
- SetGVNFlag(kDependsOnElementsKind); |
+ SetDependsOnFlag(kMaps); |
+ SetDependsOnFlag(kElementsKind); |
} |
}; |