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

Cesar Soares Lucas cslucas at openjdk.org
Mon Dec 18 18:19:43 UTC 2023


On Sat, 16 Dec 2023 12:44:12 GMT, Andrew Haley <aph at openjdk.org> wrote:

>> 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 seven commits:
>> 
>>  - 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.
>
> It seems odd to me that this substantial and complex patch lacks any justification. As far as I can tell, the decision to make class MacroAssembler very lightweight so that new instances could be created as needed was deliberate. Why change now? Is it performance, or something else?

@theRealAph , @TheRealMDoerr - I just picked a JBS work item that seemed important (P3..) and started working on it. To me the refactoring made a lot of sense as well - why just create thousands of objects if just a few would do.

If this is something that doesn't need to be done, please let me know. It already took substantial effort as you said.

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

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


More information about the shenandoah-dev mailing list