1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef V8_COMPILER_JS_INLINING_H_
6 #define V8_COMPILER_JS_INLINING_H_
8 #include "src/compiler/js-graph.h"
9 #include "src/compiler/graph-reducer.h"
15 class JSCallFunctionAccessor;
17 class JSInliner FINAL : public Reducer {
19 JSInliner(Zone* local_zone, CompilationInfo* info, JSGraph* jsgraph)
20 : local_zone_(local_zone), info_(info), jsgraph_(jsgraph) {}
22 Reduction Reduce(Node* node) OVERRIDE;
25 friend class InlinerVisitor;
27 CompilationInfo* info_;
30 Node* CreateArgumentsAdaptorFrameState(JSCallFunctionAccessor* call,
31 Handle<JSFunction> jsfunction,
33 void AddClosureToFrameState(Node* frame_state, Handle<JSFunction> jsfunction);
34 Reduction TryInlineJSCall(Node* node, Handle<JSFunction> jsfunction);
35 static void UnifyReturn(Graph* graph);
39 } // namespace v8::internal::compiler
41 #endif // V8_COMPILER_JS_INLINING_H_