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

Sergey Nazarkin snazarki at openjdk.java.net
Wed Jan 19 11:35:24 UTC 2022


On Tue, 18 Jan 2022 15:20:06 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 with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains six additional commits since the last revision:
> 
>  - Fixing failures in ARM32
>  - Merge branch 'master' into JDK-8280003-c1-logical-and
>  - Checking ARM32 code
>  - Use checked_cast<jint>
>  - Merge branch 'master' into JDK-8280003-c1-logical-and
>  - Fix

src/hotspot/cpu/arm/c1_LIRGenerator_arm.cpp line 291:

> 289:   assert(type == T_LONG || type == T_INT, "should be");
> 290:   LIR_Opr r = make_constant(type, x);
> 291:   bool imm_in_range = (x >= 0) && (x <= UINT_MAX) &&

The check is too strict, what about x >= INT_MIN && x <= INT_MAX?

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

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


More information about the hotspot-compiler-dev mailing list