Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(742)

Unified Diff: runtime/vm/precompiler.cc

Issue 1739963002: Remember token position where a function was inlined (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: runtime/vm/precompiler.cc
diff --git a/runtime/vm/precompiler.cc b/runtime/vm/precompiler.cc
index fb4768a236bd5c48c726e8754796b255f38b86e1..3b31a6328eb712aabf5a465c61a348fa3292ce3b 100644
--- a/runtime/vm/precompiler.cc
+++ b/runtime/vm/precompiler.cc
@@ -1966,6 +1966,8 @@ bool PrecompileParsedFunctionHelper::Compile(CompilationPipeline* pipeline) {
// Maps inline_id_to_function[inline_id] -> function. Top scope
// function has inline_id 0. The map is populated by the inliner.
GrowableArray<const Function*> inline_id_to_function;
+ // Token position where inlining occured.
+ GrowableArray<TokenPosition> inline_id_to_token_pos;
// For a given inlining-id(index) specifies the caller's inlining-id.
GrowableArray<intptr_t> caller_inline_id;
// Collect all instance fields that are loaded in the graph and
@@ -1978,6 +1980,7 @@ bool PrecompileParsedFunctionHelper::Compile(CompilationPipeline* pipeline) {
"OptimizationPasses");
#endif // !PRODUCT
inline_id_to_function.Add(&function);
+ inline_id_to_token_pos.Add(function.token_pos());
// Top scope function has no caller (-1).
caller_inline_id.Add(-1);
CSTAT_TIMER_SCOPE(thread(), graphoptimizer_timer);
@@ -2021,6 +2024,7 @@ bool PrecompileParsedFunctionHelper::Compile(CompilationPipeline* pipeline) {
FlowGraphInliner inliner(flow_graph,
&inline_id_to_function,
+ &inline_id_to_token_pos,
&caller_inline_id,
use_speculative_inlining,
&inlining_black_list);
@@ -2317,6 +2321,7 @@ bool PrecompileParsedFunctionHelper::Compile(CompilationPipeline* pipeline) {
FlowGraphCompiler graph_compiler(&assembler, flow_graph,
*parsed_function(), optimized(),
inline_id_to_function,
+ inline_id_to_token_pos,
caller_inline_id);
{
CSTAT_TIMER_SCOPE(thread(), graphcompiler_timer);

Powered by Google App Engine
This is Rietveld 408576698