Index: runtime/vm/compiler.cc |
diff --git a/runtime/vm/compiler.cc b/runtime/vm/compiler.cc |
index 0a452b337b1a412b47d1b82ca76ea63fc7d60420..1c8a839467f819f74c2a766171f840aa33ded556 100644 |
--- a/runtime/vm/compiler.cc |
+++ b/runtime/vm/compiler.cc |
@@ -835,7 +835,12 @@ bool CompileParsedFunctionHelper::Compile(CompilationPipeline* pipeline) { |
JitOptimizer optimizer(flow_graph); |
- optimizer.ApplyICData(); |
+ { |
+ NOT_IN_PRODUCT(TimelineDurationScope tds(thread(), compiler_timeline, |
+ "ApplyICData")); |
+ optimizer.ApplyICData(); |
+ SafepointOperationScope safepoint_scope(thread()); |
Vyacheslav Egorov (Google)
2017/03/23 10:24:02
Here and below:
I think you need
thread()->Chec
erikcorry
2017/03/27 10:23:28
Done.
|
+ } |
DEBUG_ASSERT(flow_graph->VerifyUseLists()); |
// Optimize (a << b) & c patterns, merge operations. |
@@ -866,6 +871,7 @@ bool CompileParsedFunctionHelper::Compile(CompilationPipeline* pipeline) { |
inliner.Inline(); |
// Use lists are maintained and validated by the inliner. |
DEBUG_ASSERT(flow_graph->VerifyUseLists()); |
+ SafepointOperationScope safepoint_scope(thread()); |
} |
// Propagate types and eliminate more type tests. |
@@ -978,6 +984,7 @@ bool CompileParsedFunctionHelper::Compile(CompilationPipeline* pipeline) { |
DEBUG_ASSERT(flow_graph->VerifyUseLists()); |
} |
flow_graph->RemoveRedefinitions(); |
+ SafepointOperationScope safepoint_scope(thread()); |
} |
// Optimize (a << b) & c patterns, merge operations. |
@@ -1057,6 +1064,7 @@ bool CompileParsedFunctionHelper::Compile(CompilationPipeline* pipeline) { |
// TODO(fschneider): Support allocation sinking with try-catch. |
sinking = new AllocationSinking(flow_graph); |
sinking->Optimize(); |
+ SafepointOperationScope safepoint_scope(thread()); |
} |
DEBUG_ASSERT(flow_graph->VerifyUseLists()); |
@@ -1106,6 +1114,7 @@ bool CompileParsedFunctionHelper::Compile(CompilationPipeline* pipeline) { |
// Perform register allocation on the SSA graph. |
FlowGraphAllocator allocator(*flow_graph); |
allocator.AllocateRegisters(); |
+ SafepointOperationScope safepoint_scope(thread()); |
} |
if (reorder_blocks) { |