RFR 8207205 [lworld] Unsafe/VarHandle read-modify-write value accessors
Paul Sandoz
paul.sandoz at oracle.com
Thu Jul 12 23:06:18 UTC 2018
> On Jul 12, 2018, at 2:44 PM, Karen Kinnear <karen.kinnear at oracle.com> wrote:
>
> Paul,
>
> I was so hoping you or Mandy would get a chance to add those. Code looks good - check it in and add tests as you can.
>
Thanks.
I had my suspicions the test i am working on might crash the compiler and it did :-) [1].
It’s crashing with -XX:-TieredCompilation when compiling the value type Point::equals method in either a CAS or CAE test where equality is required. The test passes when executed with -Xint.
I may just finish polishing the test and commit for others to reproduce the failure and work out a solution.
Paul.
Current CompileTask:
C2: 5268 439 Point::equals (8 bytes)
Stack: [0x00007000059d2000,0x0000700005ad2000], sp=0x0000700005ace5c0, free space=1009k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.dylib+0x20d85d] AddPNode::Value(PhaseGVN*) const+0xd9
V [libjvm.dylib+0xc0a485] PhaseGVN::transform_no_reclaim(Node*)+0x119
V [libjvm.dylib+0xbf0320] Parse::optimize_cmp_with_klass(Node*)+0x1e2
V [libjvm.dylib+0xbf6526] Parse::do_one_bytecode()+0x615c
V [libjvm.dylib+0xbe23af] Parse::do_one_block()+0x35f
V [libjvm.dylib+0xbe0e11] Parse::do_all_blocks()+0x421
V [libjvm.dylib+0xbdd7b2] Parse::Parse(JVMState*, ciMethod*, float)+0xc96
V [libjvm.dylib+0x35985c] ParseGenerator::generate(JVMState*)+0xb6
V [libjvm.dylib+0x57b76e] Parse::do_call()+0x78a
V [libjvm.dylib+0xbf04bd] Parse::do_one_bytecode()+0xf3
V [libjvm.dylib+0xbe23af] Parse::do_one_block()+0x35f
V [libjvm.dylib+0xbe0e11] Parse::do_all_blocks()+0x421
V [libjvm.dylib+0xbdd7b2] Parse::Parse(JVMState*, ciMethod*, float)+0xc96
V [libjvm.dylib+0x35985c] ParseGenerator::generate(JVMState*)+0xb6
V [libjvm.dylib+0x57b76e] Parse::do_call()+0x78a
V [libjvm.dylib+0xbf04bd] Parse::do_one_bytecode()+0xf3
V [libjvm.dylib+0xbe23af] Parse::do_one_block()+0x35f
V [libjvm.dylib+0xbe0e11] Parse::do_all_blocks()+0x421
V [libjvm.dylib+0xbdd7b2] Parse::Parse(JVMState*, ciMethod*, float)+0xc96
V [libjvm.dylib+0x35985c] ParseGenerator::generate(JVMState*)+0xb6
V [libjvm.dylib+0x57b76e] Parse::do_call()+0x78a
V [libjvm.dylib+0xbf04bd] Parse::do_one_bytecode()+0xf3
V [libjvm.dylib+0xbe23af] Parse::do_one_block()+0x35f
V [libjvm.dylib+0xbe0e11] Parse::do_all_blocks()+0x421
V [libjvm.dylib+0xbdd7b2] Parse::Parse(JVMState*, ciMethod*, float)+0xc96
V [libjvm.dylib+0x35985c] ParseGenerator::generate(JVMState*)+0xb6
V [libjvm.dylib+0x57b76e] Parse::do_call()+0x78a
V [libjvm.dylib+0xbf04bd] Parse::do_one_bytecode()+0xf3
V [libjvm.dylib+0xbe23af] Parse::do_one_block()+0x35f
V [libjvm.dylib+0xbe0e11] Parse::do_all_blocks()+0x421
V [libjvm.dylib+0xbdd7b2] Parse::Parse(JVMState*, ciMethod*, float)+0xc96
V [libjvm.dylib+0x35985c] ParseGenerator::generate(JVMState*)+0xb6
V [libjvm.dylib+0x4894ac] Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool, DirectiveSet*)+0x8e6
V [libjvm.dylib+0x48c61b] Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool, DirectiveSet*)+0x31
V [libjvm.dylib+0x358470] C2Compiler::compile_method(ciEnv*, ciMethod*, int, DirectiveSet*)+0x130
V [libjvm.dylib+0x49f3ec] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x668
V [libjvm.dylib+0x49ec19] CompileBroker::compiler_thread_loop()+0x2f1
V [libjvm.dylib+0xd6c1c9] JavaThread::thread_main_inner()+0x1ed
V [libjvm.dylib+0xd6bca2] JavaThread::run()+0x3da
V [libjvm.dylib+0xba4ec8] thread_native_entry(Thread*)+0x12b
C [libsystem_pthread.dylib+0x3661] _pthread_body+0x154
C [libsystem_pthread.dylib+0x350d] _pthread_body+0x0
C [libsystem_pthread.dylib+0x2bf9] thread_start+0xd
More information about the valhalla-dev
mailing list