[lworld] RFR: 8352647: [lworld] Remove larval InlineTypeNode in Unsafe intrinsics [v2]

Jatin Bhateja jbhateja at openjdk.org
Wed Apr 2 01:20:18 UTC 2025


On Tue, 1 Apr 2025 17:46:08 GMT, Quan Anh Mai <qamai at openjdk.org> wrote:

>> src/hotspot/share/opto/library_call.cpp line 2669:
>> 
>>> 2667:   const Type* type = gvn().type(value);
>>> 2668:   if (!type->is_inlinetypeptr()) {
>>> 2669:     C->record_method_not_compilable("value passed to Unsafe::makePrivateBuffer is not of a constant value type");
>> 
>> Suggestion:
>> 
>>     C->record_method_not_compilable("Argument passed to Unsafe::makePrivateBuffer is not a concrete value type");
>
> I believe we do often not capitalize the first letter passed into `C->record_method_not_compilable`. Additionally, what is passed into `Unsafe::makePrivateBuffer` is a value object, not a concrete value type, and we cannot compile this method because we cannot statically determine the value type this object belongs to, not because the object is not actually a value object. If it is not a value object we will just crash here instead.

A reference of identity class, or an abstract value class does not carry an InlineType. Only a concrete value type is valid argument for makePrivateBuffer.

-------------

PR Review Comment: https://git.openjdk.org/valhalla/pull/1406#discussion_r2023870134


More information about the valhalla-dev mailing list