comparison src/share/vm/opto/ifnode.cpp @ 851:fc4be448891f

6851742: (EA) allocation elimination doesn't work with UseG1GC Summary: Fix eliminate_card_mark() to eliminate G1 pre/post barriers. Reviewed-by: never
author kvn
date Thu, 16 Jul 2009 14:10:42 -0700
parents 98cb887364d3
children 89e0543e1737 ce590301ae2a
comparison
equal deleted inserted replaced
850:fd50a67f97d1 851:fc4be448891f
376 igvn->remove_dead_node(p); 376 igvn->remove_dead_node(p);
377 } 377 }
378 378
379 // Force the original merge dead 379 // Force the original merge dead
380 igvn->hash_delete(r); 380 igvn->hash_delete(r);
381 r->set_req_X(0,NULL,igvn); 381 // First, remove region's dead users.
382 for (DUIterator_Last lmin, l = r->last_outs(lmin); l >= lmin;) {
383 Node* u = r->last_out(l);
384 if( u == r ) {
385 r->set_req(0, NULL);
386 } else {
387 assert(u->outcnt() == 0, "only dead users");
388 igvn->remove_dead_node(u);
389 }
390 l -= 1;
391 }
392 igvn->remove_dead_node(r);
382 393
383 // Now remove the bogus extra edges used to keep things alive 394 // Now remove the bogus extra edges used to keep things alive
384 igvn->remove_dead_node( hook ); 395 igvn->remove_dead_node( hook );
385 396
386 // Must return either the original node (now dead) or a new node 397 // Must return either the original node (now dead) or a new node