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

Ioi Lam ioi.lam at oracle.com
Mon Feb 18 15:09:30 UTC 2019

Hi Tobias,

Thanks for the info. I will fix ciTypeFlow as you suggested and remove 
the ciType::_never_null_wrapper.

- Ioi

On 2/18/19 12:05 AM, Tobias Hartmann wrote:
> 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,
> Tobias

More information about the valhalla-dev mailing list