RFR: Cleanup obsolete Shenandoah changes in ciInstanceKlass

Aleksey Shipilev shade at redhat.com
Mon Nov 19 19:36:16 UTC 2018


On 11/19/18 11:31 AM, Aleksey Shipilev wrote:
> On 11/19/18 10:45 AM, Roman Kennke wrote:
>> I believe the changes in ciInstanceKlass::get_canonical_holder() are a
>> leftover from *long* time ago when we did not create extra slices for -8
>> offset. We can remove it.
>>
>> Testing: tier3_gc_shenandoah
>>
>> http://cr.openjdk.java.net/~rkennke/cleanup-ciinstanceklass/webrev.00/
> 
> Looks good to me.

I wonder what is the definition of "leftover from *long* time ago when we did not create extra
slices for -8 >> offset", because sh/jdk11 fails with this patch backported. What is up with that?
Are we only safe in sh/jdk?

#  Internal Error
(/home/shade/trunks/shenandoah-jdk11/src/hotspot/share/ci/ciInstanceKlass.cpp:209), pid=20684, tid=20715
#  assert(offset >= 0 && offset < layout_helper()) failed: offset must be tame

Current CompileTask:
C2:    409   82       4       java.lang.String::charAt (25 bytes)

Stack: [0x00007f5aec4f8000,0x00007f5aec5f9000],  sp=0x00007f5aec5f4eb0,  free space=1011k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native
code)
V  [libjvm.so+0x1a69e84]  VMError::report_and_die(int, char const*, char const*, __va_list_tag*,
Thread*, unsigned char*, void*, void*, char const*, int, unsigned long)+0x314
V  [libjvm.so+0x1a6ad6f]  VMError::report_and_die(Thread*, void*, char const*, int, char const*,
char const*, __va_list_tag*)+0x2f
V  [libjvm.so+0xb97d0a]  report_vm_error(char const*, int, char const*, char const*, ...)+0x12a
V  [libjvm.so+0x94e606]  ciInstanceKlass::get_canonical_holder(int)+0x396
V  [libjvm.so+0xaa3c3c]  Compile::flatten_alias_type(TypePtr const*) const+0xbdc
V  [libjvm.so+0xaac13c]  Compile::find_alias_type(TypePtr const*, bool, ciField*)+0x8c
V  [libjvm.so+0x17777fc]  ShenandoahBarrierSetC2::shenandoah_read_barrier_impl(GraphKit*, Node*,
bool, bool, bool) const+0x2cc
V  [libjvm.so+0x15edddb]  Parse::do_get_xxx(Node*, ciField*, bool)+0x43b
V  [libjvm.so+0x15f090a]  Parse::do_field_access(bool, bool)+0xafa

-Aleksey



More information about the shenandoah-dev mailing list