United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-7064302 JDK7 build 147 crashed after testing my java 6-compiled web app
JDK-7064302 : JDK7 build 147 crashed after testing my java 6-compiled web app

Details
Type:
Bug
Submit Date:
2011-07-08
Status:
Closed
Updated Date:
2012-03-29
Project Name:
JDK
Resolved Date:
2012-03-29
Component:
hotspot
OS:
windows_7
Sub-Component:
compiler
CPU:
x86
Priority:
P4
Resolution:
Fixed
Affected Versions:
7
Fixed Versions:
hs23 (b10)

Related Reports
Backport:
Backport:
Duplicate:

Sub Tasks

Description
FULL PRODUCT VERSION :
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)

ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [version 6.1.7600]

EXTRA RELEVANT SYSTEM CONFIGURATION :
Recent system with all drivers up to date

A DESCRIPTION OF THE PROBLEM :
. in Tomcat 7.0.16 (the latest at this date)
. many libraries

REGRESSION.  Last worked in version 6u26

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
I couldn't create a simple unit test that crashes (trust me I tried),
but it always happens at the end of my server init, when I use the jregex library. It's the compiler that crashes.
The crash log gives me:

Current CompileTask:
C2:  26483 1219             jregex.Pretokenizer::next (1073 bytes)



ERROR MESSAGES/STACK TRACES THAT OCCUR :
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000005e7a05cf, pid=5756, tid=7880
#
# JRE version: 7.0-b147
# Java VM: Java HotSpot(TM) 64-Bit Server VM (21.0-b17 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# V  [jvm.dll+0x3e05cf]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
#

---------------  T H R E A D  ---------------

Current thread (0x0000000006cc9000):  JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=7880, stack(0x00000000079d0000,0x0000000007ad0000)]

siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000008

Registers:
RAX=0x0000000000000000, RBX=0x0000000007accdf0, RCX=0x00000000095d4950, RDX=0x0000000000000000
RSP=0x0000000007acbfa0, RBP=0x0000000007acc150, RSI=0x0000000008b03450, RDI=0x0000000000000000
R8 =0x000000000fba3f10, R9 =0x0000000000002000, R10=0x000000000fbb7980, R11=0x0000000000000000
R12=0x000000000914ca58, R13=0x0000000008ebe550, R14=0x0000000007acc070, R15=0x0000000007acc090
RIP=0x000000005e7a05cf, EFLAGS=0x0000000000010287

  Top of Stack: (sp=0x0000000007acbfa0)
0x0000000007acbfa0:   0000000007accdf0 000000000914ca58
0x0000000007acbfb0:   000000000f9bfa50 0000000000000000
0x0000000007acbfc0:   000000000914ca58 0000000000000002
0x0000000007acbfd0:   0000000008ec3b60 000000005e7a1079
0x0000000007acbfe0:   0000000007acc150 00000000000000cc
0x0000000007acbff0:   0000000007acc0d8 0000000007acc150
0x0000000007acc000:   0000000000000020 0000000008ec5ad8
0x0000000007acc010:   0000000000000000 000000000000a630
0x0000000007acc020:   0000000009f118d0 0000000007acc150
0x0000000007acc030:   0000000006cbfa40 0000000000000002
0x0000000007acc040:   0000000007accdf0 000000005e7a31a7
0x0000000007acc050:   0000000007accdf0 0000000000000001
0x0000000007acc060:   0000000000000002 0000000007acc0d8
0x0000000007acc070:   0000000006cbfa40 0000000000000100
0x0000000007acc080:   000000000827cdf0 00000000000000cd
0x0000000007acc090:   000000005e8fd478 0000000006cbfa40

Instructions: (pc=0x000000005e7a05cf)
0x000000005e7a05af:   48 3b f0 0f 84 78 01 00 00 44 8b 4b 28 0f 1f 40
0x000000005e7a05bf:   00 41 8b 53 28 4c 8b 83 e0 09 00 00 4d 8b 1c d0
0x000000005e7a05cf:   49 8b 43 08 48 39 38 75 2d 0f 1f 84 00 00 00 00
0x000000005e7a05df:   00 41 8b 43 28 41 3b c1 73 0c 8b c8 48 8b 43 30


Register to memory mapping:

