RFR(M) 8148047: Move the vtable length field to Klass
Christian Thalinger
christian.thalinger at oracle.com
Fri Jan 22 18:01:38 UTC 2016
> On Jan 22, 2016, at 5:49 AM, Mikael Gerdin <mikael.gerdin at oracle.com> wrote:
>
> Hi all,
>
> Here's the second part of the set of changes to move most of the vtable related code to Klass.
>
> This change consists of the following parts:
> * Move the field _vtable_len to Klass, making its accessor nonvirtual.
> -> Ensure that this does not result in any footprint regression by moving TRACE_DEFINE_KLASS_TRACE_ID in Klass and _itable_len in InstanceKlass to fill out alignment gaps.
> -> Move vtable_length_offset to Klass. Move vtable_start_offset to Klass to keep the code consistent. vtable_start_offset depends on the size of InstanceKlass and must therefore be defined outside of klass.hpp.
>
> * Update all locations to refer to Klass::vtable_{length,start}_offset instead of InstanceKlass.
>
> * Modify SA to look for _vtable_len in Klass.
>
> * Rename CompilerToVM::Data::InstanceKlass_vtable_{length,start}_offset
> and jdk.vm.ci.hotspot.HotSpotVMConfig.instanceKlassVtable{Length,Start}Offset to properly represent where the offsets are coming from.
We have to be careful with name changes in HotSpotVMConfig because that basically means we are changing the API (kind of, since the fields are public). Graal doesn’t use these fields only JVMCI itself so that change is good.
>
>
> Webrev: http://cr.openjdk.java.net/~mgerdin/8148047/webrev.0/
> Bug: https://bugs.openjdk.java.net/browse/JDK-8148047
>
> Testing: JPRT on Oracle supported platforms.
>
> As in the previous change I've updated the PPC64 and AARCH64 ports but I have not tested the changes. Build and test feedback from porters is most welcome!
>
> Thanks
> /Mikael
More information about the hotspot-dev
mailing list