EA push progress
Vladimir.Kozlov at Sun.COM
Tue Mar 11 21:58:27 PDT 2008
My investigation shows that 6672848 changes will not work
with current EA code since it is broken: it returns incorrect
escape state and it does not push Lock and Unlock nodes
on IGVN worklist. As result Locks and Unlocks could be processed
in IGVN during different passes and EA information only available
during first IGVN optimization pass (when the ideal graph was not
modified by "loop" optimizations). So we have Locks which marked
as possible to eliminate and Unlocks which are not (and opposite).
It seems, these changes have to wait until I fix EA.
Vladimir Kozlov wrote:
> Chuck reviewed all my changes I already pushed and 6667620.
> Tom reviewed 6667615, 6667620, 6672848.
> I was able to push 6667620. And I hope to push 6667615
> which is in the queue now.
> 6672848 changes causes deoptimization problem with current
> escape analysis code (jprt test run with -XX:+DoEscapeAnalysis).
> I may be missing some changes from my EA workspace for it to work.
> So I need more time to investigate it.
> Note, previous changeset 6667615 works fine with -XX:+DoEscapeAnalysis
> and I am trying to keep such compatibility with old EA code
> until I change it.
> # An unexpected error has been detected by Java Runtime Environment:
> # Internal Error (synchronizer.cpp:1803), pid=18510, tid=19
> # Error: guarantee(mid->header()->is_neutral(),"invariant")
> # Java VM: OpenJDK 64-Bit Server VM
> (12.0-b01-2008-03-12-005700.kvn.6667615 compiled mode solaris-amd64)
> # If you would like to submit a bug report, please visit:
> # http://java.sun.com/webapps/bugreport/crash.jsp
> --------------- T H R E A D ---------------
> Current thread (0x0000000000707c00): VMThread [stack:
> 0xfffffd7dfac5d000,0xfffffd7dfad5d000] [id=19]
> Stack: [0xfffffd7dfac5d000,0xfffffd7dfad5d000], sp=0xfffffd7dfad5c2a0,
> free space=1020k
> Native frames: (J=compiled Java code, j=interpreted, Vv=VM code,
> C=native code)
> V [libjvm.so+0x95fc13] void VMError::report(outputStream*) + 0x783
> V [libjvm.so+0x960b99] void VMError::report_and_die() + 0x4b9
> V [libjvm.so+0x5d985d] void report_fatal(const char*,int,const char*) +
> V [libjvm.so+0x37ec90] void ObjectSynchronizer::deflate_idle_monitors()
> + 0x460
> V [libjvm.so+0x37f83c] void SafepointSynchronize::begin() + 0x9cc
> V [libjvm.so+0x4bbffe] void VMThread::loop() + 0x39e
> V [libjvm.so+0x4bb32f] void VMThread::run() + 0x7f
> V [libjvm.so+0x85eb99] java_start + 0x219
> C [libc.so.1+0xcb40b] _thr_slot_offset+0x31b _thr_setup + 0x5b
> C [libc.so.1+0xcb640] _thr_slot_offset+0x550 _lwp_start + 0x0
> VM_Operation (0xfffffd7ffe3876f0): Deoptimize, mode: safepoint,
> requested by thread 0x000000000041c800
More information about the hotspot-compiler-dev