RAX=0x0000000000000000 is an unknown value
RBX=0x0000000007accdf0 is pointing into the stack for thread: 0x0000000006cc9000
RCX=0x00000000095d4950 is an unknown value
RDX=0x0000000000000000 is an unknown value
RSP=0x0000000007acbfa0 is pointing into the stack for thread: 0x0000000006cc9000
RBP=0x0000000007acc150 is pointing into the stack for thread: 0x0000000006cc9000
RSI=0x0000000008b03450 is an unknown value
RDI=0x0000000000000000 is an unknown value
R8 =0x000000000fba3f10 is an unknown value
R9 =0x0000000000002000 is an unknown value
R10=0x000000000fbb7980 is an unknown value
R11=0x0000000000000000 is an unknown value
R12=0x000000000914ca58 is an unknown value
R13=0x0000000008ebe550 is an unknown value
R14=0x0000000007acc070 is pointing into the stack for thread: 0x0000000006cc9000
R15=0x0000000007acc090 is pointing into the stack for thread: 0x0000000006cc9000


Stack: [0x00000000079d0000,0x0000000007ad0000],  sp=0x0000000007acbfa0,  free space=1007k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [jvm.dll+0x3e05cf]


Current CompileTask:
C2:  26483 1219             jregex.Pretokenizer::next (1073 bytes)


