JDK-6656922 : JIT compiler error on Itanium
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 1.4.2
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: linux
  • CPU: itanium
  • Submitted: 2008-01-30
  • Updated: 2011-03-08
  • Resolved: 2008-08-11
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.
Other Other
1.4.2_18-rev b10Fixed 1.4.2_19Fixed
Description
Running the attached program on an IA64 multiprocessor machine sometimes lead to problems because of the weak memory model of Itanium.       
                                                                              
This means, that an object could become visible before its initialization is ready. In that case running 'ReleaseNewObjectBug' writes the message:
Test failed! Object release visible before initialization (use st8.rel on IA64)!                                                                    
This could cause severe problems up to JVM crashes. Please correct this problem in 1.4.2.

Comments
EVALUATION IA64 requires ordered store/load because of weak emory model of IA64
22-05-2008

SUGGESTED FIX --- src/share/vm/opto/graphKit.cpp_orig Thu Mar 6 12:35:09 2008 +++ src/share/vm/opto/graphKit.cpp Thu Mar 6 12:37:48 2008 @@ -2240,6 +2240,11 @@ set_control( result_region ); set_i_o ( result_phi_i_o ); +#ifdef IA64 + // Add membar to ensure publication of initialization + insert_mem_bar( new MemBarReleaseNode() ); +#endif + // Cast raw oop to the real thing Node *newoop = _gvn.transform( new (2) CheckCastPPNode( result_region, result
05-03-2008