RFR 8207205 [lworld] Unsafe/VarHandle read-modify-write value accessors (original) (raw)

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