---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x000000000889f000 JavaThread "Scheduler Timer" daemon [_thread_blocked, id=9180, stack(0x0000000011bd0000,0x0000000011cd0000)]
  0x0000000008ed6000 JavaThread "MongoCleaner5239724" daemon [_thread_blocked, id=4308, stack(0x0000000010590000,0x0000000010690000)]
  0x0000000008ed5800 JavaThread "ReplicaSetStatus:Updater" daemon [_thread_blocked, id=7652, stack(0x000000000fef0000,0x000000000fff0000)]
  0x0000000008ed3000 JavaThread "net.sf.ehcache.CacheManager@4012a6de" daemon [_thread_blocked, id=7860, stack(0x00000000101b0000,0x00000000102b0000)]
  0x0000000008ed4800 JavaThread "Thread-40" daemon [_thread_blocked, id=8612, stack(0x0000000010380000,0x0000000010480000)]
  0x0000000008ed4000 JavaThread "Thread-39" daemon [_thread_in_Java, id=5444, stack(0x000000000edc0000,0x000000000eec0000)]
  0x0000000008ed2800 JavaThread ""http-apr-8080"-exec-10" daemon [_thread_blocked, id=3456, stack(0x000000000dc90000,0x000000000dd90000)]
  0x0000000008ed2000 JavaThread ""http-apr-8080"-exec-9" daemon [_thread_blocked, id=8132, stack(0x000000000ec60000,0x000000000ed60000)]
  0x0000000008ed1000 JavaThread ""http-apr-8080"-exec-8" daemon [_thread_blocked, id=8600, stack(0x000000000eb10000,0x000000000ec10000)]
  0x0000000008ed0800 JavaThread ""http-apr-8080"-exec-7" daemon [_thread_blocked, id=8076, stack(0x000000000e8d0000,0x000000000e9d0000)]
  0x0000000008ecf800 JavaThread ""http-apr-8080"-exec-6" daemon [_thread_blocked, id=8896, stack(0x000000000e770000,0x000000000e870000)]
  0x0000000008ecf000 JavaThread ""http-apr-8080"-exec-5" daemon [_thread_blocked, id=8692, stack(0x000000000e670000,0x000000000e770000)]
  0x0000000008ece000 JavaThread ""http-apr-8080"-exec-4" daemon [_thread_blocked, id=3140, stack(0x000000000dea0000,0x000000000dfa0000)]
  0x0000000008ecd800 JavaThread ""http-apr-8080"-exec-3" daemon [_thread_blocked, id=8628, stack(0x000000000d8e0000,0x000000000d9e0000)]
  0x0000000008ecc800 JavaThread ""ajp-apr-8009"-AsyncTimeout" daemon [_thread_blocked, id=4124, stack(0x000000000e510000,0x000000000e610000)]
  0x0000000008ecc000 JavaThread ""ajp-apr-8009"-Acceptor-0" daemon [_thread_in_native, id=3524, stack(0x000000000e340000,0x000000000e440000)]
  0x0000000008ecb800 JavaThread ""ajp-apr-8009"-CometPoller-7" daemon [_thread_blocked, id=2768, stack(0x000000000e120000,0x000000000e220000)]
  0x0000000008eca800 JavaThread ""ajp-apr-8009"-CometPoller-6" daemon [_thread_blocked, id=8328, stack(0x000000000dfb0000,0x000000000e0b0000)]
  0x0000000008eca000 JavaThread ""ajp-apr-8009"-CometPoller-5" daemon [_thread_blocked, id=8728, stack(0x000000000dda0000,0x000000000dea0000)]
  0x0000000008ec9000 JavaThread ""ajp-apr-8009"-CometPoller-4" daemon [_thread_blocked, id=4036, stack(0x000000000db90000,0x000000000dc90000)]
  0x0000000008ec8800 JavaThread ""ajp-apr-8009"-CometPoller-3" daemon [_thread_blocked, id=6992, stack(0x000000000b810000,0x000000000b910000)]
  0x0000000008ec7800 JavaThread ""ajp-apr-8009"-CometPoller-2" daemon [_thread_blocked, id=7632, stack(0x000000000da20000,0x000000000db20000)]
  0x0000000009143000 JavaThread ""ajp-apr-8009"-CometPoller-1" daemon [_thread_blocked, id=2844, stack(0x000000000d7e0000,0x000000000d8e0000)]
  0x0000000009142800 JavaThread ""ajp-apr-8009"-CometPoller-0" daemon [_thread_blocked, id=3436, stack(0x000000000d6b0000,0x000000000d7b0000)]
  0x0000000009142000 JavaThread ""ajp-apr-8009"-Poller-7" daemon [_thread_blocked, id=8776, stack(0x000000000d330000,0x000000000d430000)]
  0x0000000009141000 JavaThread ""ajp-apr-8009"-Poller-6" daemon [_thread_blocked, id=2140, stack(0x000000000d490000,0x000000000d590000)]
  0x0000000009140800 JavaThread ""ajp-apr-8009"-Poller-5" daemon [_thread_blocked, id=2304, stack(0x000000000d1f0000,0x000000000d2f0000)]
  0x000000000913f800 JavaThread ""ajp-apr-8009"-Poller-4" daemon [_thread_blocked, id=8892, stack(0x000000000d010000,0x000000000d110000)]
  0x000000000913f000 JavaThread ""ajp-apr-8009"-Poller-3" daemon [_thread_blocked, id=7152, stack(0x000000000cbc0000,0x000000000ccc0000)]
  0x000000000913e000 JavaThread ""ajp-apr-8009"-Poller-2" daemon [_thread_blocked, id=6768, stack(0x000000000ced0000,0x000000000cfd0000)]
  0x000000000913d800 JavaThread ""ajp-apr-8009"-Poller-1" daemon [_thread_blocked, id=6428, stack(0x000000000ccd0000,0x000000000cdd0000)]
  0x000000000913c800 JavaThread ""ajp-apr-8009"-Poller-0" daemon [_thread_blocked, id=4148, stack(0x000000000c930000,0x000000000ca30000)]
  0x000000000913c000 JavaThread ""http-apr-8080"-exec-2" daemon [_thread_blocked, id=8808, stack(0x000000000cac0000,0x000000000cbc0000)]
  0x000000000913b800 JavaThread ""http-apr-8080"-exec-1" daemon [_thread_blocked, id=4092, stack(0x000000000c6c0000,0x000000000c7c0000)]
  0x000000000913a800 JavaThread ""http-apr-8080"-AsyncTimeout" daemon [_thread_blocked, id=7376, stack(0x000000000c810000,0x000000000c910000)]
  0x000000000913a000 JavaThread ""http-apr-8080"-Acceptor-0" daemon [_thread_in_native, id=7160, stack(0x000000000c5a0000,0x000000000c6a0000)]
  0x0000000009139000 JavaThread ""http-apr-8080"-Sendfile-0" daemon [_thread_blocked, id=1892, stack(0x000000000c440000,0x000000000c540000)]
  0x0000000009138800 JavaThread ""http-apr-8080"-CometPoller-7" daemon [_thread_blocked, id=7900, stack(0x000000000c2a0000,0x000000000c3a0000)]
  0x0000000009137800 JavaThread ""http-apr-8080"-CometPoller-6" daemon [_thread_blocked, id=8348, stack(0x000000000c0e0000,0x000000000c1e0000)]
  0x0000000009137000 JavaThread ""http-apr-8080"-CometPoller-5" daemon [_thread_blocked, id=7544, stack(0x000000000be20000,0x000000000bf20000)]
  0x0000000009136000 JavaThread ""http-apr-8080"-CometPoller-4" daemon [_thread_blocked, id=8744, stack(0x000000000bfd0000,0x000000000c0d0000)]
  0x0000000009135800 JavaThread ""http-apr-8080"-CometPoller-3" daemon [_thread_blocked, id=3916, stack(0x000000000b910000,0x000000000ba10000)]
  0x0000000009135000 JavaThread ""http-apr-8080"-CometPoller-2" daemon [_thread_blocked, id=8648, stack(0x000000000b390000,0x000000000b490000)]
  0x0000000009134000 JavaThread ""http-apr-8080"-CometPoller-1" daemon [_thread_blocked, id=2236, stack(0x000000000b700000,0x000000000b800000)]
  0x00000000089e4000 JavaThread ""http-apr-8080"-CometPoller-0" daemon [_thread_blocked, id=5024, stack(0x000000000b5a0000,0x000000000b6a0000)]
  0x0000000008e73800 JavaThread ""http-apr-8080"-Poller-7" daemon [_thread_blocked, id=6400, stack(0x000000000b0f0000,0x000000000b1f0000)]
  0x0000000008e72800 JavaThread ""http-apr-8080"-Poller-6" daemon [_thread_blocked, id=6140, stack(0x000000000b490000,0x000000000b590000)]
  0x000000000919d000 JavaThread ""http-apr-8080"-Poller-5" daemon [_thread_blocked, id=2368, stack(0x000000000a800000,0x000000000a900000)]
  0x0000000008c5b800 JavaThread ""http-apr-8080"-Poller-4" daemon [_thread_blocked, id=6684, stack(0x000000000b200000,0x000000000b300000)]
  0x0000000008eb1800 JavaThread ""http-apr-8080"-Poller-3" daemon [_thread_blocked, id=8028, stack(0x000000000afc0000,0x000000000b0c0000)]
  0x0000000008d03800 JavaThread ""http-apr-8080"-Poller-2" daemon [_thread_blocked, id=7468, stack(0x000000000a390000,0x000000000a490000)]
  0x0000000008ba1000 JavaThread ""http-apr-8080"-Poller-1" daemon [_thread_blocked, id=8932, stack(0x000000000ae40000,0x000000000af40000)]
  0x0000000008236800 JavaThread ""http-apr-8080"-Poller-0" daemon [_thread_blocked, id=9060, stack(0x000000000aaf0000,0x000000000abf0000)]
  0x0000000008b4a800 JavaThread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" daemon [_thread_blocked, id=4848, stack(0x000000000a900000,0x000000000aa00000)]
  0x0000000008a8f000 JavaThread "GC Daemon" daemon [_thread_blocked, id=6972, stack(0x0000000008670000,0x0000000008770000)]
  0x0000000006ce2000 JavaThread "Service Thread" daemon [_thread_blocked, id=5296, stack(0x0000000007d30000,0x0000000007e30000)]
  0x0000000006cdd800 JavaThread "C2 CompilerThread1" daemon [_thread_in_native, id=9000, stack(0x0000000007be0000,0x0000000007ce0000)]
