Chromium Code Reviews| Index: src/compiler/ast-graph-builder.h |
| diff --git a/src/compiler/ast-graph-builder.h b/src/compiler/ast-graph-builder.h |
| index 6d14c75d7801be922dfdcf2c71b440d9229eddf3..b93cb403641a7dbf67157e42461f147bc4e5971f 100644 |
| --- a/src/compiler/ast-graph-builder.h |
| +++ b/src/compiler/ast-graph-builder.h |
| @@ -88,6 +88,7 @@ class AstGraphBuilder : public AstVisitor { |
| // Nodes representing values in the activation record. |
| SetOncePointer<Node> function_closure_; |
| SetOncePointer<Node> function_context_; |
| + SetOncePointer<Node> feedback_vector_; |
| // Tracks how many try-blocks are currently entered. |
| int try_catch_nesting_level_; |
| @@ -147,6 +148,9 @@ class AstGraphBuilder : public AstVisitor { |
| // Get or create the node that represents the outer function closure. |
| Node* GetFunctionClosure(); |
| + // Get or create the node that represents the functions type feedback vector. |
| + Node* GetFeedbackVector(); |
| + |
| // Node creation helpers. |
| Node* NewNode(const Operator* op, bool incomplete = false) { |
| return MakeNode(op, 0, static_cast<Node**>(NULL), incomplete); |
| @@ -231,8 +235,10 @@ class AstGraphBuilder : public AstVisitor { |
| Node** EnsureInputBufferSize(int size); |
| - // Named and keyed loads require a VectorSlotPair for successful lowering. |
| - VectorSlotPair CreateVectorSlotPair(FeedbackVectorICSlot slot) const; |
| + // Named and keyed loads require a ResolvedFeedbackSlot for successful |
| + // lowering. |
| + ResolvedFeedbackSlot CreateResolvedFeedbackSlot( |
|
Michael Starzinger
2015/06/09 13:23:30
nit: We could just call the function "ResolveFeedb
mvstanton
2015/06/09 15:21:26
Yep, done.
|
| + FeedbackVectorICSlot slot) const; |
| // Determine which contexts need to be checked for extension objects that |
| // might shadow the optimistic declaration of dynamic lookup variables. |
| @@ -271,15 +277,15 @@ class AstGraphBuilder : public AstVisitor { |
| OutputFrameStateCombine framestate_combine); |
| Node* BuildVariableLoad(Variable* variable, BailoutId bailout_id, |
| FrameStateBeforeAndAfter& states, |
| - const VectorSlotPair& feedback, |
| + const ResolvedFeedbackSlot& feedback, |
| OutputFrameStateCombine framestate_combine, |
| ContextualMode mode = CONTEXTUAL); |
| // Builders for property loads and stores. |
| - Node* BuildKeyedLoad(Node* receiver, Node* key, |
| - const VectorSlotPair& feedback); |
| - Node* BuildNamedLoad(Node* receiver, Handle<Name> name, |
| - const VectorSlotPair& feedback, |
| + Node* BuildKeyedLoad(Node* receiver, Node* key, Node* vector, |
| + const ResolvedFeedbackSlot& feedback); |
| + Node* BuildNamedLoad(Node* receiver, Node* vector, Handle<Name> name, |
| + const ResolvedFeedbackSlot& feedback, |
| ContextualMode mode = NOT_CONTEXTUAL); |
| Node* BuildKeyedStore(Node* receiver, Node* key, Node* value, |
| TypeFeedbackId id); |
| @@ -292,9 +298,10 @@ class AstGraphBuilder : public AstVisitor { |
| Node* BuildNamedSuperStore(Node* receiver, Node* home_object, |
| Handle<Name> name, Node* value, TypeFeedbackId id); |
| Node* BuildNamedSuperLoad(Node* receiver, Node* home_object, |
| - Handle<Name> name, const VectorSlotPair& feedback); |
| + Handle<Name> name, |
| + const ResolvedFeedbackSlot& feedback); |
| Node* BuildKeyedSuperLoad(Node* receiver, Node* home_object, Node* key, |
| - const VectorSlotPair& feedback); |
| + const ResolvedFeedbackSlot& feedback); |
| // Builders for accessing the function context. |
| Node* BuildLoadBuiltinsObject(); |