Mercurial > hg > truffle
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 |