RFR: 8343137: C2: VerifyLoopOptimizations fails with "Was reachable in only one"

Christian Hagedorn chagedorn at openjdk.org
Mon Oct 28 12:48:08 UTC 2024


On Mon, 28 Oct 2024 12:41:02 GMT, Christian Hagedorn <chagedorn at openjdk.org> wrote:

> [JDK-8342043](https://bugs.openjdk.org/browse/JDK-8342043) introduced a new usage of `igvn.intcon()` but missed to call `set_ctrl()`. This simple patch fixes this.
> 
> While working on this, I've noticed that a few Assertion Predicates tests ended up in the `predicates` directory while they would have better been placed into `predicates/assertion`. It's probably not worth to file a separate issue just for that, so I've squeezed this trivial move into this fix. Note that `AssertionPredicateDoesntConstantFold` does not define a package and thus does not need an update to the command line.
> 
> Thanks,
> Christian

src/hotspot/share/opto/loopnode.cpp line 4492:

> 4490:     if (!useful_predicates.member(opaque_node)) { // not in the useful list
> 4491:       ConINode* one = _igvn.intcon(1);
> 4492:       set_ctrl(one, C->root());

Noticed that we find this pattern quite often in our code. Would be nice to have a `PhaseIdealLoop::intcon()` which calls `igvn.intcon()` and takes care of setting ctrl. I filed [JDK-8343148](https://bugs.openjdk.org/browse/JDK-8343148) to keep track of that.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/21739#discussion_r1818992863


More information about the hotspot-compiler-dev mailing list