RFR: 8349361: C2: RShiftL should support all applicable transformations that RShiftI does [v9]
Emanuel Peter
epeter at openjdk.org
Mon Feb 24 15:46:09 UTC 2025
On Mon, 24 Feb 2025 15:18:43 GMT, Emanuel Peter <epeter at openjdk.org> wrote:
>> Roland Westrelin 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 15 additional commits since the last revision:
>>
>> - review
>> - review
>> - review
>> - Merge branch 'master' into JDK-8349361
>> - Update src/hotspot/share/opto/mulnode.cpp
>>
>> Co-authored-by: Emanuel Peter <emanuel.peter at oracle.com>
>> - Update src/hotspot/share/opto/mulnode.cpp
>>
>> Co-authored-by: Emanuel Peter <emanuel.peter at oracle.com>
>> - review
>> - Update src/hotspot/share/opto/mulnode.hpp
>>
>> Co-authored-by: Jasmine Karthikeyan <25208576+jaskarth at users.noreply.github.com>
>> - Update src/hotspot/share/opto/mulnode.cpp
>>
>> Co-authored-by: Jasmine Karthikeyan <25208576+jaskarth at users.noreply.github.com>
>> - Update src/hotspot/share/opto/mulnode.cpp
>>
>> Co-authored-by: Jasmine Karthikeyan <25208576+jaskarth at users.noreply.github.com>
>> - ... and 5 more: https://git.openjdk.org/jdk/compare/4ffbd68b...5b05d222
>
> src/hotspot/share/opto/mulnode.cpp line 1351:
>
>> 1349: const Node* and_node = in(1);
>> 1350: if (and_node->Opcode() == Op_And(bt) &&
>> 1351: (mask_t = phase->type(and_node->in(2))->isa_integer(bt)) &&
>
> Is this an implicit null check?
>
> Style guide:
>> Do not use ints or pointers as (implicit) booleans with &&, ||, if, while. Instead, compare explicitly, i.e. if (x != 0) or if (ptr != nullptr), etc.
Honestly, why not just split the `if` into 2 ifs.
`const TypeInteger* mask_t;`
That looks a little less than nice as well.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23438#discussion_r1967875020
More information about the hotspot-compiler-dev
mailing list