RFR: 8335392: C2 MergeStores: enhanced pointer parsing [v2]

Emanuel Peter epeter at openjdk.org
Fri Oct 18 08:06:50 UTC 2024


On Thu, 17 Oct 2024 22:09:56 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

>> src/hotspot/share/opto/mempointer.hpp line 43:
>> 
>>> 41: //   Where each summand_i in summands has the form:
>>> 42: //
>>> 43: //     summand_i = scale_i * variable_i
>> 
>> I see you treat `scale` as compile time integer value (NoOverflowInt) and not Node. Why is the check/filter for that?
>
> I mean: _Where_ is the check/filter for that?

The meat of the parsing happens in `MemPointerDecomposedFormParser::parse_sub_expression`.

One good example is this:
![image](https://github.com/user-attachments/assets/a83fd973-6407-45c6-8597-ef51edd7325d)

I added the `default` case now with a comment.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/19970#discussion_r1806057740


More information about the hotspot-compiler-dev mailing list