RFR: 8325467: Support methods with many arguments in C2 [v17]

Emanuel Peter epeter at openjdk.org
Fri Jun 20 10:16:44 UTC 2025


On Fri, 25 Apr 2025 18:00:35 GMT, Daniel Lundén <dlunden at openjdk.org> wrote:

>> src/hotspot/share/opto/compile.hpp line 524:
>> 
>>> 522:   PhaseRegAlloc*        _regalloc;              // Results of register allocation.
>>> 523:   RegMask               _FIRST_STACK_mask;      // All stack slots usable for spills (depends on frame layout)
>>> 524:   ResourceArea          _regmask_arena;         // Holds dynamically allocated extensions of short-lived register masks
>> 
>> If they are short-lived ... then why not just resource allocate them? Is there a conflict? Would it be good to describe that somewhere?
>
> I assume you mean resource allocate in the default `Thread::current()->resource_area()`? The existing resource marks are often far away, leading to unnecessary memory consumption. Trying to narrow the existing resource marks does lead to conflicts. I added a motivation to the description in `compile.hpp`!

And these conflicts cannot be resolved? Can you bring an example that is too much effort?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20404#discussion_r2158574971


More information about the hotspot-compiler-dev mailing list