=>0x0000000006cc9000 JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=7880, stack(0x00000000079d0000,0x0000000007ad0000)]
  0x0000000006cc8000 JavaThread "Attach Listener" daemon [_thread_blocked, id=8992, stack(0x00000000075f0000,0x00000000076f0000)]
  0x0000000006cc7800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=6220, stack(0x0000000007860000,0x0000000007960000)]
  0x0000000006c42000 JavaThread "Finalizer" daemon [_thread_blocked, id=9200, stack(0x00000000076f0000,0x00000000077f0000)]
  0x0000000006c39800 JavaThread "Reference Handler" daemon [_thread_blocked, id=8384, stack(0x0000000007420000,0x0000000007520000)]
  0x000000000061c800 JavaThread "main" [_thread_in_native, id=948, stack(0x00000000026a0000,0x00000000027a0000)]

Other Threads:
  0x0000000006c30800 VMThread [stack: 0x0000000007310000,0x0000000007410000] [id=1880]
  0x0000000006cf7000 WatcherThread [stack: 0x0000000007e60000,0x0000000007f60000] [id=4676]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
 PSYoungGen      total 396352K, used 306404K [0x00000000e0000000, 0x0000000100000000, 0x0000000100000000)
  eden space 374272K, 81% used [0x00000000e0000000,0x00000000f2b391b0,0x00000000f6d80000)
  from space 22080K, 0% used [0x00000000f6d80000,0x00000000f6d80000,0x00000000f8310000)
  to   space 31104K, 0% used [0x00000000fe1a0000,0x00000000fe1a0000,0x0000000100000000)
 PSOldGen        total 91200K, used 41857K [0x00000000a0000000, 0x00000000a5910000, 0x00000000e0000000)
  object space 91200K, 45% used [0x00000000a0000000,0x00000000a28e0778,0x00000000a5910000)
 PSPermGen       total 41408K, used 27370K [0x000000009ae00000, 0x000000009d670000, 0x00000000a0000000)
  object space 41408K, 66% used [0x000000009ae00000,0x000000009c8babe8,0x000000009d670000)

