RFR: 8280003: C1: Reconsider uses of logical_and immediates in LIRGenerator::do_getObjectSize [v3]
Sergey Nazarkin
snazarki at openjdk.java.net
Wed Jan 19 20:35:58 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/share/c1/c1_LIRGenerator.cpp line 1351:
> 1349: assert((int) Klass::_lh_instance_slow_path_bit < BytesPerLong, "clear bit");
> 1350:
> 1351: LIR_Opr mask = load_immediate(~(jint) right_n_bits(LogBytesPerLong), T_INT);
Just to note: taken a look at generated code to check why this helps with wrong result issue. It appears jdk suffers from the problem of inlining of this code into caller method since this lines are never executed for small array case
-------------
PR: https://git.openjdk.java.net/jdk/pull/7080
More information about the hotspot-compiler-dev
mailing list