RFR: 8329032: C2 compiler register allocation support for APX EGPRs [v6]
Jatin Bhateja
jbhateja at openjdk.org
Tue Jun 18 16:17:57 UTC 2024
> Intel® Advanced Performance Extensions (Intel® APX) adds 16 new 64 bit general purpose register also known as Extended General Purpose Registers in IA-32e 64 bit mode.
>
> Summary of changes introduced along with this patch:-
>
> 1. C2 compiler register allocation support.
> 2. Architecture state save restoration while transitioning from C1/C2 JIT compiled code to runtime services.
> 3. Support new PUSH2/POP2 instructions along with push-pop acceleration hints (PPX) to optimize register save/restore operation.
> 4. Applicable extensions to native interface used by runtime for patching instruction.
>
> We plan to address C1 register support in subsequent patch as there are hard upper bound allocation limits
> (currently set to r11) imposed by existing implementation of linear scan algorithm after which it reserves
> remaining register for special purpose.
>
> Patch has been regressed over stand alone test points after prioritizing EGPR allocations over existing GPR register by manually modifying the register sequences in relevant allocation class.
>
> We plan to do thorough validation using [Intel's SDE](https://www.intel.com/content/www/us/en/download/684897/intel-software-development-emulator.html) during course of time and release incremental patches for bug fixes
> found during testing.
>
> Kindly review and share your feedback.
>
> Best Regards,
> Jatin
Jatin Bhateja has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 14 commits:
- Merge branch 'master' of http://github.com/openjdk/jdk into JDK-8329032
- 32-bit build fix.
- Review comments resolutions.
- jvmci test failures fixes
- 32-bit build fixes.
- Merge branch 'master' of http://github.com/openjdk/jdk into JDK-8329032
- Changes to skip over stack alignment gaps while popping registers using POP2 after comment from sviswa7
- 32 bit build fix and enforced stack alignment constraints.
- Support new PUSH2/POP2 instructions along with Push-Pop Acceleration (PPX) to optimize register save/restore operation.
- Merge branch 'master' of http://github.com/openjdk/jdk into JDK-8329032
- ... and 4 more: https://git.openjdk.org/jdk/compare/6f860f8f...8db22672
-------------
Changes: https://git.openjdk.org/jdk/pull/19042/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19042&range=05
Stats: 785 lines in 26 files changed: 601 ins; 53 del; 131 mod
Patch: https://git.openjdk.org/jdk/pull/19042.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/19042/head:pull/19042
PR: https://git.openjdk.org/jdk/pull/19042
More information about the hotspot-dev
mailing list