Code Cache  [0x00000000027a0000, 0x0000000002b80000, 0x00000000057a0000)
 total_blobs=1486 nmethods=1121 adapters=315 free_code_cache=45323Kb largest_free_block=46323776

Dynamic libraries:
0x000000013f120000 - 0x000000013f153000 	C:\Program Files\Java\jdk1.7.0\bin\java.exe
0x0000000077490000 - 0x000000007763c000 	C:\Windows\SYSTEM32\ntdll.dll
0x0000000077370000 - 0x000000007748f000 	C:\Windows\system32\kernel32.dll
0x000007fefd750000 - 0x000007fefd7bb000 	C:\Windows\system32\KERNELBASE.dll
0x0000000064d00000 - 0x0000000064d3f000 	C:\Program Files\Alwil Software\Avast5\snxhk64.dll
0x000007feff6c0000 - 0x000007feff79b000 	C:\Windows\system32\ADVAPI32.dll
0x000007fefd7c0000 - 0x000007fefd85f000 	C:\Windows\system32\msvcrt.dll
0x000007fefe230000 - 0x000007fefe24f000 	C:\Windows\SYSTEM32\sechost.dll
0x000007fefdca0000 - 0x000007fefddce000 	C:\Windows\system32\RPCRT4.dll
0x0000000077270000 - 0x000000007736a000 	C:\Windows\system32\USER32.dll
0x000007fefdae0000 - 0x000007fefdb47000 	C:\Windows\system32\GDI32.dll
0x000007fefdb80000 - 0x000007fefdb8e000 	C:\Windows\system32\LPK.dll
0x000007fefdfe0000 - 0x000007fefe0aa000 	C:\Windows\system32\USP10.dll
0x000007fefbe30000 - 0x000007fefc024000 	C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7600.16661_none_fa62ad231704eab7\COMCTL32.dll
0x000007feff640000 - 0x000007feff6b1000 	C:\Windows\system32\SHLWAPI.dll
0x000007fefdb50000 - 0x000007fefdb7e000 	C:\Windows\system32\IMM32.DLL
0x000007fefdb90000 - 0x000007fefdc99000 	C:\Windows\system32\MSCTF.dll
0x000000006ce10000 - 0x000000006cee1000 	C:\Program File


( This report has more than 16,000 characters and has been truncated. )

                                    

Comments
PUBLIC COMMENTS

Try to run with next flags:

 -XX:-UseLoopPredicate -XX:-LoopLimitCheck
                                     
2011-07-20
EVALUATION

This problem is likely caused by one of a few loop optimization bugs which have been fixed in JDK 7u1.  Changing the status to "Incomplete" while waiting for verification that this problem is fixed in JDK 7u1, which is available at http://www.oracle.com/technetwork/java/javase/downloads/index.html
                                     
2011-10-21
EVALUATION

The submitter reported that the problem still occurs when using 7u2.  An hs_err file is attached.
                                     
2011-12-30
EVALUATION

Incorrect split if of CMoveP[3907] node which has different control from split region. As result 2 clones of CMoveP [4158] and [4157] were NOT placed on input paths of split region but were placed after it creating bad graph:

