RFR: 8351568: Improve source code documentation for PhaseCFG::insert_anti_dependences

Daniel Lundén dlunden at openjdk.org
Mon Apr 28 15:33:58 UTC 2025


The current documentation for `PhaseCFG::insert_anti_dependences` is difficult to follow and sometimes even misleading. We should ensure the method is appropriately documented.

### Changeset

- Rename `PhaseCFG::insert_anti_dependences` to `PhaseCFG::raise_above_anti_dependences`. The purpose of `PhaseCFG::raise_above_anti_dependences` is twofold: raise the load's LCA so that the load is scheduled before anti-dependent stores, and if necessary add anti-dependence edges between the load and certain anti-dependent stores (to ensure we later "raise" the load before anti-dependent stores in LCM). The name `PhaseCFG::insert_anti_dependences` suggests that we only add anti-dependence edges. The name `PhaseCFG::raise_above_anti_dependences`, therefore, seems more appropriate.
- Significantly add to and revise the source code documentation of `PhaseCFG::raise_above_anti_dependences`.
- Add, move, and revise `assert`s in `PhaseCFG::raise_above_anti_dependences`, including improved `assert` messages in a few places.
- In the main worklist loop of `PhaseCFG::raise_above_anti_dependences`:
  - Clean up how we identify the search root (avoid mutation).
  - Add a missing early exit for `Phi` nodes when `LCA == early`.

### Testing

- [GitHub Actions](https://github.com/dlunde/jdk/actions/runs/14706896111)
- `tier1` to `tier4` (and additional Oracle-internal testing) on Windows x64, Linux x64, Linux aarch64, macOS x64, and macOS aarch64.

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

Commit messages:
 - Implement changeset

Changes: https://git.openjdk.org/jdk/pull/24926/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24926&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8351568
  Stats: 308 lines in 6 files changed: 169 ins; 29 del; 110 mod
  Patch: https://git.openjdk.org/jdk/pull/24926.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/24926/head:pull/24926

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


More information about the hotspot-compiler-dev mailing list