607 |
607 |
608 // Return the block that follows "b" in the trace. |
608 // Return the block that follows "b" in the trace. |
609 Block * next(Block *b) const { return _next_list[b->_pre_order]; } |
609 Block * next(Block *b) const { return _next_list[b->_pre_order]; } |
610 void set_next(Block *b, Block *n) const { _next_list[b->_pre_order] = n; } |
610 void set_next(Block *b, Block *n) const { _next_list[b->_pre_order] = n; } |
611 |
611 |
612 // Return the block that preceeds "b" in the trace. |
612 // Return the block that precedes "b" in the trace. |
613 Block * prev(Block *b) const { return _prev_list[b->_pre_order]; } |
613 Block * prev(Block *b) const { return _prev_list[b->_pre_order]; } |
614 void set_prev(Block *b, Block *p) const { _prev_list[b->_pre_order] = p; } |
614 void set_prev(Block *b, Block *p) const { _prev_list[b->_pre_order] = p; } |
615 |
615 |
616 // We've discovered a loop in this trace. Reset last to be "b", and first as |
616 // We've discovered a loop in this trace. Reset last to be "b", and first as |
617 // the block following "b |
617 // the block following "b |