United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6851742 (EA) allocation elimination doesn't work with UseG1GC
JDK-6851742 : (EA) allocation elimination doesn't work with UseG1GC

Details
Type:
Bug
Submit Date:
2009-06-16
Status:
Closed
Updated Date:
2011-03-08
Project Name:
JDK
Resolved Date:
2011-03-08
Component:
hotspot
OS:
solaris_9,windows_vista,linux,windows_xp
Sub-Component:
compiler
CPU:
x86,sparc
Priority:
P3
Resolution:
Fixed
Affected Versions:
hs16,6u10,6u14,6u17
Fixed Versions:
hs16 (b07)

Related Reports
Backport:
Backport:
Duplicate:
Duplicate:
Duplicate:
Duplicate:
Relates:

Sub Tasks

Description
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 ...
Abort

                                    

Comments
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/fc4be448891f
                                     
2009-07-17
SUGGESTED FIX

Fix eliminate_card_mark() to eliminate G1 pre/post barriers.
                                     
2009-07-17
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.
                                     
2009-07-17
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/fc4be448891f
                                     
2009-07-27



Hardware and Software, Engineered to Work Together