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 11namespace v8 { 12namespace internal { 13namespace compiler { 14 15class JSCallFunctionAccessor; 16 17class JSInliner { 18 public: 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