| Index: src/hydrogen-instructions.h
|
| diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h
|
| index f3a353c5ea16a95a78d2ef9916994c7f96419bf9..388c079742facfc0b7ba38c4dbae1ff825eb6c6c 100644
|
| --- a/src/hydrogen-instructions.h
|
| +++ b/src/hydrogen-instructions.h
|
| @@ -117,7 +117,6 @@ class LChunkBuilder;
|
| V(LoadContextSlot) \
|
| V(LoadFieldByIndex) \
|
| V(LoadFunctionPrototype) \
|
| - V(LoadGlobalCell) \
|
| V(LoadGlobalGeneric) \
|
| V(LoadKeyed) \
|
| V(LoadKeyedGeneric) \
|
| @@ -146,7 +145,6 @@ class LChunkBuilder;
|
| V(StoreCodeEntry) \
|
| V(StoreContextSlot) \
|
| V(StoreFrameContext) \
|
| - V(StoreGlobalCell) \
|
| V(StoreKeyed) \
|
| V(StoreKeyedGeneric) \
|
| V(StoreNamedField) \
|
| @@ -3501,7 +3499,7 @@ class HConstant FINAL : public HTemplateInstruction<0> {
|
|
|
| bool IsCell() const {
|
| InstanceType instance_type = GetInstanceType();
|
| - return instance_type == CELL_TYPE || instance_type == PROPERTY_CELL_TYPE;
|
| + return instance_type == CELL_TYPE;
|
| }
|
|
|
| Representation RequiredInputRepresentation(int index) OVERRIDE {
|
| @@ -5414,47 +5412,6 @@ class HUnknownOSRValue FINAL : public HTemplateInstruction<0> {
|
| };
|
|
|
|
|
| -class HLoadGlobalCell FINAL : public HTemplateInstruction<0> {
|
| - public:
|
| - DECLARE_INSTRUCTION_FACTORY_P2(HLoadGlobalCell, Handle<Cell>,
|
| - PropertyDetails);
|
| -
|
| - Unique<Cell> cell() const { return cell_; }
|
| - // TODO(dcarney): remove this.
|
| - bool RequiresHoleCheck() const { return false; }
|
| -
|
| - std::ostream& PrintDataTo(std::ostream& os) const OVERRIDE; // NOLINT
|
| -
|
| - intptr_t Hashcode() OVERRIDE { return cell_.Hashcode(); }
|
| -
|
| - void FinalizeUniqueness() OVERRIDE { cell_ = Unique<Cell>(cell_.handle()); }
|
| -
|
| - Representation RequiredInputRepresentation(int index) OVERRIDE {
|
| - return Representation::None();
|
| - }
|
| -
|
| - DECLARE_CONCRETE_INSTRUCTION(LoadGlobalCell)
|
| -
|
| - protected:
|
| - bool DataEquals(HValue* other) OVERRIDE {
|
| - return cell_ == HLoadGlobalCell::cast(other)->cell_;
|
| - }
|
| -
|
| - private:
|
| - HLoadGlobalCell(Handle<Cell> cell, PropertyDetails details)
|
| - : cell_(Unique<Cell>::CreateUninitialized(cell)), details_(details) {
|
| - set_representation(Representation::Tagged());
|
| - SetFlag(kUseGVN);
|
| - SetDependsOnFlag(kGlobalVars);
|
| - }
|
| -
|
| - bool IsDeletable() const OVERRIDE { return true; }
|
| -
|
| - Unique<Cell> cell_;
|
| - PropertyDetails details_;
|
| -};
|
| -
|
| -
|
| class HLoadGlobalGeneric FINAL : public HTemplateInstruction<2> {
|
| public:
|
| DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P3(HLoadGlobalGeneric, HValue*,
|
| @@ -5797,44 +5754,6 @@ inline PointersToHereCheck PointersToHereCheckForObject(HValue* object,
|
| }
|
|
|
|
|
| -class HStoreGlobalCell FINAL : public HUnaryOperation {
|
| - public:
|
| - DECLARE_INSTRUCTION_FACTORY_P3(HStoreGlobalCell, HValue*,
|
| - Handle<PropertyCell>, PropertyDetails);
|
| -
|
| - Unique<PropertyCell> cell() const { return cell_; }
|
| - // TODO(dcarney): remove
|
| - bool RequiresHoleCheck() const { return false; }
|
| - bool NeedsWriteBarrier() {
|
| - return StoringValueNeedsWriteBarrier(value());
|
| - }
|
| -
|
| - void FinalizeUniqueness() OVERRIDE {
|
| - cell_ = Unique<PropertyCell>(cell_.handle());
|
| - }
|
| -
|
| - Representation RequiredInputRepresentation(int index) OVERRIDE {
|
| - return Representation::Tagged();
|
| - }
|
| - std::ostream& PrintDataTo(std::ostream& os) const OVERRIDE; // NOLINT
|
| -
|
| - DECLARE_CONCRETE_INSTRUCTION(StoreGlobalCell)
|
| -
|
| - private:
|
| - HStoreGlobalCell(HValue* value,
|
| - Handle<PropertyCell> cell,
|
| - PropertyDetails details)
|
| - : HUnaryOperation(value),
|
| - cell_(Unique<PropertyCell>::CreateUninitialized(cell)),
|
| - details_(details) {
|
| - SetChangesFlag(kGlobalVars);
|
| - }
|
| -
|
| - Unique<PropertyCell> cell_;
|
| - PropertyDetails details_;
|
| -};
|
| -
|
| -
|
| class HLoadContextSlot FINAL : public HUnaryOperation {
|
| public:
|
| enum Mode {
|
| @@ -6925,14 +6844,6 @@ class HStoreNamedField FINAL : public HTemplateInstruction<3> {
|
| SetChangesFlag(kMaps);
|
| }
|
|
|
| - void MarkReceiverAsCell() {
|
| - bit_field_ = ReceiverIsCellField::update(bit_field_, true);
|
| - }
|
| -
|
| - bool receiver_is_cell() const {
|
| - return ReceiverIsCellField::decode(bit_field_);
|
| - }
|
| -
|
| bool NeedsWriteBarrier() const {
|
| DCHECK(!field_representation().IsDouble() ||
|
| (FLAG_unbox_double_fields && access_.IsInobject()) ||
|
| @@ -6941,7 +6852,6 @@ class HStoreNamedField FINAL : public HTemplateInstruction<3> {
|
| if (field_representation().IsSmi()) return false;
|
| if (field_representation().IsInteger32()) return false;
|
| if (field_representation().IsExternal()) return false;
|
| - if (receiver_is_cell()) return false;
|
| return StoringValueNeedsWriteBarrier(value()) &&
|
| ReceiverObjectNeedsWriteBarrier(object(), value(), dominator());
|
| }
|
| @@ -7001,7 +6911,6 @@ class HStoreNamedField FINAL : public HTemplateInstruction<3> {
|
|
|
| class HasTransitionField : public BitField<bool, 0, 1> {};
|
| class StoreModeField : public BitField<StoreFieldOrKeyedMode, 1, 1> {};
|
| - class ReceiverIsCellField : public BitField<bool, 2, 1> {};
|
|
|
| HObjectAccess access_;
|
| HValue* dominator_;
|
|
|