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. 4 5 #ifndef V8_COMPILER_JS_INLINING_H_ 6 #define V8_COMPILER_JS_INLINING_H_ 7 8 #include "src/compiler/js-graph.h" 9 #include "src/v8.h" 10 11 namespace v8 { 12 namespace internal { 13 namespace compiler { 14 15 class JSCallFunctionAccessor; 16 17 class JSInliner { 18 public: JSInliner(CompilationInfo * info,JSGraph * jsgraph)19 JSInliner(CompilationInfo* info, JSGraph* jsgraph) 20 : info_(info), jsgraph_(jsgraph) {} 21 22 void Inline(); 23 void TryInlineCall(Node* node); 24 25 private: 26 friend class InlinerVisitor; 27 CompilationInfo* info_; 28 JSGraph* jsgraph_; 29 30 Node* CreateArgumentsAdaptorFrameState(JSCallFunctionAccessor* call, 31 Handle<JSFunction> jsfunction, 32 Zone* temp_zone); 33 void AddClosureToFrameState(Node* frame_state, Handle<JSFunction> jsfunction); 34 static void UnifyReturn(Graph* graph); 35 }; 36 } 37 } 38 } // namespace v8::internal::compiler 39 40 #endif // V8_COMPILER_JS_INLINING_H_ 41