| Index: src/compiler/ast-graph-builder.h
|
| diff --git a/src/compiler/ast-graph-builder.h b/src/compiler/ast-graph-builder.h
|
| index 5a0996910c6766015ab433b4c8ea816c10bd5634..28fbd580b0307e64825e7f956efdb9407e66e07a 100644
|
| --- a/src/compiler/ast-graph-builder.h
|
| +++ b/src/compiler/ast-graph-builder.h
|
| @@ -194,11 +194,35 @@ class AstGraphBuilder : public AstVisitor {
|
| // Helper to indicate a node exits the function body.
|
| void UpdateControlDependencyToLeaveFunction(Node* exit);
|
|
|
| - //
|
| + // Builds deoptimization for a given node.
|
| + void PrepareFrameState(
|
| + Node* node, BailoutId ast_id,
|
| + OutputFrameStateCombine combine = OutputFrameStateCombine::Ignore());
|
| + void PrepareFrameStateAfterAndBefore(Node* node, BailoutId ast_id,
|
| + OutputFrameStateCombine combine,
|
| + Node* frame_state_before);
|
| +
|
| + BitVector* GetVariablesAssignedInLoop(IterationStatement* stmt);
|
| +
|
| + // Check if the given statement is an OSR entry.
|
| + // If so, record the stack height into the compilation and return {true}.
|
| + bool CheckOsrEntry(IterationStatement* stmt);
|
| +
|
| + // Helper to wrap a Handle<T> into a Unique<T>.
|
| + template <class T>
|
| + Unique<T> MakeUnique(Handle<T> object) {
|
| + return Unique<T>::CreateUninitialized(object);
|
| + }
|
| +
|
| + Node** EnsureInputBufferSize(int size);
|
| +
|
| + // Named and keyed loads require a VectorSlotPair for successful lowering.
|
| + VectorSlotPair CreateVectorSlotPair(FeedbackVectorICSlot slot) const;
|
| +
|
| + // ===========================================================================
|
| // The following build methods all generate graph fragments and return one
|
| // resulting node. The operand stack height remains the same, variables and
|
| // other dependencies tracked by the environment might be mutated though.
|
| - //
|
|
|
| // Builder to create a receiver check for sloppy mode.
|
| Node* BuildPatchReceiverToGlobalProxy(Node* receiver);
|
| @@ -272,25 +296,17 @@ class AstGraphBuilder : public AstVisitor {
|
| // Builders for binary operations.
|
| Node* BuildBinaryOp(Node* left, Node* right, Token::Value op);
|
|
|
| - // Check if the given statement is an OSR entry.
|
| - // If so, record the stack height into the compilation and return {true}.
|
| - bool CheckOsrEntry(IterationStatement* stmt);
|
| -
|
| - // Helper to wrap a Handle<T> into a Unique<T>.
|
| - template <class T>
|
| - Unique<T> MakeUnique(Handle<T> object) {
|
| - return Unique<T>::CreateUninitialized(object);
|
| - }
|
| -
|
| - Node** EnsureInputBufferSize(int size);
|
| -
|
| - // Named and keyed loads require a VectorSlotPair for successful lowering.
|
| - VectorSlotPair CreateVectorSlotPair(FeedbackVectorICSlot slot) const;
|
| -
|
| // Process arguments to a call by popping {arity} elements off the operand
|
| // stack and build a call node using the given call operator.
|
| Node* ProcessArguments(const Operator* op, int arity);
|
|
|
| + // ===========================================================================
|
| + // The following visitation methods all recursively visit a subtree of the
|
| + // underlying AST and extent the graph. The operand stack is mutated in a way
|
| + // consistent with other compilers:
|
| + // - Expressions pop operands and push result, depending on {AstContext}.
|
| + // - Statements keep the operand stack balanced.
|
| +
|
| // Visit statements.
|
| void VisitIfNotNull(Statement* stmt);
|
|
|
| @@ -328,16 +344,6 @@ class AstGraphBuilder : public AstVisitor {
|
| // Dispatched from VisitClassLiteral.
|
| void VisitClassLiteralContents(ClassLiteral* expr);
|
|
|
| - // Builds deoptimization for a given node.
|
| - void PrepareFrameState(
|
| - Node* node, BailoutId ast_id,
|
| - OutputFrameStateCombine combine = OutputFrameStateCombine::Ignore());
|
| - void PrepareFrameStateAfterAndBefore(Node* node, BailoutId ast_id,
|
| - OutputFrameStateCombine combine,
|
| - Node* frame_state_before);
|
| -
|
| - BitVector* GetVariablesAssignedInLoop(IterationStatement* stmt);
|
| -
|
| DEFINE_AST_VISITOR_SUBCLASS_MEMBERS();
|
| DISALLOW_COPY_AND_ASSIGN(AstGraphBuilder);
|
| };
|
|
|