JDK-7014247 : CTW fails when compile sun/misc/AtomicLongCSImpl (REMOVED from JDK7)
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs20
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: x86
  • Submitted: 2011-01-24
  • Updated: 2011-03-08
  • Resolved: 2011-03-08
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 JDK 7 Other
6u25Fixed 7Fixed hs20Fixed
Description
The HS20 b08 (and b07) with JDK6 (u21p) fails CTW test.
The test name is:
ctw/jre/lib/rt_jar/sun_misc_AtomicLongCSImpl

It fails during compilation of AtomicLongCSImpl which is removed in JDK 7.
It coould cause issues during usage of atomic in JDK 6.

Test fails in b07 however this ctw job fails and was not restarted. We don't test fastdebug in promotion!

To reproduce use (on intelsdv13):
/net/sqenfs-1.sfbay/export1/comp/vm/jdk/hsx/hs20/pit/08/jdk6u25b01/fastdebug/linux-i586/bin/java    -client -XX:+StartAttachListener -XX:-ShowMessageBoxOnError -Xverify:all  -XX:+CompileTheWorld -XX:CompileTheWorldStartAt=17340 -XX:CompileTheWorldStopAt=17341 -XX:LogFile=hotspot_17340.log -XX:MaxPermSize=384M -Xmx512M -Xbootclasspath/p:/net/sqenfs-1.sfbay/export1/comp/vm/jdk/hsx/hs20/pit/08/jdk6u25b01/fastdebug/linux-i586/jre/lib/rt.jar
The failure is:

#  Internal Error (/net/hsdev-8/export/iggy/7014247-atomiclong/src/share/vm/c1/c1_LIR.cpp:261), pid=23596, tid=9
#  assert(!result_opr()->is_register() || !result_opr()->is_oop_register()) failed: can't produce oops from arith
[7] report_vm_error(file = 0xfe840139 "/net/hsdev-8/export/iggy/7014247-atomiclong/src/share/vm/c1/c1_LIR.cpp", line = 261, error_msg = 0xfe840180 "assert(!result_opr()->is_register() || !result_opr()->is_oop_register()) failed", detail_msg = 0xfe8401d0 "can't produce oops from arith"), line 216 in "debug.cpp"
  [8] LIR_Op2::verify(this = 0x8be6ad8), line 261 in "c1_LIR.cpp"
  [9] LIR_List::append(this = 0x8be6938, op = 0x8be6ad8), line 1855 in "c1_LIR.hpp"
  [10] LIR_List::add(this = 0x8be6938, left = 0xa501b, right = 0x8be6ac8, res = 0xa501b), line 2016 in "c1_LIR.hpp"
  [11] LIRGenerator::do_AttemptUpdate(this = 0xc331c77c, x = 0x8be6018), line 737 in "c1_LIRGenerator_x86.cpp"
  [12] LIRGenerator::do_Intrinsic(this = 0xc331c77c, x = 0x8be6018), line 2656 in "c1_LIRGenerator.cpp"
  [13] Intrinsic::visit(this = 0x8be6018, v = 0xc331c77c), line 1397 in "c1_Instruction.hpp"
  [14] LIRGenerator::do_root(this = 0xc331c77c, instr = 0x8be6018), line 381 in "c1_LIRGenerator.cpp"
  [15] LIRGenerator::block_do(this = 0xc331c77c, block = 0x8be5a50), line 362 in "c1_LIRGenerator.cpp"
  [16] BlockList::iterate_forward(this = 0x8be6508, closure = 0xc331c780), line 851 in "c1_Instruction.cpp"
  [17] IR::iterate_linear_scan_order(this = 0x8be5820, closure = 0xc331c780), line 1121 in "c1_IR.cpp"
  [18] Compilation::emit_lir(this = 0xc331ca14), line 184 in "c1_Compilation.cpp"
  [19] Compilation::compile_java_method(this = 0xc331ca14), line 323 in "c1_Compilation.cpp"
  [20] Compilation::compile_method(this = 0xc331ca14), line 382 in "c1_Compilation.cpp"
  [21] Compilation::Compilation(this = 0xc331ca14, compiler = 0x818e570, env = 0xc331cc50, method = 0x8bdb0b8, osr_bci = -1, buffer_blob = 0xfbcdd288), line 486 in "c1_Compilation.cpp"
  [22] Compiler::compile_method(this = 0x818e570, env = 0xc331cc50, method = 0x8bdb0b8, entry_bci = -1), line 110 in "c1_Compiler.cpp"

Comments
EVALUATION http://hg.openjdk.java.net/hsx/hsx20/baseline/rev/08b8a97af1a8
27-01-2011

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/f966c66b5463
26-01-2011

SUGGESTED FIX Use leal instead of add to compute the field address
25-01-2011