RFR (S) 8031818: Experimental VM flag for enforcing safe object construction

Aleksey Shipilev aleksey.shipilev at oracle.com
Wed Jan 22 01:19:43 PST 2014

Thanks, Vladimir!

On 01/22/2014 12:07 PM, Vladimir Kozlov wrote:
> On 1/21/14 9:10 PM, Vladimir Kozlov wrote:
>> May be we should use bitset enums to record types of stores to fields.

And the benefit is? I come from the notion Parse is a throw-away
instance anyhow, do we actually care for additional transient byte of
footprint per compilation?

>> Next changes touch the same C2 code:
>> http://hg.openjdk.java.net/ppc-aix-port/stage-9/hotspot/rev/c6d7e7406136
>> It uses method()->is_initializer() instead of (method()->name() ==
>> ciSymbol::object_initializer_name()).

Copied from C1 code, and I agree "method()->is_initializer()" seems more
readable, although it also matches the static initializers. Unless there
is a readability concern, I'd rather leave it as is to match C1 behavior.

>> The main problem that new flag check will be executed always. It will
>> not be optimized by C++.
> On other hand we already have experimental flags (for example,
> AggressiveUnboxing) so it is not big deal.

That's what I'm thinking as well.


More information about the hotspot-compiler-dev mailing list