RFR: 8305203: Simplify trimming operation in Region::Ideal [v3]

Xin Liu xliu at openjdk.org
Tue Apr 11 18:48:22 UTC 2023


> This patch improves how Region::Ideal trims unreachable paths. 
> 
> 1. Don't restart from beginning. Trimming doesn't change the DU-chain.
> 2. Replace DFIterator with DFIterator_Fast. The later is a raw pointer in release build.
> 3. Don't call add_users_to_worklist(this) repeatly.
> 4. ~~Reduce its strength from add_users_to_worklist to
>    add_users_to_worklist0 because RegionNode has no special logic.~~(we can't measure any change of compilation time, so there's no point to simplify it)
> 
> This patch also includes a cosmetic change: rename n to 'use' inside of the loop.
> Otherwise, we would overshadow Node* n = in(i). Nothing wrong but harder to read.

Xin Liu has updated the pull request incrementally with one additional commit since the last revision:

  Check outcnt() after loop.
  
  We avoid from calling add_users_to_worklist repeatly because we assume
  we don't delete any use of RegionNode. Assert that after loop.
  
  This patch also changes back to add_users_to_worklist. We can't measure
  any compilation time change. There's no point to use
  add_users_to_worklist0.

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/13238/files
  - new: https://git.openjdk.org/jdk/pull/13238/files/8732ee71..27f1b2ce

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

  Stats: 5 lines in 1 file changed: 3 ins; 1 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/13238.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/13238/head:pull/13238

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


More information about the hotspot-compiler-dev mailing list