RFR: 8312213: Remove unnecessary TEST instructions on x86 when flags reg will already be set [v6]
Jorn Vernee
jvernee at openjdk.org
Thu Aug 10 10:38:28 UTC 2023
On Thu, 10 Aug 2023 06:48:21 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:
>> Ok, thanks. I've submitted another CI run.
>
> @JornVernee's testing failed:
>
> `-ea -esa -XX:CompileThreshold=100 -XX:+UnlockExperimentalVMOptions -server -XX:-TieredCompilation`
>
>
>
> Failed IR Rules (6) of Methods (6)
> ----------------------------------
> 1) Method "public boolean compiler.c2.irTests.TestTestRemovalPeephole.testIntAddtionEquals0(int,int)" - [Failed IR rules: 1]:
> * @IR rule 1: "@compiler.lib.ir_framework.IR(applyIfCPUFeatureAnd={}, phase={FINAL_CODE}, applyIf={}, applyIfCPUFeatureOr={}, applyIfCPUFeature={}, counts={}, applyIfAnd={}, failOn={"_#X86_TESTI_REG#_", "_#X86_TESTL_REG#_"}, applyIfOr={}, applyIfNot={})"
> > Phase "Final Code":
> - failOn: Graph contains forbidden nodes:
> * Constraint 1: "(\\d+(\\s){2}(testI_reg.*)+(\\s){2}===.*)"
> - Matched forbidden node:
> * 10 testI_reg === _ 11 [[ 9 ]] #0/0x00000000
>
> 2) Method "public boolean compiler.c2.irTests.TestTestRemovalPeephole.testIntAddtionNotEquals0(int,int)" - [Failed IR rules: 1]:
> * @IR rule 1: "@compiler.lib.ir_framework.IR(applyIfCPUFeatureAnd={}, phase={FINAL_CODE}, applyIf={}, applyIfCPUFeatureOr={}, applyIfCPUFeature={}, counts={}, applyIfAnd={}, failOn={"_#X86_TESTI_REG#_", "_#X86_TESTL_REG#_"}, applyIfOr={}, applyIfNot={})"
> > Phase "Final Code":
> - failOn: Graph contains forbidden nodes:
> * Constraint 1: "(\\d+(\\s){2}(testI_reg.*)+(\\s){2}===.*)"
> - Matched forbidden node:
> * 10 testI_reg === _ 11 [[ 9 ]] #0/0x00000000
>
> 3) Method "public boolean compiler.c2.irTests.TestTestRemovalPeephole.testIntOrEquals0(int,int)" - [Failed IR rules: 1]:
> * @IR rule 1: "@compiler.lib.ir_framework.IR(applyIfCPUFeatureAnd={}, phase={FINAL_CODE}, applyIf={}, applyIfCPUFeatureOr={}, applyIfCPUFeature={}, counts={}, applyIfAnd={}, failOn={"_#X86_TESTI_REG#_", "_#X86_TESTL_REG#_"}, applyIfOr={}, applyIfNot={})"
> > Phase "Final Code":
> - failOn: Graph contains forbidden nodes:
> * Constraint 1: "(\\d+(\\s){2}(testI_reg.*)+(\\s){2}===.*)"
> - Matched forbidden node:
> * 10 testI_reg === _ 11 [[ 9 ]] #0/0x00000000
>
> 4) Method "public boolean compiler.c2.irTests.TestTestRemovalPeephole.testIntOrGreater0(int,int)" - [Failed IR rules: 1]:
> * @IR rule 1: "@compiler.lib.ir_framework.IR(applyIfCPUFeatureAnd={}, phase={FINAL_CODE}, applyIf={}, applyIfCPUFeatureOr={}, applyIfCPUFeature={}, counts={}, applyIfAnd={}, failOn={"_#X86_TESTI_REG#_", "_#X86_TESTL_REG#_"}, applyIfOr={}, applyIfNot={})"
> > Phase "Final Code":
> ...
Hey @TobiHartmann that's the old test run for commit hash `af93415`, the newer one for commit `9872e71` came back clean (there are just 3 known failures).
-------------
PR Comment: https://git.openjdk.org/jdk/pull/14172#issuecomment-1672958797
More information about the hotspot-compiler-dev
mailing list