Index: src/compiler/js-inlining.h |
diff --git a/src/compiler/js-inlining.h b/src/compiler/js-inlining.h |
index eef29d6a74f68f24176fa9b4aa62e9afcf0f8dda..2aaedae538a7fab2e032848bdabcc5dc9636845b 100644 |
--- a/src/compiler/js-inlining.h |
+++ b/src/compiler/js-inlining.h |
@@ -5,38 +5,59 @@ |
#ifndef V8_COMPILER_JS_INLINING_H_ |
#define V8_COMPILER_JS_INLINING_H_ |
-#include "src/compiler/js-graph.h" |
-#include "src/v8.h" |
+#include "src/base/macros.h" |
namespace v8 { |
namespace internal { |
+ |
+// Forward declarations. |
+class CompilationInfo; |
+template <typename> |
+class Handle; |
+class JSFunction; |
+class Zone; |
+ |
+ |
namespace compiler { |
-class JSCallFunctionAccessor; |
+// Forward declarations. |
+class CommonOperatorBuilder; |
+class Graph; |
+class JSGraph; |
+class JSOperatorBuilder; |
+class MachineOperatorBuilder; |
+class Node; |
-class JSInliner { |
+ |
+class JSInliner FINAL { |
public: |
- JSInliner(Zone* local_zone, CompilationInfo* info, JSGraph* jsgraph) |
- : local_zone_(local_zone), info_(info), jsgraph_(jsgraph) {} |
+ JSInliner(CompilationInfo* info, JSGraph* jsgraph, Zone* zone) |
+ : info_(info), jsgraph_(jsgraph), zone_(zone) {} |
void Inline(); |
void TryInlineJSCall(Node* node); |
void TryInlineRuntimeCall(Node* node); |
private: |
- friend class InlinerVisitor; |
- Zone* local_zone_; |
- CompilationInfo* info_; |
- JSGraph* jsgraph_; |
- |
- Node* CreateArgumentsAdaptorFrameState(JSCallFunctionAccessor* call, |
- Handle<JSFunction> jsfunction, |
- Zone* temp_zone); |
- void AddClosureToFrameState(Node* frame_state, Handle<JSFunction> jsfunction); |
- static void UnifyReturn(Graph* graph); |
+ template <typename InputIterator> |
+ Node* CreateArgumentsAdaptorFrameState(const Handle<JSFunction>& function, |
+ InputIterator first, |
+ InputIterator last, Node* frame_state); |
+ |
+ Graph* graph() const; |
+ JSGraph* jsgraph() const { return jsgraph_; } |
+ CommonOperatorBuilder* common() const; |
+ JSOperatorBuilder* javascript() const; |
+ MachineOperatorBuilder* machine() const; |
+ Zone* zone() const { return zone_; } |
+ |
+ CompilationInfo* const info_; |
+ JSGraph* const jsgraph_; |
+ Zone* const zone_; |
}; |
-} |
-} |
-} // namespace v8::internal::compiler |
+ |
+} // namespace compiler |
+} // namespace internal |
+} // namespace v8 |
#endif // V8_COMPILER_JS_INLINING_H_ |