Bad graph detected in build_loop_late
n:  1472	Bool	=== _  1471  [[ 2294  4158 ]] [ne] !jvms: CharacterData::of @ bci:4 Character::isWhitespace @ bci:1 Character::isWhitespace @ bci:1 Pretokenizer::next @ bci:681

early(n):  3265	CountedLoop	===  3265  3992  1431  [[ 3265  3186  3227  3222  3221  3220 ]] inner stride: 1 main of N3265 !orig=[3194],[3149]

n->in(1):  1471	CmpI	=== _  1470  22  [[ 1472 ]]  !jvms: CharacterData::of @ bci:4 Character::isWhitespace @ bci:1 Character::isWhitespace @ bci:1 Pretokenizer::next @ bci:681

early(n->in(1)):  3265	CountedLoop	===  3265  3992  1431  [[ 3265  3186  3227  3222  3221  3220 ]] inner stride: 1 main of N3265 !orig=[3194],[3149]

n->in(1)->in(1):  1470	URShiftI	=== _  1424  1058  [[ 1471 ]]  !jvms: CharacterData::of @ bci:3 Character::isWhitespace @ bci:1 Character::isWhitespace @ bci:1 Pretokenizer::next @ bci:681

early(n->in(1)->in(1)):  3265	CountedLoop	===  3265  3992  1431  [[ 3265  3186  3227  3222  3221  3220 ]] inner stride: 1 main of N3265 !orig=[3194],[3149]

n->in(1)->in(2):  22	ConI	===  0  [[ 84  31  167  88  986  1245  234  268  167  1471  324  246  167  1631  1597  1661  1775  1823  2030  123  167  74  61  167  167  3162  3838  3919  4023  4197  4277  4343 ]]  #int:0

early(n->in(1)->in(2)):  0	Root	===  0  65  78  110  127  238  250  272  341  366  2174  655  667  2151  966  2173  1123  1165  1201  1284  1327  2145  2101  1412  1439  1503  1543  1601  1627  1685  1697  1720  1747  1854  1894  2061  1998  1971  [[ 0  1  3  21  22  25  29  32  35  53  60  73  97  105  112  122  134  150  168  177  192  201  295  336  342  2132  1337  380  382  1335  419  421  423  1315  437  439  442  697  699  1309  716  984  1009  2146  1051  1055  1058  1061  1279  1270  1092  1109  1124  1127  1132  1135  1138  1178  1253  1254  1263  1262  2192  2205  2226  2247  2272  2281  2349  2886  3237  3240  3250  3253  4001  4097 ]] 


LCA(n):  3987	IfFalse	===  3947  [[ 3991 ]] #0

n->out(0):  2294	CMoveP	===  1431  1472  1257  1266  [[ 1488  1488  3221 ]]  #java/lang/CharacterData:NotNull *  Oop:java/lang/CharacterData:NotNull * !orig=[1466] !jvms: Character::isWhitespace @ bci:1 Character::isWhitespace @ bci:1 Pretokenizer::next @ bci:681
later(n->out(0)):  1431	IfTrue	===  3264  [[ 3265  2294 ]] #1 !jvms: Pretokenizer::next @ bci:703
n->out(0)->in(0):  1431	IfTrue	===  3264  [[ 3265  2294 ]] #1 !jvms: Pretokenizer::next @ bci:703

n->out(1):  4158	CMoveP	===  3906  1472  1257  1266  [[ 4156 ]]  #java/lang/CharacterData:NotNull *  Oop:java/lang/CharacterData:NotNull * !orig=[3907],2294,[1466] !jvms: Character::isWhitespace @ bci:1 Character::isWhitespace @ bci:1 Pretokenizer::next @ bci:681
later(n->out(1)):  3906	IfTrue	===  3905  [[ 3868  4158  4157 ]] #1
n->out(1)->in(0):  3906	IfTrue	===  3905  [[ 3868  4158  4157 ]] #1


idom[0]  3987	IfFalse	===  3947  [[ 3991 ]] #0

idom[1]  3947	CountedLoopEnd	===  3946  3998  [[ 3948  3987 ]] [lt] P=0.900000, C=-1.000000 !orig=3264,[1430] !jvms: Pretokenizer::next @ bci:703

idom[2]  3946	IfTrue	===  3945  [[ 3925  3947 ]] #1 !orig=[1406],[1426] !jvms: Pretokenizer::next @ bci:694

