Index: src/compiler/js-inlining.cc |
diff --git a/src/compiler/js-inlining.cc b/src/compiler/js-inlining.cc |
index 5c01ff32528d260f9b002e0be98630a65cc3befd..53ff3c9c1da9d3730e77fd1fe7caff34fc93990c 100644 |
--- a/src/compiler/js-inlining.cc |
+++ b/src/compiler/js-inlining.cc |
@@ -4,18 +4,20 @@ |
#include "src/compiler/js-inlining.h" |
-#include "src/ast/ast.h" |
#include "src/ast/ast-numbering.h" |
+#include "src/ast/ast.h" |
#include "src/ast/scopes.h" |
#include "src/compiler.h" |
#include "src/compiler/all-nodes.h" |
#include "src/compiler/ast-graph-builder.h" |
+#include "src/compiler/ast-loop-assignment-analyzer.h" |
#include "src/compiler/common-operator.h" |
#include "src/compiler/graph-reducer.h" |
#include "src/compiler/js-operator.h" |
#include "src/compiler/node-matchers.h" |
#include "src/compiler/node-properties.h" |
#include "src/compiler/operator-properties.h" |
+#include "src/compiler/type-hint-analyzer.h" |
#include "src/isolate-inl.h" |
#include "src/parsing/parser.h" |
#include "src/parsing/rewriter.h" |
@@ -446,6 +448,15 @@ Reduction JSInliner::ReduceJSCall(Node* node, Handle<JSFunction> function) { |
shared_info->DebugName()->ToCString().get(), |
info_->shared_info()->DebugName()->ToCString().get()); |
+ // Run the loop assignment analyzer on the inlinee. |
+ AstLoopAssignmentAnalyzer loop_assignment_analyzer(&zone, &info); |
+ LoopAssignmentAnalysis* loop_assignment = loop_assignment_analyzer.Analyze(); |
+ |
+ // Run the type hint analyzer on the inlinee. |
+ TypeHintAnalyzer type_hint_analyzer(&zone); |
+ TypeHintAnalysis* type_hint_analysis = |
+ type_hint_analyzer.Analyze(handle(shared_info->code(), info.isolate())); |
+ |
// TODO(mstarzinger): We could use the temporary zone for the graph because |
// nodes are copied. This however leads to Zone-Types being allocated in the |
// wrong zone and makes the engine explode at high speeds. Explosion bad! |
@@ -453,7 +464,8 @@ Reduction JSInliner::ReduceJSCall(Node* node, Handle<JSFunction> function) { |
JSGraph jsgraph(info.isolate(), &graph, jsgraph_->common(), |
jsgraph_->javascript(), jsgraph_->simplified(), |
jsgraph_->machine()); |
- AstGraphBuilder graph_builder(local_zone_, &info, &jsgraph); |
+ AstGraphBuilder graph_builder(local_zone_, &info, &jsgraph, loop_assignment, |
+ type_hint_analysis); |
graph_builder.CreateGraph(false); |
CopyVisitor visitor(&graph, jsgraph_->graph(), &zone); |