RFR: 8327381 Refactor type-improving transformations in BoolNode::Ideal to BoolNode::Value
Kangcheng Xu
kxu at openjdk.org
Mon Mar 11 16:42:17 UTC 2024
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.
-------------
Commit messages:
- add license header
- also test for correctness
- exclude x86 from tests
- refactor (x & m) u<= m transformation and add test
Changes: https://git.openjdk.org/jdk/pull/18198/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=18198&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8327381
Stats: 111 lines in 2 files changed: 93 ins; 17 del; 1 mod
Patch: https://git.openjdk.org/jdk/pull/18198.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/18198/head:pull/18198
PR: https://git.openjdk.org/jdk/pull/18198
More information about the hotspot-compiler-dev
mailing list