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 2c9f1be4c9d903b2c74ef95e947293cac986054c..ce4ec8ea17cfeaf76fc9c842319d6c45de217692 100644 |
| --- a/src/compiler/ast-graph-builder.h |
| +++ b/src/compiler/ast-graph-builder.h |
| @@ -88,7 +88,6 @@ 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_; |
| @@ -98,6 +97,10 @@ class AstGraphBuilder : public AstVisitor { |
| int input_buffer_size_; |
| Node** input_buffer_; |
| + // Optimization to cache loaded feedback vector. |
| + // TODO(mstarzinger): Can we let GVN take care of that? |
|
Michael Starzinger
2015/06/22 14:57:56
Is there particular reason why machine loads are n
Benedikt Meurer
2015/06/23 04:12:38
I'm not sure if we can mark Load as idempotent. We
Michael Starzinger
2015/06/23 07:59:22
Acknowledged. Removed the TODO.
|
| + SetOncePointer<Node> feedback_vector_; |
| + |
| // Control nodes that exit the function body. |
| ZoneVector<Node*> exit_controls_; |
| @@ -149,9 +152,6 @@ class AstGraphBuilder : public AstVisitor { |
| Node* GetFunctionClosureForContext(); |
| 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); |
| @@ -306,8 +306,10 @@ class AstGraphBuilder : public AstVisitor { |
| Node* BuildLoadBuiltinsObject(); |
| Node* BuildLoadGlobalObject(); |
| Node* BuildLoadGlobalProxy(); |
| - Node* BuildLoadClosure(); |
| - Node* BuildLoadObjectField(Node* object, int offset); |
| + Node* BuildLoadFeedbackVector(); |
| + |
| + // Builder for accessing a (potentially immutable) object field. |
| + Node* BuildLoadObjectField(Node* object, int offset, bool immutable = false); |
| // Builders for accessing external references. |
| Node* BuildLoadExternal(ExternalReference ref, MachineType type); |