| Index: src/hydrogen-instructions.h
|
| diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h
|
| index baf64fcc32bb7ac7bbc6ffb44b03340add985fee..f7a3554f7ae8350418f3cbf4c3849d254d0a455f 100644
|
| --- a/src/hydrogen-instructions.h
|
| +++ b/src/hydrogen-instructions.h
|
| @@ -1564,10 +1564,8 @@ class HBranch V8_FINAL : public HUnaryControlInstruction {
|
|
|
| class HCompareMap V8_FINAL : public HUnaryControlInstruction {
|
| public:
|
| - DECLARE_INSTRUCTION_FACTORY_P3(HCompareMap, HValue*, Handle<Map>,
|
| - CompilationInfo*);
|
| - DECLARE_INSTRUCTION_FACTORY_P5(HCompareMap, HValue*, Handle<Map>,
|
| - CompilationInfo*,
|
| + DECLARE_INSTRUCTION_FACTORY_P2(HCompareMap, HValue*, Handle<Map>);
|
| + DECLARE_INSTRUCTION_FACTORY_P4(HCompareMap, HValue*, Handle<Map>,
|
| HBasicBlock*, HBasicBlock*);
|
|
|
| virtual bool KnownSuccessorBlock(HBasicBlock** block) V8_OVERRIDE {
|
| @@ -1593,10 +1591,6 @@ class HCompareMap V8_FINAL : public HUnaryControlInstruction {
|
| return Representation::Tagged();
|
| }
|
|
|
| - bool is_stable() const {
|
| - return is_stable_;
|
| - }
|
| -
|
| DECLARE_CONCRETE_INSTRUCTION(CompareMap)
|
|
|
| protected:
|
| @@ -1605,23 +1599,15 @@ class HCompareMap V8_FINAL : public HUnaryControlInstruction {
|
| private:
|
| HCompareMap(HValue* value,
|
| Handle<Map> map,
|
| - CompilationInfo* info,
|
| HBasicBlock* true_target = NULL,
|
| HBasicBlock* false_target = NULL)
|
| : HUnaryControlInstruction(value, true_target, false_target),
|
| known_successor_index_(kNoKnownSuccessorIndex), map_(Unique<Map>(map)) {
|
| ASSERT(!map.is_null());
|
| - is_stable_ = map->is_stable();
|
| -
|
| - if (is_stable_) {
|
| - map->AddDependentCompilationInfo(
|
| - DependentCode::kPrototypeCheckGroup, info);
|
| - }
|
| set_representation(Representation::Tagged());
|
| }
|
|
|
| int known_successor_index_;
|
| - bool is_stable_;
|
| Unique<Map> map_;
|
| };
|
|
|
| @@ -2707,11 +2693,10 @@ class HCheckMaps V8_FINAL : public HTemplateInstruction<2> {
|
| HValue* typecheck = NULL);
|
| static HCheckMaps* New(Zone* zone, HValue* context,
|
| HValue* value, SmallMapList* maps,
|
| - CompilationInfo* info,
|
| HValue* typecheck = NULL) {
|
| HCheckMaps* check_map = new(zone) HCheckMaps(value, zone, typecheck);
|
| for (int i = 0; i < maps->length(); i++) {
|
| - check_map->Add(maps->at(i), info, zone);
|
| + check_map->Add(maps->at(i), zone);
|
| }
|
| return check_map;
|
| }
|
| @@ -2743,10 +2728,6 @@ class HCheckMaps V8_FINAL : public HTemplateInstruction<2> {
|
| return has_migration_target_;
|
| }
|
|
|
| - bool is_stable() const {
|
| - return is_stable_;
|
| - }
|
| -
|
| DECLARE_CONCRETE_INSTRUCTION(CheckMaps)
|
|
|
| protected:
|
| @@ -2757,16 +2738,10 @@ class HCheckMaps V8_FINAL : public HTemplateInstruction<2> {
|
| virtual int RedefinedOperandIndex() { return 0; }
|
|
|
| private:
|
| - void Add(Handle<Map> map, CompilationInfo* info, Zone* zone) {
|
| + void Add(Handle<Map> map, Zone* zone) {
|
| map_set_.Add(Unique<Map>(map), zone);
|
| - is_stable_ = is_stable_ && map->is_stable();
|
| - if (is_stable_) {
|
| - map->AddDependentCompilationInfo(
|
| - DependentCode::kPrototypeCheckGroup, info);
|
| - } else {
|
| - SetDependsOnFlag(kMaps);
|
| - SetDependsOnFlag(kElementsKind);
|
| - }
|
| + SetDependsOnFlag(kMaps);
|
| + SetDependsOnFlag(kElementsKind);
|
|
|
| if (!has_migration_target_ && map->is_migration_target()) {
|
| has_migration_target_ = true;
|
| @@ -2777,7 +2752,7 @@ class HCheckMaps V8_FINAL : public HTemplateInstruction<2> {
|
| // Clients should use one of the static New* methods above.
|
| HCheckMaps(HValue* value, Zone *zone, HValue* typecheck)
|
| : HTemplateInstruction<2>(value->type()),
|
| - omit_(false), has_migration_target_(false), is_stable_(true) {
|
| + omit_(false), has_migration_target_(false) {
|
| SetOperandAt(0, value);
|
| // Use the object value for the dependency if NULL is passed.
|
| SetOperandAt(1, typecheck != NULL ? typecheck : value);
|
| @@ -2788,7 +2763,6 @@ class HCheckMaps V8_FINAL : public HTemplateInstruction<2> {
|
|
|
| bool omit_;
|
| bool has_migration_target_;
|
| - bool is_stable_;
|
| UniqueSet<Map> map_set_;
|
| };
|
|
|
| @@ -6569,16 +6543,6 @@ class HStoreNamedField V8_FINAL : public HTemplateInstruction<3> {
|
| }
|
| SetOperandAt(2, map_constant);
|
| has_transition_ = true;
|
| - is_stable_ = map->is_stable();
|
| -
|
| - if (is_stable_) {
|
| - map->AddDependentCompilationInfo(
|
| - DependentCode::kPrototypeCheckGroup, info);
|
| - }
|
| - }
|
| -
|
| - bool is_stable() const {
|
| - return is_stable_;
|
| }
|
|
|
| bool NeedsWriteBarrier() {
|
| @@ -6617,7 +6581,6 @@ class HStoreNamedField V8_FINAL : public HTemplateInstruction<3> {
|
| new_space_dominator_(NULL),
|
| write_barrier_mode_(UPDATE_WRITE_BARRIER),
|
| has_transition_(false),
|
| - is_stable_(false),
|
| store_mode_(store_mode) {
|
| // Stores to a non existing in-object property are allowed only to the
|
| // newly allocated objects (via HAllocate or HInnerAllocatedObject).
|
| @@ -6633,7 +6596,6 @@ class HStoreNamedField V8_FINAL : public HTemplateInstruction<3> {
|
| HValue* new_space_dominator_;
|
| WriteBarrierMode write_barrier_mode_ : 1;
|
| bool has_transition_ : 1;
|
| - bool is_stable_ : 1;
|
| StoreFieldOrKeyedMode store_mode_ : 1;
|
| };
|
|
|
|
|