Index: src/compiler/schedule.h |
diff --git a/src/compiler/schedule.h b/src/compiler/schedule.h |
index 797418298788cb6c12eebf4e4d3170b2d2e3031d..b65a50719b1bdb2a03956d7e8fb4dee99cc88b46 100644 |
--- a/src/compiler/schedule.h |
+++ b/src/compiler/schedule.h |
@@ -145,18 +145,21 @@ class BasicBlock FINAL : public ZoneObject { |
bool deferred() const { return deferred_; } |
void set_deferred(bool deferred) { deferred_ = deferred; } |
+ int32_t dominator_depth() const { return dominator_depth_; } |
+ void set_dominator_depth(int32_t dominator_depth); |
+ |
BasicBlock* dominator() const { return dominator_; } |
void set_dominator(BasicBlock* dominator); |
BasicBlock* loop_header() const { return loop_header_; } |
void set_loop_header(BasicBlock* loop_header); |
+ BasicBlock* loop_end() const { return loop_end_; } |
+ void set_loop_end(BasicBlock* loop_end); |
+ |
int32_t loop_depth() const { return loop_depth_; } |
void set_loop_depth(int32_t loop_depth); |
- int32_t loop_end() const { return loop_end_; } |
- void set_loop_end(int32_t loop_end); |
- |
RpoNumber GetAoNumber() const { return RpoNumber::FromInt(ao_number_); } |
int32_t ao_number() const { return ao_number_; } |
void set_ao_number(int32_t ao_number) { ao_number_ = ao_number; } |
@@ -166,19 +169,20 @@ class BasicBlock FINAL : public ZoneObject { |
void set_rpo_number(int32_t rpo_number); |
// Loop membership helpers. |
- inline bool IsLoopHeader() const { return loop_end_ >= 0; } |
+ inline bool IsLoopHeader() const { return loop_end_ != NULL; } |
bool LoopContains(BasicBlock* block) const; |
private: |
int32_t ao_number_; // assembly order number of the block. |
int32_t rpo_number_; // special RPO number of the block. |
bool deferred_; // true if the block contains deferred code. |
+ int32_t dominator_depth_; // Depth within the dominator tree. |
BasicBlock* dominator_; // Immediate dominator of the block. |
BasicBlock* loop_header_; // Pointer to dominating loop header basic block, |
// NULL if none. For loop headers, this points to |
// enclosing loop header. |
+ BasicBlock* loop_end_; // end of the loop, if this block is a loop header. |
int32_t loop_depth_; // loop nesting, 0 is top-level |
- int32_t loop_end_; // end of the loop, if this block is a loop header. |
Control control_; // Control at the end of the block. |
Node* control_input_; // Input value for control. |