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

Daniel Lundén dlunden at openjdk.org
Mon Sep 1 15:58:01 UTC 2025


On Wed, 27 Aug 2025 09:08:09 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

>> Daniel Lundén has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Add clarifying comments at definitions of register mask sizes
>
>> For reference, here is now the changeset adding an IFG bailout: #26118
> 
> Since that is now integrated: do we need to make any changes to the patch here? I thought the goal was to use the bailouts instead of increasing `MaxNodeLimit`.
> 
> Because looking at the discussions above: we were worried that there could be compile-time regressions - even if quite rare. But they were in the range of 40s which is quite scary. Are these now gone?

Thanks @eme64!

> Do you think it would make sense to have more tests? I'm imagining something like this:
> 
> * Generate tests with 0-255 arguments. You could use the template framework.
> * Take different types (e.g. various primitive types, also those that take 2 stack slots like long and double). You could use the template library `PrimitiveType` if you want.
> * Test that we actually get the method compiled. Maybe an IR rule could be used here?
> * And do some rudamentary result verification
> * Make sure it does not just work with `Xcomp` but also under "normal" circumstances (tiered, profiling, etc).

Sure, I can expand upon the testing. It's also a good opportunity to have a look at the template framework. Note that for `TestMaxMethodArguments.java`, I do already check that it compiles via `-XX:+AbortVMOnCompilationFailure`.

> I'll look a bit at your VM changes now ;)

Thanks, I'll have a look and respond in the individual threads.

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

PR Comment: https://git.openjdk.org/jdk/pull/20404#issuecomment-3242808695


More information about the hotspot-compiler-dev mailing list