RFR: 8336635: Add IR test for Reference.refersTo intrinsic [v3]
Aleksey Shipilev
shade at openjdk.org
Fri Jul 19 14:05:49 UTC 2024
On Fri, 19 Jul 2024 05:31:43 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:
>> Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Whitespace
>
> The new test failed with `-ea -esa -XX:CompileThreshold=100 -XX:+UnlockExperimentalVMOptions -server -XX:-TieredCompilation`
>
>
> Failed IR Rules (3) of Methods (3)
> ----------------------------------
> 1) Method "public boolean compiler.c2.irTests.gc.ReferenceRefersToTests.phantom_null()" - [Failed IR rules: 1]:
> * @IR rule 1: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#LOAD#_", "1"}, applyIfPlatformOr={}, failOn={}, applyIfPlatform={}, applyIfOr={}, applyIfCPUFeatureAnd={}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> > Phase "PrintIdeal":
> - counts: Graph contains wrong number of nodes:
> * Constraint 1: "(\\d+(\\s){2}(Load(B|UB|S|US|I|L|F|D|P|N).*)+(\\s){2}===.*)"
> - Failed comparison: [found] 0 = 1 [given]
> - No nodes matched!
>
> 2) Method "public boolean compiler.c2.irTests.gc.ReferenceRefersToTests.soft_null()" - [Failed IR rules: 1]:
> * @IR rule 1: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#LOAD#_", "1"}, applyIfPlatformOr={}, failOn={}, applyIfPlatform={}, applyIfOr={}, applyIfCPUFeatureAnd={}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> > Phase "PrintIdeal":
> - counts: Graph contains wrong number of nodes:
> * Constraint 1: "(\\d+(\\s){2}(Load(B|UB|S|US|I|L|F|D|P|N).*)+(\\s){2}===.*)"
> - Failed comparison: [found] 0 = 1 [given]
> - No nodes matched!
>
> 3) Method "public boolean compiler.c2.irTests.gc.ReferenceRefersToTests.soft_ref()" - [Failed IR rules: 1]:
> * @IR rule 1: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#LOAD#_", "1"}, applyIfPlatformOr={}, failOn={}, applyIfPlatform={}, applyIfOr={}, applyIfCPUFeatureAnd={}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> > Phase "PrintIdeal":
> - counts: Graph contains wrong number of nodes:
> * Constraint 1: "(\\d+(\\s){2}(Load(B|UB|S|US|I|L|F|D|P|N).*)+(\\s){2}===.*)"
> - Failed comparison: [found] 0 = 1 [given]
> - No nodes matched!
>
>
> Here are the logs:
> [fail1.txt](https://github.com/user-attachments/files/16302499/fail1.txt)
> [fail2.txt](https://github.com/user-attachments/files/16302504/fail2.txt)
Reproduced the failure locally. The failure happens when C2 does not inline the code aggressively, so we do not reach the intrinsics. Amended the test to make it more reliable. Does not fail with 1000 repetitions. Please test again, @TobiHartmann? Thanks.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/20215#issuecomment-2239253104
More information about the hotspot-compiler-dev
mailing list