RFR 8219154 [lworld] C1 aastore of flattened array needs null check for L-types

Tobias Hartmann tobias.hartmann at oracle.com
Mon Feb 18 08:05:43 UTC 2019

Hi Ioi,

On 17.02.19 02:37, Ioi Lam wrote:
> I added ciObjectFactory::make_never_null_wrapper, so that the ident will be set properly. Otherwise
> printing ciWrappers inside gdb would cause an assert.

Right, thanks for fixing that. The ciWrapper objects are also created in ciTypeFlow.cpp, could you
fix the creation there as well? Also, I think you can then remove the friend class definitions in
the ciWrapper class.

> Also, I have a question of the lifetime of the ciWrappers allocated inside the original
> ciSignature::ciSignature code. Will these get freed when the current compilation finishes, or will
> they stick forever until the current compiler thread is terminated? If it's the latter, then maybe
> we should cache them in ciType::_never_null_wrapper?

The wrappers are allocated in the ciEnv::_arena which is a "compile-lifetime allocation arena."

The sole purpose of having a wrapper object was to save a field in ciType.cpp, so I don't think they
should be shared.

Best regards,

More information about the valhalla-dev mailing list