RFR: 8372461: [IR Framework] Multiple test failures after JDK-8371789
Hamlin Li
mli at openjdk.org
Thu Nov 27 10:33:54 UTC 2025
On Tue, 25 Nov 2025 16:51:39 GMT, Christian Hagedorn <chagedorn at openjdk.org> wrote:
> [JDK-8371789](https://bugs.openjdk.org/browse/JDK-8371789) improved the C2 type dumps but unfortunately also broke some IR Framework internal tests and some regexes:
>
> - `TestIRMatching.java`: Forgot to update old reference to "precise". Replaced with "Constant".
> - `IRNode.CHECKCAST_ARRAY*`: Forgot to update old reference to "precise". Replaced with `Constant` and added `aryklassptr`.
> - Some clean-up to `LOAD_STORE_PREFIX` was incorrect since we no longer match various combinations tested with `TestIRMatching.java` and `TestPhaseIRMatching.java`. For example:
> https://github.com/openjdk/jdk/blob/67ef81eb78b28e5dcdf91785b476dfd0858cbd16/test/hotspot/jtreg/testlibrary_tests/ir_framework/tests/TestPhaseIRMatching.java#L766-L783
> I reverted the no-longer matching part of the regex back to what we had before JDK-8371789.
>
> #### Testing
> - [X] Tier1
> - [X] Tier5 with IR framework internal tests only
> - [ ] Failing IR framework internal tests on all platforms
>
> Thanks,
> Christian
There is following IR test failure in TestIRMatching.java:
Failed IR Rules (2) of Methods (2)
----------------------------------
1) Method "public boolean ir_framework.tests.CheckCastArray.array(java.lang.Object[])" - [Failed IR rules: 1]:
* @IR rule 1: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={}, failOn={"_#CHECKCAST_ARRAY#_"}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintOptoAssembly":
- failOn: Graph contains forbidden nodes:
* Constraint 1: "(((?i:cmp|CLFI|CLR).*aryklassptr:\[.*:Constant|.*(?i:mov|mv|or).*aryklassptr:\[.*:Constant.*\\R.*(cmp|CMP|CLR)))"
- Matched forbidden node:
* 066 + mv R7, narrowklass: aryklassptr:[instklassptr:ir_framework/tests/MyClass:NotNull+0 (java/lang/Cloneable,java/io/Serializable):Constant+0 # compressed klass ptr, #@loadConNKlass
072 + bne R28, R7, B5 #@cmp
2) Method "public java.lang.Object[] ir_framework.tests.CheckCastArray.arrayCopy(java.lang.Object[],java.lang.Class)" - [Failed IR rules: 1]:
* @IR rule 1: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={}, failOn={"_#CHECKCAST_ARRAYCOPY#_"}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintOptoAssembly":
- failOn: Graph contains forbidden nodes:
* Constraint 1: "(.*((?i:call_leaf_nofp,runtime)|CALL,\\s?runtime leaf nofp|BCTRL.*.leaf call).*checkcast_arraycopy.*)"
- Matched forbidden node:
* 1b4 + CALL, runtime leaf nofp 0x00007f88035103c0 #@CallLeafNoFPDirect checkcast_arraycopy
-------------
PR Comment: https://git.openjdk.org/jdk/pull/28495#issuecomment-3585142828
More information about the hotspot-compiler-dev
mailing list