United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: 6875959 CTW fails hotspot/src/share/vm/opto/reg_split.cpp:1087
6875959 : CTW fails hotspot/src/share/vm/opto/reg_split.cpp:1087

Details
Type:
Bug
Submit Date:
2009-08-26
Status:
Closed
Updated Date:
2011-03-08
Project Name:
JDK
Resolved Date:
2011-03-08
Component:
hotspot
OS:
generic
Sub-Component:
compiler
CPU:
x86
Priority:
P4
Resolution:
Fixed
Affected Versions:
hs16
Fixed Versions:
hs17

Related Reports
Backport:
Backport:
Relates:

Sub Tasks

Description
Reproduced for both compilers.

To reproduce (linux-586, vmsqe-core2q-15.russia):

/net/vmsqe.russia/export/jdk/re/6u18/promoted/ea/b01/binaries/linux-i586/fastdebug/bin/java -server  -XX:-ShowMessageBoxOnError     -Xverify:all  -XX:+CompileTheWorld -Xbootclasspath/p:/net/vmsqe.russia/export/testbase/ctw/build/../jars/ibiblio/maven2/org/xerial/sqlite-jdbc/3.6.7/sqlite-jdbc-3.6.7.jar

 ...
CompileTheWorld (100) : org/sqlite/RS
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/reg_split.cpp:1087
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/BUILD_AREA/jdk6_18/hotspot/src/share/vm/opto/reg_split.cpp:1087), pid=24818, tid=1872792480
#  Error: assert(!n->is_SpillCopy(),"")
#
# JRE version: 6.0_18-b01
# Java VM: Java HotSpot(TM) Server VM (16.0-b08-fastdebug mixed mode linux-x86 )
# An error report file with more information is saved as:
# /tmp/hs_err_pid24818.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#
Current thread is 1872792480
Dumping core ...
Aborted

                                    

Comments
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/e90521d61f9a
                                     
2009-10-07
PUBLIC COMMENTS

Problem:
When choosing a candidate for spilling ties may happen when
live ranges defined and used only inside one block.
In which case area is 0 and score set to max for all such
live ranges. As result coloring is done in the order
of live ranges numbers. In the bug's case the spill copy
was added to break long (64 bit on 32-bit x86) mem-mem move
and because of the above it processed after bound live ranges
and there are no registers pair left for it. And when we try
to spill it we got the assert.

Solution:
To break spill ties choose bound live range over unbound
to free register or one with smaller cost to spill.
                                     
2009-10-07
PUBLIC COMMENTS

reg_split.cpp is c2 only so refiling.
                                     
2009-08-26



Hardware and Software, Engineered to Work Together