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

Daniel Lundén dlunden at openjdk.org
Fri Aug 23 11:39:06 UTC 2024


On Wed, 21 Aug 2024 12:05:57 GMT, Roberto Castañeda Lozano <rcastanedalo at openjdk.org> wrote:

> Would it be possible to 1) extend test/hotspot/gtest/opto/test_regmask.cpp with tests that exercise extended RegMasks and 2) re-run the standard test tiers with a (temporary) RM_SIZE value that is low enough to also exercise the new logic more often?

Yes, good idea. I'm adding 2) to my TODO list (and as we discussed in-person, you offered to work a bit on 1) yourself).

> I think RegMask::is_UP() needs to be updated to handle extended RegMasks (unless we can prove that it will never be called on an extended one).

Thanks, good catch. The problem is that `overlap` (intentionally) does not consider the all-stack flag. I'll experiment by adding some `assert`s to see if this is also a more widespread problem. For `is_UP`, I think the best solution is to rewrite it using `RegMask::find_last_elem` and `OptoReg::is_reg` instead.

> Other uses of Matcher::STACK_ONLY_mask might also need to be revisited, in particular the line tmp_rm.SUBTRACT(Matcher::STACK_ONLY_mask) in PhaseChaitin::Split.

Yes, I'll have a look. `SUBTRACT` should be fine though, I have rewritten it to handle such cases.

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

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


More information about the hotspot-compiler-dev mailing list