| Index: runtime/vm/flow_graph_type_propagator.h
|
| diff --git a/runtime/vm/flow_graph_type_propagator.h b/runtime/vm/flow_graph_type_propagator.h
|
| index f01dc5f2dd6af2a3e3dcdb9cddf85792749c8602..57ce140f1305ae5a1a78bc92c85b77951ff10c45 100644
|
| --- a/runtime/vm/flow_graph_type_propagator.h
|
| +++ b/runtime/vm/flow_graph_type_propagator.h
|
| @@ -18,6 +18,9 @@ class FlowGraphTypePropagator : public FlowGraphVisitor {
|
|
|
| private:
|
| void PropagateRecursive(BlockEntryInstr* block);
|
| + void HandleBranchOnNull(BlockEntryInstr* block);
|
| +
|
| + void RollbackTo(intptr_t rollback_point);
|
|
|
| void VisitValue(Value* value);
|
|
|
| @@ -35,6 +38,8 @@ class FlowGraphTypePropagator : public FlowGraphVisitor {
|
| // Mark definition as having given class id in all dominated instructions.
|
| void SetCid(Definition* value, intptr_t cid);
|
|
|
| + void MarkNonNullable(Definition* value);
|
| +
|
| void AddToWorklist(Definition* defn);
|
| Definition* RemoveLastFromWorklist();
|
|
|
| @@ -44,6 +49,8 @@ class FlowGraphTypePropagator : public FlowGraphVisitor {
|
|
|
| FlowGraph* flow_graph_;
|
|
|
| + BitVector* visited_blocks_;
|
| +
|
| // Mapping between SSA values and their current reaching types. Valid
|
| // only during dominator tree traversal.
|
| GrowableArray<CompileType*> types_;
|
|
|