RFR: 8350563: C2 compilation fails because PhaseCCP does not reach a fixpoint [v2]

Liam Miller-Cushon cushon at openjdk.org
Thu Mar 6 16:05:38 UTC 2025


> Hello, please consider this fix for [JDK-8350563](https://bugs.openjdk.org/browse/JDK-8350563) contributed by my colleague Matthias Ernst.
> 
> https://github.com/openjdk/jdk/pull/22856 introduced a new `Value()` optimization for the pattern `AndIL(Con, Mask)`.
> This optimization can look through CastNodes, and therefore requires additional logic in CCP to push these
> transitive uses to the worklist.
> 
> The optimization is closely related to analogous optimizations for SHIFT nodes, and we also extend the existing logic for
> CCP worklist handling: the current logic is "if the shift input to a SHIFT node changes, push indirect AND node uses to the CCP worklist".
> We extend it by adding "if the (new) type of a node is an IntegerType that `is_con, ...` to the predicate.

Liam Miller-Cushon 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:

 - copyright
 - style
 - Merge branch 'openjdk:master' into mernst/JDK-8350563
 - RegTest
 - Merge branch 'openjdk:master' into mernst/JDK-8350563
 - push `con->(cast*)->and` uses

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/23871/files
  - new: https://git.openjdk.org/jdk/pull/23871/files/ded43c5e..a1d7826a

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=23871&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=23871&range=00-01

  Stats: 22846 lines in 760 files changed: 9209 ins; 9806 del; 3831 mod
  Patch: https://git.openjdk.org/jdk/pull/23871.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/23871/head:pull/23871

PR: https://git.openjdk.org/jdk/pull/23871


More information about the hotspot-compiler-dev mailing list