Chromium Code Reviews| Index: src/compiler/js-operator.h |
| diff --git a/src/compiler/js-operator.h b/src/compiler/js-operator.h |
| index 9a8bdd690afbf7cbe3952a32b2dfa88d191d5b43..1ba035456203bce2d9f0c1cbec5704da33477e93 100644 |
| --- a/src/compiler/js-operator.h |
| +++ b/src/compiler/js-operator.h |
| @@ -112,16 +112,36 @@ std::ostream& operator<<(std::ostream&, ContextAccess const&); |
| ContextAccess const& ContextAccessOf(Operator const*); |
| +class VectorSlotPair { |
| + public: |
| + VectorSlotPair(Handle<TypeFeedbackVector> vector, FeedbackVectorICSlot slot) |
|
Benedikt Meurer
2015/06/02 04:39:49
The vector should be an input to the node. The ope
Michael Starzinger
2015/06/02 07:38:29
Acknowledged. Yes, I already talked to Michael Sta
|
| + : vector_(vector), slot_(slot) {} |
| + |
| + Handle<TypeFeedbackVector> vector() const { return vector_; } |
| + FeedbackVectorICSlot slot() const { return slot_; } |
| + |
| + int index() const { return vector_->GetIndex(slot_); } |
| + |
| + private: |
| + const Handle<TypeFeedbackVector> vector_; |
| + const FeedbackVectorICSlot slot_; |
| +}; |
| + |
| + |
| +bool operator==(VectorSlotPair const& lhs, VectorSlotPair const& rhs); |
| + |
| + |
| // Defines the name for a dynamic variable lookup. The {check_bitset} allows to |
| // inline checks whether the lookup yields in a global variable. This is used as |
| // a parameter by JSLoadDynamicGlobal and JSStoreDynamicGlobal operators. |
| class DynamicGlobalAccess final { |
| public: |
| DynamicGlobalAccess(const Handle<String>& name, uint32_t check_bitset, |
| - ContextualMode mode); |
| + const VectorSlotPair& feedback, ContextualMode mode); |
| const Handle<String>& name() const { return name_; } |
| uint32_t check_bitset() const { return check_bitset_; } |
| + const VectorSlotPair& feedback() const { return feedback_; } |
| ContextualMode mode() const { return mode_; } |
| // Indicates that an inline check is disabled. |
| @@ -138,6 +158,7 @@ class DynamicGlobalAccess final { |
| private: |
| const Handle<String> name_; |
| const uint32_t check_bitset_; |
| + const VectorSlotPair feedback_; |
| const ContextualMode mode_; |
| }; |
| @@ -190,25 +211,6 @@ std::ostream& operator<<(std::ostream&, DynamicContextAccess const&); |
| DynamicContextAccess const& DynamicContextAccessOf(Operator const*); |
| -class VectorSlotPair { |
| - public: |
| - VectorSlotPair(Handle<TypeFeedbackVector> vector, FeedbackVectorICSlot slot) |
| - : vector_(vector), slot_(slot) {} |
| - |
| - Handle<TypeFeedbackVector> vector() const { return vector_; } |
| - FeedbackVectorICSlot slot() const { return slot_; } |
| - |
| - int index() const { return vector_->GetIndex(slot_); } |
| - |
| - private: |
| - const Handle<TypeFeedbackVector> vector_; |
| - const FeedbackVectorICSlot slot_; |
| -}; |
| - |
| - |
| -bool operator==(VectorSlotPair const& lhs, VectorSlotPair const& rhs); |
| - |
| - |
| // Defines the property being loaded from an object by a named load. This is |
| // used as a parameter by JSLoadNamed operators. |
| class LoadNamedParameters final { |
| @@ -376,7 +378,9 @@ class JSOperatorBuilder final : public ZoneObject { |
| const Operator* StoreContext(size_t depth, size_t index); |
| const Operator* LoadDynamicGlobal(const Handle<String>& name, |
| - uint32_t check_bitset, ContextualMode mode); |
| + uint32_t check_bitset, |
| + const VectorSlotPair& feedback, |
| + ContextualMode mode); |
| const Operator* LoadDynamicContext(const Handle<String>& name, |
| uint32_t check_bitset, size_t depth, |
| size_t index); |