-
Bug
-
Resolution: Cannot Reproduce
-
P3
-
repo-valhalla
InstanceKlass::oop_print_on() does not support value klasses with flattened fields. For example, this can be triggered by running tests with -XX:+TraceDeoptimization -XX:+Verbose:
Current CompileTask:
C2: 16897 88 b compiler.valhalla.valuetypes.TestLWorld::<clinit> (297 bytes)
Stack: [0x00007f6a7c217000,0x00007f6a7c318000], sp=0x00007f6a7c3148d0, free space=1014k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x1032af0] java_lang_String::is_instance(oop)+0xc0
V [libjvm.so+0x167c62e] oopDesc::print_value_on(outputStream*) const+0x4e
V [libjvm.so+0xda32d0] fieldDescriptor::print_on_for(outputStream*, oop)+0x910
V [libjvm.so+0xfd2936] FieldPrinter::do_field(fieldDescriptor*)+0x66
V [libjvm.so+0xfdd2e4] InstanceKlass::do_nonstatic_fields(FieldClosure*)+0x1b4
V [libjvm.so+0xfe77e2] InstanceKlass::oop_print_on(oop, outputStream*)+0xe2
V [libjvm.so+0x167c031] oopDesc::print_on(outputStream*) const+0x61
V [libjvm.so+0xa12867] ciObject::print_oop(outputStream*)+0x327
V [libjvm.so+0x1a3930a] TypeInstPtr::dump2(Dict&, unsigned int, outputStream*) const+0x17a
V [libjvm.so+0x1a38bc8] Type::dump_on(outputStream*) const+0xe8
V [libjvm.so+0x163e5e2] Node::dump(char const*, bool, outputStream*) const+0x222
V [libjvm.so+0x1645059] dump_nodes(Node const*, int, bool)+0x2f9
V [libjvm.so+0xb6354b] Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool, DirectiveSet*)+0x17db
V [libjvm.so+0x93fe92] C2Compiler::compile_method(ciEnv*, ciMethod*, int, DirectiveSet*)+0x302
V [libjvm.so+0xb70720] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x3c0
V [libjvm.so+0xb71428] CompileBroker::compiler_thread_loop()+0x288
V [libjvm.so+0x1a10597] JavaThread::thread_main_inner()+0x287
V [libjvm.so+0x1a107f1] JavaThread::run()+0x191
V [libjvm.so+0x16be67a] thread_native_entry(Thread*)+0xfa
Current CompileTask:
C2: 16897 88 b compiler.valhalla.valuetypes.TestLWorld::<clinit> (297 bytes)
Stack: [0x00007f6a7c217000,0x00007f6a7c318000], sp=0x00007f6a7c3148d0, free space=1014k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x1032af0] java_lang_String::is_instance(oop)+0xc0
V [libjvm.so+0x167c62e] oopDesc::print_value_on(outputStream*) const+0x4e
V [libjvm.so+0xda32d0] fieldDescriptor::print_on_for(outputStream*, oop)+0x910
V [libjvm.so+0xfd2936] FieldPrinter::do_field(fieldDescriptor*)+0x66
V [libjvm.so+0xfdd2e4] InstanceKlass::do_nonstatic_fields(FieldClosure*)+0x1b4
V [libjvm.so+0xfe77e2] InstanceKlass::oop_print_on(oop, outputStream*)+0xe2
V [libjvm.so+0x167c031] oopDesc::print_on(outputStream*) const+0x61
V [libjvm.so+0xa12867] ciObject::print_oop(outputStream*)+0x327
V [libjvm.so+0x1a3930a] TypeInstPtr::dump2(Dict&, unsigned int, outputStream*) const+0x17a
V [libjvm.so+0x1a38bc8] Type::dump_on(outputStream*) const+0xe8
V [libjvm.so+0x163e5e2] Node::dump(char const*, bool, outputStream*) const+0x222
V [libjvm.so+0x1645059] dump_nodes(Node const*, int, bool)+0x2f9
V [libjvm.so+0xb6354b] Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool, DirectiveSet*)+0x17db
V [libjvm.so+0x93fe92] C2Compiler::compile_method(ciEnv*, ciMethod*, int, DirectiveSet*)+0x302
V [libjvm.so+0xb70720] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x3c0
V [libjvm.so+0xb71428] CompileBroker::compiler_thread_loop()+0x288
V [libjvm.so+0x1a10597] JavaThread::thread_main_inner()+0x287
V [libjvm.so+0x1a107f1] JavaThread::run()+0x191
V [libjvm.so+0x16be67a] thread_native_entry(Thread*)+0xfa