RFR: 8334647: C2: CastII added by PhaseIdealLoop::add_template_assertion_predicate() should have control

Roland Westrelin roland at openjdk.org
Thu Jun 20 14:55:34 UTC 2024


`PhaseIdealLoop::add_template_assertion_predicate()` creates a new
`CastII` but doesn't set its control. I think it's good practice to
always set the control of a `CastII` when it narrows the type of its
input (it has to be control dependent on some condition that makes the
narrowing possible). This is also motivated by
https://bugs.openjdk.org/browse/JDK-8275202 where a node that becomes
top is used as an indication that control flow where the node changes
type can constant fold. This only works if control is set correctly.

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

Commit messages:
 - fix

Changes: https://git.openjdk.org/jdk/pull/19808/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19808&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8334647
  Stats: 5 lines in 2 files changed: 3 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/19808.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/19808/head:pull/19808

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


More information about the hotspot-compiler-dev mailing list