3169 |
3169 |
3170 bool PhaseIdealLoop::verify_dominance(Node* n, Node* use, Node* LCA, Node* early) { |
3170 bool PhaseIdealLoop::verify_dominance(Node* n, Node* use, Node* LCA, Node* early) { |
3171 bool had_error = false; |
3171 bool had_error = false; |
3172 #ifdef ASSERT |
3172 #ifdef ASSERT |
3173 if (early != C->root()) { |
3173 if (early != C->root()) { |
3174 // Make sure that there's a dominance path from use to LCA |
3174 // Make sure that there's a dominance path from LCA to early |
3175 Node* d = use; |
3175 Node* d = LCA; |
3176 while (d != LCA) { |
3176 while (d != early) { |
3177 d = idom(d); |
|
3178 if (d == C->root()) { |
3177 if (d == C->root()) { |
3179 tty->print_cr("*** Use %d isn't dominated by def %s", use->_idx, n->_idx); |
3178 dump_bad_graph("Bad graph detected in compute_lca_of_uses", n, early, LCA); |
3180 n->dump(); |
3179 tty->print_cr("*** Use %d isn't dominated by def %d ***", use->_idx, n->_idx); |
3181 use->dump(); |
|
3182 had_error = true; |
3180 had_error = true; |
3183 break; |
3181 break; |
3184 } |
3182 } |
|
3183 d = idom(d); |
3185 } |
3184 } |
3186 } |
3185 } |
3187 #endif |
3186 #endif |
3188 return had_error; |
3187 return had_error; |
3189 } |
3188 } |
3432 |
3431 |
3433 if (n->req() == 2 && n->Opcode() == Op_ConvI2L && !C->major_progress() && !_verify_only) { |
3432 if (n->req() == 2 && n->Opcode() == Op_ConvI2L && !C->major_progress() && !_verify_only) { |
3434 _igvn._worklist.push(n); // Maybe we'll normalize it, if no more loops. |
3433 _igvn._worklist.push(n); // Maybe we'll normalize it, if no more loops. |
3435 } |
3434 } |
3436 |
3435 |
|
3436 #ifdef ASSERT |
|
3437 if (_verify_only && !n->is_CFG()) { |
|
3438 // Check def-use domination. |
|
3439 compute_lca_of_uses(n, get_ctrl(n), true /* verify */); |
|
3440 } |
|
3441 #endif |
|
3442 |
3437 // CFG and pinned nodes already handled |
3443 // CFG and pinned nodes already handled |
3438 if( n->in(0) ) { |
3444 if( n->in(0) ) { |
3439 if( n->in(0)->is_top() ) return; // Dead? |
3445 if( n->in(0)->is_top() ) return; // Dead? |
3440 |
3446 |
3441 // We'd like +VerifyLoopOptimizations to not believe that Mod's/Loads |
3447 // We'd like +VerifyLoopOptimizations to not believe that Mod's/Loads |