JDK-6301887 : c2 crashes on x86 systems in loop optimization
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 6
  • Priority: P2
  • Status: Closed
  • Resolution: Duplicate
  • OS: other
  • CPU: x86
  • Submitted: 2005-07-26
  • Updated: 2010-04-03
  • Resolved: 2005-07-27
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
6Resolved
Related Reports
Duplicate :  
Description
The attached automatically generated test program produces a crash of server compiler.
The crash is observed on all x86 systems with version 1.6b44 and several versions prior to that (at least from b22). 
All Sparc versions (1.5 and 1.6) and x86 1.5 do not crash.

Stack trace:

#7  <signal handler called>
#8  0xb77eef3c in MulNode::Ideal () from /opt/sun-jdk-1.6.0.b41/jre/lib/i386/server/libjvm.so
#9  0xb77f0368 in AndINode::Ideal () from /opt/sun-jdk-1.6.0.b41/jre/lib/i386/server/libjvm.so
#10 0xb7839955 in PhaseIterGVN::transform_old () from /opt/sun-jdk-1.6.0.b41/jre/lib/i386/server/libjvm.so
#11 0xb78395a0 in PhaseIterGVN::optimize () from /opt/sun-jdk-1.6.0.b41/jre/lib/i386/server/libjvm.so
#12 0xb77bc094 in PhaseIdealLoop::PhaseIdealLoop () from /opt/sun-jdk-1.6.0.b41/jre/lib/i386/server/libjvm.so
#13 0xb75d8ec7 in Compile::Optimize () from /opt/sun-jdk-1.6.0.b41/jre/lib/i386/server/libjvm.so
#14 0xb75d69ea in Compile::Compile () from /opt/sun-jdk-1.6.0.b41/jre/lib/i386/server/libjvm.so
#15 0xb7580f86 in C2Compiler::compile_method () from /opt/sun-jdk-1.6.0.b41/jre/lib/i386/server/libjvm.so
#16 0xb75dd7a3 in CompileBroker::invoke_compiler_on_method () from /opt/sun-jdk-1.6.0.b41/jre/lib/i386/server/libjvm.so
#17 0xb75dd1d0 in CompileBroker::compiler_thread_loop () from /opt/sun-jdk-1.6.0.b41/jre/lib/i386/server/libjvm.so
#18 0xb78afb56 in compiler_thread_entry () from /opt/sun-jdk-1.6.0.b41/jre/lib/i386/server/libjvm.so
#19 0xb78aa713 in JavaThread::run () from /opt/sun-jdk-1.6.0.b41/jre/lib/i386/server/libjvm.so
#20 0xb780dfff in _start () from /opt/sun-jdk-1.6.0.b41/jre/lib/i386/server/libjvm.so
#21 0xb7eee2b6 in __pthread_initialize_minimal () from /lib/tls/libpthread.so.0
#22 0xb7e8062e in clone () from /lib/tls/libc.so.6

Comments
EVALUATION It is duplicate of 6297035. It fails in MulNode::Ideal() at the first line on the call to type(in(1)) since type is not defined for new nodes during initial phase of transformation (Ideal() methods called in loop in the transform_old() method). It fails only on x86 since we generate different Ideal nodes to process float arithmetic. My fix for 6297035 works for this case also.
27-07-2005