Index: runtime/vm/flow_graph_builder.h |
diff --git a/runtime/vm/flow_graph_builder.h b/runtime/vm/flow_graph_builder.h |
index 5fbc056f2966357e24e1e47cc8f956a3a1300eef..b4018dfdc8a4b937b6759363d053140a7795de4d 100644 |
--- a/runtime/vm/flow_graph_builder.h |
+++ b/runtime/vm/flow_graph_builder.h |
@@ -98,6 +98,7 @@ class FlowGraphBuilder : public ValueObject { |
// id of the OSR entry or Compiler::kNoOSRDeoptId if not compiling for OSR. |
FlowGraphBuilder(const ParsedFunction& parsed_function, |
const ZoneGrowableArray<const ICData*>& ic_data_array, |
+ ZoneGrowableArray<intptr_t>* context_level_array, |
InlineExitCollector* exit_collector, |
intptr_t osr_id); |
@@ -114,10 +115,7 @@ class FlowGraphBuilder : public ValueObject { |
intptr_t AllocateBlockId() { return ++last_used_block_id_; } |
void SetInitialBlockId(intptr_t id) { last_used_block_id_ = id; } |
- intptr_t GetNextDeoptId() { |
- // TODO(rmacnak): Record current scope / context level. |
- return thread()->GetNextDeoptId(); |
- } |
+ intptr_t GetNextDeoptId() const; |
intptr_t context_level() const; |
@@ -198,6 +196,8 @@ class FlowGraphBuilder : public ValueObject { |
const ParsedFunction& parsed_function_; |
const ZoneGrowableArray<const ICData*>& ic_data_array_; |
+ // Contains (deopt_id, context_level) pairs. |
+ ZoneGrowableArray<intptr_t>* context_level_array_; |
const intptr_t num_copied_params_; |
const intptr_t num_non_copied_params_; |