JDK-6851742 : (EA) allocation elimination doesn't work with UseG1GC
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs16,6u10,6u14,6u17
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS:
    linux,solaris_9,windows_xp,windows_vista linux,solaris_9,windows_xp,windows_vista
  • CPU: x86,sparc
  • Submitted: 2009-06-16
  • Updated: 2011-03-08
  • Resolved: 2011-03-08
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7 Other
6u18Fixed 7Fixed hs16Fixed
Related Reports
Duplicate :  
Duplicate :  
Duplicate :  
Duplicate :  
Relates :  
java -server -XX:+DoEscapeAnalysis -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -Xcomp foo
VM option '+DoEscapeAnalysis'
VM option '+UnlockExperimentalVMOptions'
VM option '+UseG1GC'
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/node.hpp:351
# A fatal error has been detected by the Java Runtime Environment:
#  Internal Error (/BUILD_AREA/jdk7/hotspot/src/share/vm/opto/node.hpp:351), pid=26731, tid=1097541968
#  Error: assert(_outcnt==1,"not unique")
# JRE version: 7.0-b60
# Java VM: Java HotSpot(TM) 64-Bit Server VM (16.0-b03-fastdebug compiled mode linux-amd64 )
# An error report file with more information is saved as:
# /home/never/hs_err_pid26731.log
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
Current thread is 1097541968
Dumping core ...

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/fc4be448891f

SUGGESTED FIX Fix eliminate_card_mark() to eliminate G1 pre/post barriers.

PUBLIC COMMENTS 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 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.

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/fc4be448891f