RFR: 8327381: Refactor type-improving transformations in BoolNode::Ideal to BoolNode::Value [v14]

Christian Hagedorn chagedorn at openjdk.org
Tue Aug 27 13:41:10 UTC 2024


On Mon, 26 Aug 2024 17:46:51 GMT, Kangcheng Xu <kxu at openjdk.org> wrote:

>> This PR resolves [JDK-8327381](https://bugs.openjdk.org/browse/JDK-8327381)
>> 
>> Currently the transformations for expressions with patterns `((x & m) u<= m)` or `((m & x) u<= m)` to `true` is in `BoolNode::Ideal` function with a new constant node of value `1` created. However, this is technically a type-improving (reduction in range) transformation that's better suited in `BoolNode::Value` function.
>> 
>> New unit test `test/hotspot/jtreg/compiler/c2/TestBoolNodeGvn.java` asserting on IR nodes and correctness of this transformation is added and passing.
>
> Kangcheng Xu 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 25 additional commits since the last revision:
> 
>  - Merge branch 'master' into boolnode-refactor
>  - add a word break to IRNode.CMP_U
>  - Merge branch 'master' into boolnode-refactor
>  - spread boolean AND and OR into subcases, update number of expected CMP_U nodes
>  - Merge branch 'master' into boolnode-refactor
>  - Merge branch 'master' into boolnode-refactor
>  - update test values, @run directive, and remove an empty line
>  - Merge branch 'master' into boolnode-refactor
>  - move test location, add negative test case, simplify imports
>  - Merge branch 'master' into boolnode-refactor
>  - ... and 15 more: https://git.openjdk.org/jdk/compare/1d08ac0d...719199c2

Testing looked good!

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

Marked as reviewed by chagedorn (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/18198#pullrequestreview-2263397629


More information about the hotspot-compiler-dev mailing list