OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef RUNTIME_VM_FLOW_GRAPH_TYPE_PROPAGATOR_H_ | 5 #ifndef RUNTIME_VM_FLOW_GRAPH_TYPE_PROPAGATOR_H_ |
6 #define RUNTIME_VM_FLOW_GRAPH_TYPE_PROPAGATOR_H_ | 6 #define RUNTIME_VM_FLOW_GRAPH_TYPE_PROPAGATOR_H_ |
7 | 7 |
8 #include "vm/flow_graph.h" | 8 #include "vm/flow_graph.h" |
9 #include "vm/intermediate_language.h" | 9 #include "vm/intermediate_language.h" |
10 | 10 |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 BitVector* in_worklist_; | 70 BitVector* in_worklist_; |
71 | 71 |
72 ZoneGrowableArray<AssertAssignableInstr*>* asserts_; | 72 ZoneGrowableArray<AssertAssignableInstr*>* asserts_; |
73 ZoneGrowableArray<intptr_t>* collected_asserts_; | 73 ZoneGrowableArray<intptr_t>* collected_asserts_; |
74 | 74 |
75 // RollbackEntry is used to track and rollback changed in the types_ array | 75 // RollbackEntry is used to track and rollback changed in the types_ array |
76 // done during dominator tree traversal. | 76 // done during dominator tree traversal. |
77 class RollbackEntry { | 77 class RollbackEntry { |
78 public: | 78 public: |
79 // Default constructor needed for the container. | 79 // Default constructor needed for the container. |
80 RollbackEntry() | 80 RollbackEntry() : index_(), type_() {} |
81 : index_(), type_() { | |
82 } | |
83 | 81 |
84 RollbackEntry(intptr_t index, CompileType* type) | 82 RollbackEntry(intptr_t index, CompileType* type) |
85 : index_(index), type_(type) { | 83 : index_(index), type_(type) {} |
86 } | |
87 | 84 |
88 intptr_t index() const { return index_; } | 85 intptr_t index() const { return index_; } |
89 CompileType* type() const { return type_; } | 86 CompileType* type() const { return type_; } |
90 | 87 |
91 private: | 88 private: |
92 intptr_t index_; | 89 intptr_t index_; |
93 CompileType* type_; | 90 CompileType* type_; |
94 }; | 91 }; |
95 | 92 |
96 GrowableArray<RollbackEntry> rollback_; | 93 GrowableArray<RollbackEntry> rollback_; |
97 }; | 94 }; |
98 | 95 |
99 } // namespace dart | 96 } // namespace dart |
100 | 97 |
101 #endif // RUNTIME_VM_FLOW_GRAPH_TYPE_PROPAGATOR_H_ | 98 #endif // RUNTIME_VM_FLOW_GRAPH_TYPE_PROPAGATOR_H_ |
OLD | NEW |