Running runThese -quick on amd64 with -XX:+DeoptimizeALot
I got the assertion failure:
assert( _base == Int, "Not an Int" );
The stack trace looks like:
#0 report_assertion_failure (file_name=0x2a96494ac0 "/net/gretch/disk2/ws/osr/src/share/vm/opto/type.hpp", line_no=882,
message=0x2a96494b80 "assert(_base == Int,\"Not an Int\")") at /net/gretch/disk2/ws/osr/src/share/vm/utilities/debug.cpp:208
#1 0x0000002a9602d6f0 in Type::is_int (this=0x4019fbe8) at /net/gretch/disk2/ws/osr/src/share/vm/opto/type.hpp:882
#2 0x0000002a96382f8c in Parse::array_addressing (this=0x7fbe9fdbd0, type=T_INT, vals=0, result2=0x7fbe9fd558)
at /net/gretch/disk2/ws/osr/src/share/vm/opto/parse2.cpp:67
#3 0x0000002a96382d2e in Parse::array_load (this=0x7fbe9fdbd0, elem_type=T_INT)
at /net/gretch/disk2/ws/osr/src/share/vm/opto/parse2.cpp:18
#4 0x0000002a96387c23 in Parse::do_one_bytecode (this=0x7fbe9fdbd0) at /net/gretch/disk2/ws/osr/src/share/vm/opto/parse2.cpp:1425
#5 0x0000002a96380114 in Parse::do_one_block (this=0x7fbe9fdbd0) at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:1352
#6 0x0000002a9637d884 in Parse::visit_blocks (this=0x7fbe9fdbd0) at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:618
#7 0x0000002a9637d605 in Parse::do_all_blocks (this=0x7fbe9fdbd0) at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:535
#8 0x0000002a9637d4d9 in Parse (this=0x7fbe9fdbd0, caller=0x40271cc8, parse_method=0x40401d48, expected_uses=80719)
at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:506
#9 0x0000002a9606c3b7 in ParseGenerator::generate (this=0x415ff478, jvms=0x40271cc8)
at /net/gretch/disk2/ws/osr/src/share/vm/opto/callGenerator.cpp:58
(gdb) where 19
#0 report_assertion_failure (file_name=0x2a96494ac0 "/net/gretch/disk2/ws/osr/src/share/vm/opto/type.hpp", line_no=882,
message=0x2a96494b80 "assert(_base == Int,\"Not an Int\")") at /net/gretch/disk2/ws/osr/src/share/vm/utilities/debug.cpp:208
#1 0x0000002a9602d6f0 in Type::is_int (this=0x4019fbe8) at /net/gretch/disk2/ws/osr/src/share/vm/opto/type.hpp:882
#2 0x0000002a96382f8c in Parse::array_addressing (this=0x7fbe9fdbd0, type=T_INT, vals=0, result2=0x7fbe9fd558)
at /net/gretch/disk2/ws/osr/src/share/vm/opto/parse2.cpp:67
#3 0x0000002a96382d2e in Parse::array_load (this=0x7fbe9fdbd0, elem_type=T_INT)
at /net/gretch/disk2/ws/osr/src/share/vm/opto/parse2.cpp:18
#4 0x0000002a96387c23 in Parse::do_one_bytecode (this=0x7fbe9fdbd0) at /net/gretch/disk2/ws/osr/src/share/vm/opto/parse2.cpp:1425
#5 0x0000002a96380114 in Parse::do_one_block (this=0x7fbe9fdbd0) at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:1352
#6 0x0000002a9637d884 in Parse::visit_blocks (this=0x7fbe9fdbd0) at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:618
#7 0x0000002a9637d605 in Parse::do_all_blocks (this=0x7fbe9fdbd0) at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:535
#8 0x0000002a9637d4d9 in Parse (this=0x7fbe9fdbd0, caller=0x40271cc8, parse_method=0x40401d48, expected_uses=80719)
at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:506
#9 0x0000002a9606c3b7 in ParseGenerator::generate (this=0x415ff478, jvms=0x40271cc8)
at /net/gretch/disk2/ws/osr/src/share/vm/opto/callGenerator.cpp:58
#10 0x0000002a960e1f07 in Compile (this=0x7fbe9fe340, ci_env=0x7fbe9ff2b0, compiler=0x402437e8, target=0x40401d48, osr_bci=2,
subsume_loads=1) at /net/gretch/disk2/ws/osr/src/share/vm/opto/compile.cpp:395
#11 0x0000002a9606b7ef in C2Compiler::compile_method (this=0x402437e8, env=0x7fbe9ff2b0, target=0x40401d48, entry_bci=2)
at /net/gretch/disk2/ws/osr/src/share/vm/opto/c2compiler.cpp:31
#12 0x0000002a960ed535 in CompileBroker::invoke_compiler_on_method (task=0x2b1e20eff8)
at /net/gretch/disk2/ws/osr/src/share/vm/compiler/compileBroker.cpp:1591
I looked at it a little and at line
67 const TypeInt* idxtype = _gvn.type(idx)->is_int();
of parse2.cpp a dump of idxtype shows:
1 Con === 0 [[]] #top
The method being (osr) compiled is:
java/lang/Integer::stringSize(I)I
###@###.### 2004-11-05 19:18:23 GMT
I got the assertion failure:
assert( _base == Int, "Not an Int" );
The stack trace looks like:
#0 report_assertion_failure (file_name=0x2a96494ac0 "/net/gretch/disk2/ws/osr/src/share/vm/opto/type.hpp", line_no=882,
message=0x2a96494b80 "assert(_base == Int,\"Not an Int\")") at /net/gretch/disk2/ws/osr/src/share/vm/utilities/debug.cpp:208
#1 0x0000002a9602d6f0 in Type::is_int (this=0x4019fbe8) at /net/gretch/disk2/ws/osr/src/share/vm/opto/type.hpp:882
#2 0x0000002a96382f8c in Parse::array_addressing (this=0x7fbe9fdbd0, type=T_INT, vals=0, result2=0x7fbe9fd558)
at /net/gretch/disk2/ws/osr/src/share/vm/opto/parse2.cpp:67
#3 0x0000002a96382d2e in Parse::array_load (this=0x7fbe9fdbd0, elem_type=T_INT)
at /net/gretch/disk2/ws/osr/src/share/vm/opto/parse2.cpp:18
#4 0x0000002a96387c23 in Parse::do_one_bytecode (this=0x7fbe9fdbd0) at /net/gretch/disk2/ws/osr/src/share/vm/opto/parse2.cpp:1425
#5 0x0000002a96380114 in Parse::do_one_block (this=0x7fbe9fdbd0) at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:1352
#6 0x0000002a9637d884 in Parse::visit_blocks (this=0x7fbe9fdbd0) at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:618
#7 0x0000002a9637d605 in Parse::do_all_blocks (this=0x7fbe9fdbd0) at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:535
#8 0x0000002a9637d4d9 in Parse (this=0x7fbe9fdbd0, caller=0x40271cc8, parse_method=0x40401d48, expected_uses=80719)
at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:506
#9 0x0000002a9606c3b7 in ParseGenerator::generate (this=0x415ff478, jvms=0x40271cc8)
at /net/gretch/disk2/ws/osr/src/share/vm/opto/callGenerator.cpp:58
(gdb) where 19
#0 report_assertion_failure (file_name=0x2a96494ac0 "/net/gretch/disk2/ws/osr/src/share/vm/opto/type.hpp", line_no=882,
message=0x2a96494b80 "assert(_base == Int,\"Not an Int\")") at /net/gretch/disk2/ws/osr/src/share/vm/utilities/debug.cpp:208
#1 0x0000002a9602d6f0 in Type::is_int (this=0x4019fbe8) at /net/gretch/disk2/ws/osr/src/share/vm/opto/type.hpp:882
#2 0x0000002a96382f8c in Parse::array_addressing (this=0x7fbe9fdbd0, type=T_INT, vals=0, result2=0x7fbe9fd558)
at /net/gretch/disk2/ws/osr/src/share/vm/opto/parse2.cpp:67
#3 0x0000002a96382d2e in Parse::array_load (this=0x7fbe9fdbd0, elem_type=T_INT)
at /net/gretch/disk2/ws/osr/src/share/vm/opto/parse2.cpp:18
#4 0x0000002a96387c23 in Parse::do_one_bytecode (this=0x7fbe9fdbd0) at /net/gretch/disk2/ws/osr/src/share/vm/opto/parse2.cpp:1425
#5 0x0000002a96380114 in Parse::do_one_block (this=0x7fbe9fdbd0) at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:1352
#6 0x0000002a9637d884 in Parse::visit_blocks (this=0x7fbe9fdbd0) at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:618
#7 0x0000002a9637d605 in Parse::do_all_blocks (this=0x7fbe9fdbd0) at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:535
#8 0x0000002a9637d4d9 in Parse (this=0x7fbe9fdbd0, caller=0x40271cc8, parse_method=0x40401d48, expected_uses=80719)
at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:506
#9 0x0000002a9606c3b7 in ParseGenerator::generate (this=0x415ff478, jvms=0x40271cc8)
at /net/gretch/disk2/ws/osr/src/share/vm/opto/callGenerator.cpp:58
#10 0x0000002a960e1f07 in Compile (this=0x7fbe9fe340, ci_env=0x7fbe9ff2b0, compiler=0x402437e8, target=0x40401d48, osr_bci=2,
subsume_loads=1) at /net/gretch/disk2/ws/osr/src/share/vm/opto/compile.cpp:395
#11 0x0000002a9606b7ef in C2Compiler::compile_method (this=0x402437e8, env=0x7fbe9ff2b0, target=0x40401d48, entry_bci=2)
at /net/gretch/disk2/ws/osr/src/share/vm/opto/c2compiler.cpp:31
#12 0x0000002a960ed535 in CompileBroker::invoke_compiler_on_method (task=0x2b1e20eff8)
at /net/gretch/disk2/ws/osr/src/share/vm/compiler/compileBroker.cpp:1591
I looked at it a little and at line
67 const TypeInt* idxtype = _gvn.type(idx)->is_int();
of parse2.cpp a dump of idxtype shows:
1 Con === 0 [[]] #top
The method being (osr) compiled is:
java/lang/Integer::stringSize(I)I
###@###.### 2004-11-05 19:18:23 GMT