| 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 |