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..cdcecd16418e043661edb7f205e587d6733ab813 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,9 @@ 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 ResolveFeedbackSlot(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 +276,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); |
+ const ResolvedFeedbackSlot& feedback); |
Node* BuildNamedLoad(Node* receiver, Handle<Name> name, |
- const VectorSlotPair& feedback, |
+ const ResolvedFeedbackSlot& feedback, |
ContextualMode mode = NOT_CONTEXTUAL); |
Node* BuildKeyedStore(Node* receiver, Node* key, Node* value, |
TypeFeedbackId id); |
@@ -292,9 +297,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(); |