RFR: 8343745: Only update Last Value Assertion Predicates in Loop Unrolling [v2]

Christian Hagedorn chagedorn at openjdk.org
Mon Nov 11 06:26:28 UTC 2024


> (Note: This is a dependent PR on https://github.com/openjdk/jdk/pull/21944 which is fully reviewed but I'd prefer to integrate it on Monday and run again some testing over the weekend)
> 
> This is a follow-up feature to https://github.com/openjdk/jdk/pull/21944 which updated Loop Unrolling to use a new predicate visitor and enables this patch.
> 
> In Loop Unrolling, we only update the stride and not the init value of a loop. Thus, we actually only require to update the Last Value Assertion Predicates because the Init Value Assertion Predicates do not use `OpaqueLoopStride`. So, we also would not be required to kill the old Init Value Initialized Assertion Predicates. This patch implements that improvement.
> 
> To make this work, we need to query the associated `AssertionPredicateType` of an Assertion Predicate which is stored in the `If/RangeCheckNode` (I guess it's okay to have this additional node field in product). This was guarded by `NOT_PRODUCT` before. For this patch, I make this information available in product builds and use it to implement this feature.
> 
> Thanks,
> Christian

Christian Hagedorn has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase.

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/21969/files
  - new: https://git.openjdk.org/jdk/pull/21969/files/e9161d16..e9161d16

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

  Stats: 0 lines in 0 files changed: 0 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/21969.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/21969/head:pull/21969

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


More information about the hotspot-compiler-dev mailing list