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

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()->isinitializer() instead of (method()->name() == ciSymbol::objectinitializername()).

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.

-Aleksey.



More information about the hotspot-compiler-dev mailing list