Requestfor reviews (L) (updated) : 6851742: (EA) allocation elimination doesn't work with UseG1GC
Vladimir Kozlov
Vladimir.Kozlov at Sun.COM
Tue Jul 14 17:10:19 PDT 2009
After discussion with Tom I removed implementation of StoreOop node
and used local elimination of G1 pre/post barriers in eliminate_card_mark().
http://cr.openjdk.java.net/~kvn/6851742/webrev.04
Fixed 6851742: (EA) allocation elimination doesn't work with UseG1GC
Problem:
EA expects only card mark store after oop store but
barriers for G1 are much more complex.
Solution:
- Fix eliminate_card_mark() to eliminate of G1 pre/post barriers.
- Used idealKit for write_barrier_post() method and moved it down
in the file. Renamed some variables to distinguish them from
methods names.
- Check IGVN delay_transform flag in IdealKit when setting bottom_type
for new nodes.
- Don't clone memory around leaf call in IdealKit since it modifies
only raw memory.
- Explicitly remove the original merge region in IfNode split_if()
otherwise it will not be removed if it has dead users and
it will cause unique_ctrl_out() to return an incorrect result.
- Fix IdealKit code in LibraryCallKit::inline_unsafe_access()
which produced incorrect graph.
- Fix EA to not generated duplicated Phi nodes for the same
memory slice in ConnectionGraph::create_split_phi().
- Fix MachNode::adr_type for direct addressing modes to use
ideal type if it is ptr. And remove rawptr cutout in
mach node adr type verification code.
Reviewed by: never
Fix verified (y/n): y, bug's test
Other testing:
JPRT, CTW +G1 +EA 32-bit 64-bit
More information about the hotspot-compiler-dev
mailing list