OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_COMPILER_SCHEDULE_H_ | 5 #ifndef V8_COMPILER_SCHEDULE_H_ |
6 #define V8_COMPILER_SCHEDULE_H_ | 6 #define V8_COMPILER_SCHEDULE_H_ |
7 | 7 |
8 #include <iosfwd> | 8 #include <iosfwd> |
9 | 9 |
10 #include "src/zone-containers.h" | 10 #include "src/zone-containers.h" |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 int32_t loop_depth() const { return loop_depth_; } | 131 int32_t loop_depth() const { return loop_depth_; } |
132 void set_loop_depth(int32_t loop_depth); | 132 void set_loop_depth(int32_t loop_depth); |
133 | 133 |
134 int32_t loop_number() const { return loop_number_; } | 134 int32_t loop_number() const { return loop_number_; } |
135 void set_loop_number(int32_t loop_number) { loop_number_ = loop_number; } | 135 void set_loop_number(int32_t loop_number) { loop_number_ = loop_number; } |
136 | 136 |
137 int32_t rpo_number() const { return rpo_number_; } | 137 int32_t rpo_number() const { return rpo_number_; } |
138 void set_rpo_number(int32_t rpo_number); | 138 void set_rpo_number(int32_t rpo_number); |
139 | 139 |
140 // Loop membership helpers. | 140 // Loop membership helpers. |
141 inline bool IsLoopHeader() const { return loop_end_ != NULL; } | 141 inline bool IsLoopHeader() const { return loop_end_ != nullptr; } |
142 bool LoopContains(BasicBlock* block) const; | 142 bool LoopContains(BasicBlock* block) const; |
143 | 143 |
144 // Computes the immediate common dominator of {b1} and {b2}. The worst time | 144 // Computes the immediate common dominator of {b1} and {b2}. The worst time |
145 // complexity is O(N) where N is the height of the dominator tree. | 145 // complexity is O(N) where N is the height of the dominator tree. |
146 static BasicBlock* GetCommonDominator(BasicBlock* b1, BasicBlock* b2); | 146 static BasicBlock* GetCommonDominator(BasicBlock* b1, BasicBlock* b2); |
147 | 147 |
148 private: | 148 private: |
149 int32_t loop_number_; // loop number of the block. | 149 int32_t loop_number_; // loop number of the block. |
150 int32_t rpo_number_; // special RPO number of the block. | 150 int32_t rpo_number_; // special RPO number of the block. |
151 bool deferred_; // true if the block contains deferred code. | 151 bool deferred_; // true if the block contains deferred code. |
152 int32_t dominator_depth_; // Depth within the dominator tree. | 152 int32_t dominator_depth_; // Depth within the dominator tree. |
153 BasicBlock* dominator_; // Immediate dominator of the block. | 153 BasicBlock* dominator_; // Immediate dominator of the block. |
154 BasicBlock* rpo_next_; // Link to next block in special RPO order. | 154 BasicBlock* rpo_next_; // Link to next block in special RPO order. |
155 BasicBlock* loop_header_; // Pointer to dominating loop header basic block, | 155 BasicBlock* loop_header_; // Pointer to dominating loop header basic block, |
156 // NULL if none. For loop headers, this points to | 156 // nullptr if none. For loop headers, this points to |
157 // enclosing loop header. | 157 // enclosing loop header. |
158 BasicBlock* loop_end_; // end of the loop, if this block is a loop header. | 158 BasicBlock* loop_end_; // end of the loop, if this block is a loop header. |
159 int32_t loop_depth_; // loop nesting, 0 is top-level | 159 int32_t loop_depth_; // loop nesting, 0 is top-level |
160 | 160 |
161 Control control_; // Control at the end of the block. | 161 Control control_; // Control at the end of the block. |
162 Node* control_input_; // Input value for control. | 162 Node* control_input_; // Input value for control. |
163 NodeVector nodes_; // nodes of this block in forward order. | 163 NodeVector nodes_; // nodes of this block in forward order. |
164 | 164 |
165 BasicBlockVector successors_; | 165 BasicBlockVector successors_; |
166 BasicBlockVector predecessors_; | 166 BasicBlockVector predecessors_; |
167 Id id_; | 167 Id id_; |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 DISALLOW_COPY_AND_ASSIGN(Schedule); | 271 DISALLOW_COPY_AND_ASSIGN(Schedule); |
272 }; | 272 }; |
273 | 273 |
274 std::ostream& operator<<(std::ostream&, const Schedule&); | 274 std::ostream& operator<<(std::ostream&, const Schedule&); |
275 | 275 |
276 } // namespace compiler | 276 } // namespace compiler |
277 } // namespace internal | 277 } // namespace internal |
278 } // namespace v8 | 278 } // namespace v8 |
279 | 279 |
280 #endif // V8_COMPILER_SCHEDULE_H_ | 280 #endif // V8_COMPILER_SCHEDULE_H_ |
OLD | NEW |