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

Unified Diff: runtime/vm/flow_graph_type_propagator.h

Issue 12529008: Collect type feedback for fields. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: address comments Created 7 years, 9 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/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_;

Powered by Google App Engine
This is Rietveld 408576698