RFR: 8344171: Clone and initialize Assertion Predicates in order instead of in reverse-order [v5]
Emanuel Peter
epeter at openjdk.org
Thu Nov 28 09:00:25 UTC 2024
On Thu, 28 Nov 2024 08:56:53 GMT, Christian Hagedorn <chagedorn at openjdk.org> wrote:
>> This patch changes the order in which we clone and initialize Assertion Predicates from "reverse-order" to "in-order".
>>
>> #### Current State: Mostly "reverse-order" for Assertion Predicates
>> We are currently cloning and initializing Assertion Predicates in reverse-order out of convenience and simplicity for most of the loop splitting optimizations - except for Loop Unswitching (see next section). This means that we do the following:
>>
>> old target loop entry
>> |
>> x Cloned Template Assertion
>> | Predicate 2
>> Template Assertion |
>> Predicate 1 Initialized Assertion
>> | ==> Predicate 2
>> Template Assertion |
>> Predicate 2 Cloned Template Assertion
>> | Predicate 1
>> source loop |
>> Initialized Assertion
>> Predicate 1
>> |
>> target loop
>>
>> I don't think this is wrong but still kinda unexpected when trying to reason about a graph. But now with the recent refactorings, I think it's easy to change this to an in-order processing:
>>
>> old target loop entry
>> |
>> x Cloned Template Assertion
>> | Predicate 1
>> Template Assertion |
>> Predicate 1 Initialized Assertion
>> | ==> Predicate 1
>> Template Assertion |
>> Predicate 2 Cloned Template Assertion
>> | Predicate 2
>> source loop |
>> Initialized Assertion
>> Predicate 2
>> |
>> target loop
>>
>> This will also align all cloning/initializing of Assertion Predicates to the same order which was not the case before: Loop Unswitching already had an in...
>
> Christian Hagedorn has updated the pull request incrementally with two additional commits since the last revision:
>
> - Revert "8344035: Replace predicate walking code in Loop Unswitching with a predicate visitor"
>
> This reverts commit 550933659a8021131d9d1424fc6ff77b51745cbe.
> - 8344035: Replace predicate walking code in Loop Unswitching with a predicate visitor
Marked as reviewed by epeter (Reviewer).
-------------
PR Review: https://git.openjdk.org/jdk/pull/22275#pullrequestreview-2467211464
More information about the hotspot-compiler-dev
mailing list