[lworld] RFR: 8367244: [lworld] C2 compilation fails with assert "no node with a side effect" [v2]

Manuel Hässig mhaessig at openjdk.org
Thu Nov 6 07:36:34 UTC 2025


> ## Problem Analysis
> 
> The stress test `compiler/valhalla/inlinetypes/TestAcmpWithUnstableIf.java`, which uses the `StressUnstableIfTrap` flag, failed intermittently with the assert "no node with a side effect" during C2 compilation. I tracked down the origin of the failure to the raw store of the unstable if trap stress counter that was missing a memory edge to the backedge phi and thus had no side effect in the loop, which lead to the aforementioned assert. During parsing, the missing memory edge gets discarded with as vestigial parsing state when `do_if()` ends up `stopped()`. However, the effect of the stress counter should still be wired back into the backedge since it will be incremented in the next iteration.
> 
> ## Patch Description
> 
> To prevent the stress counters memory state being lost to `PreserveJVMState`, I pass it to the caller over an out-parameter and `set_memory` with that node, similar to what is already done for control. This is only necessary for the two last invocation of `do_if()` in `do_acmp()` where they are actually allowed to trap. Further, this PR reenables `StressUnstableIfTrap` in `compiler/valhalla/inlinetypes/TestAcmpWithUnstableIf.java`.
> 
> ## Testing
> 
> - [x] tier1,tier2,tier3 plus internal stress testing

Manuel Hässig has updated the pull request incrementally with one additional commit since the last revision:

  Review Christian

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

Changes:
  - all: https://git.openjdk.org/valhalla/pull/1716/files
  - new: https://git.openjdk.org/valhalla/pull/1716/files/42542a7c..9e09aa23

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

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/valhalla/pull/1716.diff
  Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1716/head:pull/1716

PR: https://git.openjdk.org/valhalla/pull/1716


More information about the valhalla-dev mailing list