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

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: 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..a086186d519b4e1e9b35eba15c8ad839da9ac14e 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);
@@ -25,6 +28,7 @@ class FlowGraphTypePropagator : public FlowGraphVisitor {
virtual void VisitCheckSmi(CheckSmiInstr* instr);
virtual void VisitCheckClass(CheckClassInstr* instr);
+
Kevin Millikin (Google) 2013/03/12 12:14:56 Huh? I liked it better before.
Vyacheslav Egorov (Google) 2013/03/12 16:54:40 Done.
// Current reaching type of the definition. Valid only during dominator tree
// traversal.
CompileType* TypeOf(Definition* def);
@@ -35,6 +39,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 +50,8 @@ class FlowGraphTypePropagator : public FlowGraphVisitor {
FlowGraph* flow_graph_;
+ GrowableArray<bool> visited_;
Kevin Millikin (Google) 2013/03/12 12:14:56 BitVector?
Vyacheslav Egorov (Google) 2013/03/12 16:54:40 Yeah, that was stupid :-)
+
// 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