| Index: src/hydrogen-instructions.h
|
| diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h
|
| index 23390dc1115a48df3305bad9bc237afb6c3e45ad..ea0c56f12e3e8d2829020c52afe1bc8f20fefd6f 100644
|
| --- a/src/hydrogen-instructions.h
|
| +++ b/src/hydrogen-instructions.h
|
| @@ -4966,19 +4966,29 @@ class HAllocateObject: public HTemplateInstruction<1> {
|
| template <int V>
|
| class HMaterializedLiteral: public HTemplateInstruction<V> {
|
| public:
|
| + HMaterializedLiteral<V>(int index, int depth, AllocationSiteMode mode)
|
| + : literal_index_(index), depth_(depth), allocation_site_mode_(mode) {
|
| + this->set_representation(Representation::Tagged());
|
| + }
|
| +
|
| HMaterializedLiteral<V>(int index, int depth)
|
| - : literal_index_(index), depth_(depth) {
|
| + : literal_index_(index), depth_(depth),
|
| + allocation_site_mode_(DONT_TRACK_ALLOCATION_SITE) {
|
| this->set_representation(Representation::Tagged());
|
| }
|
|
|
| int literal_index() const { return literal_index_; }
|
| int depth() const { return depth_; }
|
| + AllocationSiteMode allocation_site_mode() const {
|
| + return allocation_site_mode_;
|
| + }
|
|
|
| private:
|
| virtual bool IsDeletable() const { return true; }
|
|
|
| int literal_index_;
|
| int depth_;
|
| + AllocationSiteMode allocation_site_mode_;
|
| };
|
|
|
|
|
| @@ -4988,8 +4998,9 @@ class HFastLiteral: public HMaterializedLiteral<1> {
|
| Handle<JSObject> boilerplate,
|
| int total_size,
|
| int literal_index,
|
| - int depth)
|
| - : HMaterializedLiteral<1>(literal_index, depth),
|
| + int depth,
|
| + AllocationSiteMode mode)
|
| + : HMaterializedLiteral<1>(literal_index, depth, mode),
|
| boilerplate_(boilerplate),
|
| total_size_(total_size) {
|
| SetOperandAt(0, context);
|
| @@ -5004,7 +5015,6 @@ class HFastLiteral: public HMaterializedLiteral<1> {
|
| HValue* context() { return OperandAt(0); }
|
| Handle<JSObject> boilerplate() const { return boilerplate_; }
|
| int total_size() const { return total_size_; }
|
| -
|
| virtual Representation RequiredInputRepresentation(int index) {
|
| return Representation::Tagged();
|
| }
|
| @@ -5024,8 +5034,9 @@ class HArrayLiteral: public HMaterializedLiteral<1> {
|
| Handle<HeapObject> boilerplate_object,
|
| int length,
|
| int literal_index,
|
| - int depth)
|
| - : HMaterializedLiteral<1>(literal_index, depth),
|
| + int depth,
|
| + AllocationSiteMode mode)
|
| + : HMaterializedLiteral<1>(literal_index, depth, mode),
|
| length_(length),
|
| boilerplate_object_(boilerplate_object) {
|
| SetOperandAt(0, context);
|
| @@ -5041,7 +5052,6 @@ class HArrayLiteral: public HMaterializedLiteral<1> {
|
| }
|
| Handle<HeapObject> boilerplate_object() const { return boilerplate_object_; }
|
| int length() const { return length_; }
|
| -
|
| bool IsCopyOnWrite() const;
|
|
|
| virtual Representation RequiredInputRepresentation(int index) {
|
|
|