| OLD | NEW | 
|   1 // Copyright 2014 the V8 project authors. All rights reserved. |   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 |   2 // Use of this source code is governed by a BSD-style license that can be | 
|   3 // found in the LICENSE file. |   3 // found in the LICENSE file. | 
|   4  |   4  | 
|   5 #ifndef V8_COMPILER_JS_INLINING_H_ |   5 #ifndef V8_COMPILER_JS_INLINING_H_ | 
|   6 #define V8_COMPILER_JS_INLINING_H_ |   6 #define V8_COMPILER_JS_INLINING_H_ | 
|   7  |   7  | 
|   8 #include "src/compiler/js-graph.h" |   8 #include "src/compiler/js-graph.h" | 
 |   9 #include "src/compiler/graph-reducer.h" | 
|   9  |  10  | 
|  10 namespace v8 { |  11 namespace v8 { | 
|  11 namespace internal { |  12 namespace internal { | 
|  12 namespace compiler { |  13 namespace compiler { | 
|  13  |  14  | 
|  14 class JSCallFunctionAccessor; |  15 class JSCallFunctionAccessor; | 
|  15  |  16  | 
|  16 class JSInliner { |  17 class JSInliner FINAL : public Reducer { | 
|  17  public: |  18  public: | 
|  18   JSInliner(Zone* local_zone, CompilationInfo* info, JSGraph* jsgraph) |  19   JSInliner(Zone* local_zone, CompilationInfo* info, JSGraph* jsgraph) | 
|  19       : local_zone_(local_zone), info_(info), jsgraph_(jsgraph) {} |  20       : local_zone_(local_zone), info_(info), jsgraph_(jsgraph) {} | 
|  20  |  21  | 
|  21   void Inline(); |  22   Reduction Reduce(Node* node) OVERRIDE; | 
|  22   void TryInlineJSCall(Node* node); |  | 
|  23  |  23  | 
|  24  private: |  24  private: | 
|  25   friend class InlinerVisitor; |  25   friend class InlinerVisitor; | 
|  26   Zone* local_zone_; |  26   Zone* local_zone_; | 
|  27   CompilationInfo* info_; |  27   CompilationInfo* info_; | 
|  28   JSGraph* jsgraph_; |  28   JSGraph* jsgraph_; | 
|  29  |  29  | 
|  30   Node* CreateArgumentsAdaptorFrameState(JSCallFunctionAccessor* call, |  30   Node* CreateArgumentsAdaptorFrameState(JSCallFunctionAccessor* call, | 
|  31                                          Handle<JSFunction> jsfunction, |  31                                          Handle<JSFunction> jsfunction, | 
|  32                                          Zone* temp_zone); |  32                                          Zone* temp_zone); | 
|  33   void AddClosureToFrameState(Node* frame_state, Handle<JSFunction> jsfunction); |  33   void AddClosureToFrameState(Node* frame_state, Handle<JSFunction> jsfunction); | 
 |  34   Reduction TryInlineJSCall(Node* node, Handle<JSFunction> jsfunction); | 
|  34   static void UnifyReturn(Graph* graph); |  35   static void UnifyReturn(Graph* graph); | 
|  35 }; |  36 }; | 
|  36 } |  37 } | 
|  37 } |  38 } | 
|  38 }  // namespace v8::internal::compiler |  39 }  // namespace v8::internal::compiler | 
|  39  |  40  | 
|  40 #endif  // V8_COMPILER_JS_INLINING_H_ |  41 #endif  // V8_COMPILER_JS_INLINING_H_ | 
| OLD | NEW |