RFR: 8361140: Missing OptimizePtrCompare check in ConnectionGraph::reduce_phi_on_cmp [v3]

Cesar Soares Lucas cslucas at openjdk.org
Thu Jul 10 17:21:40 UTC 2025


On Thu, 10 Jul 2025 14:32:57 GMT, Guanqiang Han <duke at openjdk.org> wrote:

>> When running with `-XX:-OptimizePtrCompare` (which disables pointer comparison optimization), the compiler may hit an assertion failure in debug builds because `optimize_ptr_compare` is still being called. This violates the intended usage of the flag and leads to unexpected crashes.
>> 
>> This patch adds an early return to `reduce_phi_on_cmp` when `OptimizePtrCompare` is false. Since the optimization relies on `optimize_ptr_compare` for static reasoning about comparisons, there's no benefit in proceeding with `reduce_phi_on_cmp` when this flag is disabled.
>
> Guanqiang Han 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. The pull request contains five additional commits since the last revision:
> 
>  - update regression test
>  - Merge remote-tracking branch 'upstream/master' into 8361140
>  - update modification and add regression test
>  - Merge remote-tracking branch 'upstream/master' into 8361140
>  - 8361140: Missing OptimizePtrCompare check in ConnectionGraph::reduce_phi_on_cmp
>    
>    When running with `-XX:-OptimizePtrCompare` (which disables pointer comparison optimization), the compiler may hit an assertion failure in debug builds because `optimize_ptr_compare` is still being called. This violates the intended usage of the flag and leads to unexpected crashes.
>    
>    This patch adds an early return to `reduce_phi_on_cmp` when `OptimizePtrCompare` is false. Since the optimization relies on `optimize_ptr_compare` for static reasoning about comparisons, there's no benefit in proceeding with `reduce_phi_on_cmp` when this support is disabled.

Marked as reviewed by cslucas (Committer).

test/hotspot/jtreg/compiler/c2/TestReducePhiOnCmpWithNoOptPtrCompare.java line 47:

> 45:     @Run(test = {"testReducePhiOnCmp_C2"})
> 46:     public void runner(RunInfo info) {
> 47:         invocations++;

I don't think you need this variable anymroe.

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

PR Review: https://git.openjdk.org/jdk/pull/26125#pullrequestreview-3006614681
PR Review Comment: https://git.openjdk.org/jdk/pull/26125#discussion_r2198280733


More information about the hotspot-compiler-dev mailing list