Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(58)

Unified Diff: src/compiler/ast-graph-builder.h

Issue 1175503002: Turbofan: Make type feedback vector a Node. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: REBASE. Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | src/compiler/ast-graph-builder.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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();
« no previous file with comments | « no previous file | src/compiler/ast-graph-builder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698