RFR: 8268858: Determine register pressure automatically by the number of available registers for allocation [v2]
Vladimir Kozlov
kvn at openjdk.java.net
Mon Jun 21 19:02:29 UTC 2021
On Mon, 21 Jun 2021 07:58:13 GMT, Joshua Zhu <jzhu at openjdk.org> wrote:
>> Hi,
>>
>> This patch includes the following changes:
>>
>> 1) Determine register pressure automatically by the number of available
>> registers for allocation.
>> Currently, INTPRESSURE is hard-coded no matter whether heapbase
>> or framepointer register is available for RA.
>>
>> 2) x86: Machines with AVX3 have 2x more XMM registers.
>> The pressure threshold should be improved for both RA and LCM.
>> Currently, only scheduling takes more XMM registers into
>> consideration.
>>
>> 3) aarch64: add a new jtreg case
>> In bug 8183543, this case caused many compilation failures with
>> "failed spill-split-recycle sanity check". This test case is
>> imported to ensure no regression failure.
>>
>> Inconsistent pressure threshold value with the number of available
>> registers will bring unnecessary spilling in some scenarios.
>> I wrote a simple example as one case:
>> https://cr.openjdk.java.net/~jzhu/8268858/Test.java
>>
>> With this patch, 4 extra spill copies are eliminated on AArch64.
>> old OptoAssembly: https://cr.openjdk.java.net/~jzhu/8268858/old_opto_assembly
>> new OptoAssembly: https://cr.openjdk.java.net/~jzhu/8268858/new_opto_assembly
>>
>> Could you please help review this patch?
>>
>> Best Regards,
>> Joshua
>
> Joshua Zhu has updated the pull request incrementally with one additional commit since the last revision:
>
> Update comments and place test into proper location
src/hotspot/cpu/aarch64/aarch64.ad line 2562:
> 2560: // Lowering the default value to (_NO_SPECIAL_REG32_mask.Size() minus 1)
> 2561: // fixes this bug. See JDK-8183543.
> 2562: uint int_pressure_threshold = _NO_SPECIAL_REG32_mask.Size() - 1;
This is not explanation. Comment should explain why with -1 the issue is fixed. (Repeating because it could be hidden in previous conversation)
-------------
PR: https://git.openjdk.java.net/jdk/pull/4505
More information about the hotspot-compiler-dev
mailing list