RFR: JDK-8241503: C2: Share MacroAssembler between mach nodes during code emission [v9]

Vladimir Kozlov kvn at openjdk.org
Fri Mar 22 18:01:35 UTC 2024


On Fri, 22 Mar 2024 00:35:28 GMT, Cesar Soares Lucas <cslucas at openjdk.org> wrote:

>> # Description
>> 
>> Please review this PR with a patch to re-use the same C2_MacroAssembler object to emit all instructions in the same compilation unit.
>> 
>> Overall, the change is pretty simple. However, due to the renaming of the variable to access C2_MacroAssembler, from `_masm.` to `masm->`, and also some method prototype changes, the patch became quite large.
>> 
>> # Help Needed for Testing
>> 
>> I don't have access to all platforms necessary to test this. I hope some other folks can help with testing on `S390`, `RISC-V` and `PPC`.
>> 
>> # Tier-1 Testing status
>> 
>> |          |   Win   |   Mac   |  Linux  |
>> |----------|---------|---------|---------|
>> | ARM64    |    ✔     |    ✔     |         |
>> | ARM32    |    n/a     |     n/a    |         |
>> | x86      |         |         |    ✔     |
>> | x64      |    ✔     |    ✔     |     ✔    |
>> | PPC64    |  n/a       |   n/a      |         |
>> | S390x    |   n/a      |   n/a      |         |
>> | RiscV    |    n/a     |    n/a     |    ✔     |
>
> Cesar Soares Lucas has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 10 commits:
> 
>  - Catching up with changes in master
>  - Catching up with origin/master
>  - Catch up with origin/master
>  - Merge with origin/master
>  - Fix build, copyright dates, m4 files.
>  - Fix merge
>  - Catch up with master branch.
>    
>    Merge remote-tracking branch 'origin/master' into reuse-macroasm
>  - Some inst_mark fixes; Catch up with master.
>  - Catch up with changes on master
>  - Reuse same C2_MacroAssembler object to emit instructions.

GHA shows issue with Aarch64 builds on MacOS and Windows:

d:\a\jdk\jdk\build\windows-aarch64\hotspot\variant-server\gensrc\adfiles\ad_aarch64.cpp(24257): error C2653: 'CompiledStaticCall': is not a class or namespace name
d:\a\jdk\jdk\build\windows-aarch64\hotspot\variant-server\gensrc\adfiles\ad_aarch64.cpp(24257): error C3861: 'emit_to_interp_stub': identifier not found

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

PR Comment: https://git.openjdk.org/jdk/pull/16484#issuecomment-2015632011


More information about the shenandoah-dev mailing list