RFR: 8324751: C2 SuperWord: Aliasing Analysis runtime check [v8]

Manuel Hässig mhaessig at openjdk.org
Wed Aug 13 15:52:21 UTC 2025


On Tue, 12 Aug 2025 17:02:11 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

>> And I think there is already some filtering in `canonicalize_raw_summands`:
>> 
>>     // Keep summands with non-zero scale.
>>     if (!scaleI.is_zero() && !scaleL.is_NaN()) {
>>       _raw_summands.at_put(pos_put++, MemPointerRawSummand(variable, scaleI, scaleL, int_group));
>>     }
>
> Ah, but the real work gets done here, in `MemPointer::make`:
> 
>     if (raw_summands.length() <= RAW_SUMMANDS_SIZE &&
>         summands.length() <= SUMMANDS_SIZE &&
>         has_no_NaN_in_con_and_summands(con, summands)) {
>       return MemPointer(pointer, raw_summands, summands, con, size NOT_PRODUCT(COMMA trace));
>     } else {
>       return MemPointer::make_trivial(pointer, size NOT_PRODUCT(COMMA trace));
>     }

Makes sense, thank you for the explanation :)

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

PR Review Comment: https://git.openjdk.org/jdk/pull/24278#discussion_r2273882298


More information about the hotspot-compiler-dev mailing list