RFR: 8280003: C1: Reconsider uses of logical_and immediates in LIRGenerator::do_getObjectSize [v5]

Dean Long dlong at openjdk.java.net
Wed Feb 9 23:17:10 UTC 2022


On Fri, 28 Jan 2022 10:36:53 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

>> See the discussion in the bug.
>> 
>> Additional testing:
>>  - [x] Linux x86_64 fastdebug `java/lang/instrument`
>>  - [x] Linux x86_32 fastdebug `java/lang/instrument`
>>  - [x] Linux AArch64 fastdebug `java/lang/instrument`
>>  - [x] Linux ARM32 fastdebug `java/lang/instrument`
>>  - [x] Linux PPC64 fastdebug `java/lang/instrument`
>>  - [x] Linux x86_64 fastdebug `tier1`
>>  - [x] Linux x86_32 fastdebug `tier1`
>>  - [x] Linux AArch64 fastdebug `tier1`
>>  - [x] Linux PPC64 fastdebug `tier1`
>
> Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Revert ARM32 checks

What's the reason for keeping load_immediate requiring a jlong?  It appears that all the immediates currently used will fit in a 32-bit signed int.  I suggest reverting back to "int" and simplifying this patch.

src/hotspot/share/c1/c1_LIRGenerator.cpp line 1418:

> 1416:   __ add(length, header_size_long, length);
> 1417:   if (round_mask != 0) {
> 1418:     LIR_Opr round_mask_opr = load_immediate(~(jlong)round_mask, T_LONG);

Explicitly casting to jlong here seems unnecessary.  We don't do that at line 1425.

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

Changes requested by dlong (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/7080


More information about the hotspot-compiler-dev mailing list