RFR: JDK-8241503: C2: Share MacroAssembler between mach nodes during code emission [v11]
Boris Ulasevich
bulasevich at openjdk.org
Wed Apr 10 21:24:46 UTC 2024
On Mon, 8 Apr 2024 06:09:14 GMT, Boris Ulasevich <bulasevich 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 12 commits:
>>
>> - Merge remote-tracking branch 'origin/master' into reuse-macroasm
>> - Fix AArch64 build & improve comment about InstructionMark
>> - 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.
>> - ... and 2 more: https://git.openjdk.org/jdk/compare/89e0889a...b4d73c98
>
> Do you need help understanding the problem? The crash occurred because you removed the line `fprintf(fp, " cbuf.set_insts_mark();\n");` from the generator of AD nodes ::emit() methods. That is why emit_call_reloc finds cbuf.insts->_mark unitialized.
>
>
> // Call Runtime Instruction
> instruct CallRuntimeDirect(method meth) %{
> match(CallRuntime);
> effect(USE meth);
> ins_cost(CALL_COST);
> format %{ "CALL,runtime" %}
> ins_encode( Java_To_Runtime( meth ),
> call_epilog );
> ins_pipe(simple_call);
> %}
>
> -->
>
> void CallRuntimeDirectNode::emit(CodeBuffer& cbuf, PhaseRegAlloc* ra_) const {
> cbuf.set_insts_mark();
> // Start at oper_input_base() and count operands
> unsigned idx0 = 1;
> unsigned idx1 = 1; //
> {
> #line 1217 "/home/boris/jdk-bulasevich/src/hotspot/cpu/arm/arm.ad"
> // CALL directly to the runtime
> emit_call_reloc(cbuf, as_MachCall(), opnd_array(1), runtime_call_Relocation::spec());
> #line 999999
> }
> {
> #line 1213 "/home/boris/jdk-bulasevich/src/hotspot/cpu/arm/arm.ad"
> // nothing
> #line 999999
> }
> }
> @bulasevich - I just pushed a fix for ARM32. Can you please run your tests again? Thanks!
Good. Tests are OK now.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/16484#issuecomment-2048456503
More information about the shenandoah-dev
mailing list