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

Andrew Haley aph at openjdk.org
Thu Dec 21 09:44:52 UTC 2023


On Wed, 20 Dec 2023 11:11:07 GMT, Martin Doerr <mdoerr 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.
>
> Thanks for the explanation! Makes sense.

> @TheRealMDoerr motivation is to reduce memory consumption and speed up C2. `C2_MacroAssembler` is based on `ResourceObj` which allocates in compiler arena. Each small `C2_MacroAssembler masm()` will add allocation to arena until we finish compilation. Also speedup because we don't need to do such allocations.

I see. I updated the bug entry because we need an audit trail for such decisions.

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

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


More information about the shenandoah-dev mailing list