equal
deleted
inserted
replaced
103 for( i=_num_blocks; i>=2; i-- ) { // For all vertices in DFS order |
103 for( i=_num_blocks; i>=2; i-- ) { // For all vertices in DFS order |
104 Tarjan *w = &tarjan[i]; // Get vertex from DFS |
104 Tarjan *w = &tarjan[i]; // Get vertex from DFS |
105 |
105 |
106 // Step 2: |
106 // Step 2: |
107 Node *whead = w->_block->head(); |
107 Node *whead = w->_block->head(); |
108 for( uint j=1; j < whead->req(); j++ ) { |
108 for (uint j = 1; j < whead->req(); j++) { |
109 Block *b = _bbs[whead->in(j)->_idx]; |
109 Block* b = get_block_for_node(whead->in(j)); |
110 Tarjan *vx = &tarjan[b->_pre_order]; |
110 Tarjan *vx = &tarjan[b->_pre_order]; |
111 Tarjan *u = vx->EVAL(); |
111 Tarjan *u = vx->EVAL(); |
112 if( u->_semi < w->_semi ) |
112 if( u->_semi < w->_semi ) |
113 w->_semi = u->_semi; |
113 w->_semi = u->_semi; |
114 } |
114 } |