idom[3]  3945	If	===  3944  3922  [[ 3946  3963 ]] P=0.999999, C=-1.000000 !orig=[1405] !jvms: Pretokenizer::next @ bci:694

idom[4]  3944	IfFalse	===  3943  [[ 3945 ]] #0 !orig=3191,1556,[2243] !jvms: CharacterDataLatin1::isWhitespace @ bci:14 Character::isWhitespace @ bci:5 Character::isWhitespace @ bci:1 Pretokenizer::next @ bci:681

idom[5]  3943	If	===  3942  3910  [[ 3944  3961 ]] P=1.000000, C=6854.000000 !orig=3190,1554 !jvms: CharacterDataLatin1::isWhitespace @ bci:14 Character::isWhitespace @ bci:5 Character::isWhitespace @ bci:1 Pretokenizer::next @ bci:681

idom[6]  3942	IfTrue	===  3941  [[ 3913  3943 ]] #1 !orig=3189,1537 !jvms: CharacterDataLatin1::getProperties @ bci:7 CharacterDataLatin1::isWhitespace @ bci:2 Character::isWhitespace @ bci:5 Character::isWhitespace @ bci:1 Pretokenizer::next @ bci:681

idom[7]  3941	If	===  3940  3935  [[ 3942  3959 ]] P=0.999999, C=-1.000000 !orig=3188,1536 !jvms: CharacterDataLatin1::getProperties @ bci:7 CharacterDataLatin1::isWhitespace @ bci:2 Character::isWhitespace @ bci:5 Character::isWhitespace @ bci:1 Pretokenizer::next @ bci:681

idom[8]  3940	IfFalse	===  3939  [[ 3941 ]] #0 !orig=3187,2250,[1494] !jvms: Character::isWhitespace @ bci:5 Character::isWhitespace @ bci:1 Pretokenizer::next @ bci:681

idom[9]  3939	If	===  3949  3937  [[ 3940  3957 ]] P=0.000001, C=-1.000000 !orig=3186,[2249],[1493] !jvms: Character::isWhitespace @ bci:5 Character::isWhitespace @ bci:1 Pretokenizer::next @ bci:681

idom[10]  3949	CountedLoop	===  3949  3185  3948  [[ 3939  3949  3951  3952  3954  3956 ]] inner stride: 1 pre of N3265 !orig=3265,[3194],[3149]

idom[11]  3185	IfTrue	===  3184  [[ 3160  3949 ]] #1 !orig=1431 !jvms: Pretokenizer::next @ bci:703

idom[12]  3184	If	===  1342  3163  [[ 3185  3197 ]] P=0.999999, C=-1.000000 !orig=[1430] !jvms: Pretokenizer::next @ bci:703

idom[13]  1342	IfFalse	===  1340  [[ 3184 ]] #0 !orig=[2268] !jvms: CharacterDataLatin1::isWhitespace @ bci:14 Character::isWhitespace @ bci:5 Character::isWhitespace @ bci:1 Pretokenizer::next @ bci:681

idom[14]  1340	If	===  1321  1339  [[ 1341  1342 ]] P=1.000000, C=6854.000000 !jvms: CharacterDataLatin1::isWhitespace @ bci:14 Character::isWhitespace @ bci:5 Character::isWhitespace @ bci:1 Pretokenizer::next @ bci:681
                                     
2012-01-12
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/c8d8e124380c
                                     
2012-01-12
EVALUATION

Very rare case when CMoveP control edge is CountedLoop back control. During loop iteration splitting CMoveP clone is placed on entry path of post-loop. Later when pre-loop is created clone_loop() code pulls Bool and Cmp nodes through Phi down to CMoveP clone. Note that Phi's region is above CMoveP clone's control which is fallthrough path of post-loop's zero-trip guard.

Split through Phi optimization tries to reverse this merged subgraph and incorrectly splits this CMoveP node. As result 2 clones of CMoveP were placed at the same place as original node. It creates bad graph.

The fix itself is very small: don't split CMove node if it's control edge is different from split region. Large part of changes is additional debug output in build_loop_late_post() where bad graph is detected. It helped me investigate this problem.
                                     
2012-01-12
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-rt/hotspot/rev/c8d8e124380c
                                     
2012-01-18
EVALUATION

http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/c8d8e124380c
                                     
2012-03-22



Hardware and Software, Engineered to Work Together