TestReplaceNarrowPhiWithBottomPhi fails on ppc64 platforms when running fastdebug binaries.
Example output is from AIX, but the test fails too on Linuxppc64le .
One or more @IR rules failed:
Failed IR Rules (1) of Methods (1)
----------------------------------
1) Method "public void compiler.c2.TestReplaceNarrowPhiWithBottomPhi.test1()" - [Failed IR rules: 1]:
* @IR rule 1: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#PHI#_", "2"}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\\d+(\\s){2}(Phi.*)+(\\s){2}===.*)"
- Failed comparison: [found] 3 = 2 [given]
- Matched nodes (3):
* 211 Phi === 243 26 223 [[ 223 ]] #int !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:27 (line 56)
* 239 Phi === 243 7 218 [[ 212 ]] #memory Memory: @ptr:BotPTR+bot, idx=Bot; !orig=[209] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:27 (line 56)
* 241 Phi === 243 7 220 [[ 212 ]] #memory Memory: @instptr:compiler/c2/TestReplaceNarrowPhiWithBottomPhi:BotPTR+16,iid=bot, name=field2, idx=5; !orig=239,[209] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:27 (line 56)
>>> Check stdout for compilation output of the failed methods
#############################################################
- To only run the failed tests use -DTest, -DExclude,
and/or -DScenarios.
- To also get the standard output of the test VM run with
-DReportStdout=true or for even more fine-grained logging
use -DVerbose=true.
#############################################################
compiler.lib.ir_framework.driver.irmatching.IRViolationException: There were one or multiple IR rule failures. Please check stderr for more information.
at compiler.lib.ir_framework.driver.irmatching.IRMatcher.reportFailures(IRMatcher.java:61)
at compiler.lib.ir_framework.driver.irmatching.IRMatcher.match(IRMatcher.java:49)
at compiler.lib.ir_framework.TestFramework.runTestVM(TestFramework.java:887)
at compiler.lib.ir_framework.TestFramework.start(TestFramework.java:839)
at compiler.lib.ir_framework.TestFramework.start(TestFramework.java:431)
at compiler.lib.ir_framework.TestFramework.run(TestFramework.java:235)
at compiler.lib.ir_framework.TestFramework.run(TestFramework.java:224)
at compiler.c2.TestReplaceNarrowPhiWithBottomPhi.main(TestReplaceNarrowPhiWithBottomPhi.java:41)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:335)
at java.base/java.lang.Thread.run(Thread.java:1516)
Stdout shows :
Compilation of Failed Method
----------------------------
1) Compilation of "public void compiler.c2.TestReplaceNarrowPhiWithBottomPhi.test1()":
> Phase "PrintIdeal":
AFTER: print_ideal
0 Root === 0 238 [[ 0 1 3 128 144 214 26 36 47 58 69 80 100 101 263 ]]
1 Con === 0 [[ ]] #top
3 Start === 3 0 [[ 3 5 6 7 8 9 10 ]] #{0:control, 1:abIO, 2:memory, 3:rawptr:BotPTR, 4:return_address, 5:instptr:compiler/c2/TestReplaceNarrowPhiWithBottomPhi:NotNull+0,iid=bot}
5 Parm === 3 [[ 243 ]] Control !orig=[42] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:-1 (line 48)
6 Parm === 3 [[ 238 ]] I_O !orig=[88] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:-1 (line 48)
7 Parm === 3 [[ 241 239 ]] Memory Memory: @ptr:BotPTR+bot, idx=Bot; !orig=[89] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:-1 (line 48)
8 Parm === 3 [[ 238 ]] FramePtr !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:-1 (line 48)
9 Parm === 3 [[ 238 ]] ReturnAdr !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:-1 (line 48)
10 Parm === 3 [[ 224 215 215 ]] Parm0: instptr:compiler/c2/TestReplaceNarrowPhiWithBottomPhi:NotNull+0,iid=bot Oop:instptr:compiler/c2/TestReplaceNarrowPhiWithBottomPhi:NotNull+0,iid=bot !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:-1 (line 48)
16 MergeMem === _ 1 218 1 1 220 [[ 238 ]] { - - N220:instptr:compiler/c2/TestReplaceNarrowPhiWithBottomPhi:BotPTR+16,iid=bot } Memory: @ptr:BotPTR+bot, idx=Bot;
26 ConI === 0 [[ 223 211 ]] #int:1
36 ConI === 0 [[ ]] #int:-218
47 ConI === 0 [[ ]] #int:-146
58 ConI === 0 [[ ]] #int:-66
69 ConI === 0 [[ ]] #int:-74
80 ConI === 0 [[ ]] #int:-154
100 ThreadLocal === 0 [[ 102 ]] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:11 (line 48)
101 ConL === 0 [[ 102 ]] #long:48
102 AddP === _ 1 100 101 [[ 228 ]] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:11 (line 48)
128 ConI === 0 [[ 220 ]] #int:42
144 ConI === 0 [[ 229 ]] #int:100
211 Phi === 243 26 223 [[ 223 ]] #int !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:27 (line 56)
212 MergeMem === _ 1 239 1 1 241 [[ 216 ]] { - - N241:instptr:compiler/c2/TestReplaceNarrowPhiWithBottomPhi:BotPTR+16,iid=bot } Memory: @ptr:BotPTR+bot, idx=Bot; !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:27 (line 56)
214 ConL === 0 [[ 215 ]] #long:16
215 AddP === _ 10 10 214 [[ 220 ]] Oop:instptr:compiler/c2/TestReplaceNarrowPhiWithBottomPhi:NotNull+16,iid=bot !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:30 (line 56)
216 MemBarRelease === 243 1 212 1 1 [[ 217 218 ]] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:30 (line 56)
217 Proj === 216 [[ 228 220 224 ]] #0 !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:30 (line 56)
218 Proj === 216 [[ 16 220 225 228 239 ]] #2 Memory: @ptr:BotPTR+bot, idx=Bot; !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:30 (line 56)
220 StoreI === 217 218 215 128 [[ 16 225 241 ]] @instptr:compiler/c2/TestReplaceNarrowPhiWithBottomPhi:BotPTR+16,iid=bot, name=field2, idx=5; Volatile! Memory: @instptr:compiler/c2/TestReplaceNarrowPhiWithBottomPhi:NotNull+16,iid=bot, name=field2, idx=5; !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:30 (line 56)
223 LShiftI === _ 211 26 [[ 229 224 211 ]] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:35 (line 55)
224 SafePoint === 217 1 225 1 1 228 10 1 223 [[ 231 ]] SafePoint !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:37 (line 55)
225 MergeMem === _ 1 218 1 1 220 [[ 224 ]] { - - N220:instptr:compiler/c2/TestReplaceNarrowPhiWithBottomPhi:BotPTR+16,iid=bot } Memory: @ptr:BotPTR+bot, idx=Bot; !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:37 (line 55)
228 LoadP === 217 218 102 [[ 224 ]] @rawptr:BotPTR, idx=Raw; #rawptr:BotPTR (does not depend only on test, raw access) !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:37 (line 55)
229 CmpI === _ 223 144 [[ 230 ]] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:24 (line 55)
230 Bool === _ 229 [[ 231 ]] [lt] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:24 (line 55)
231 If === 224 230 [[ 232 233 ]] P=0.874986, C=7587.000000 !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:24 (line 55)
232 IfTrue === 231 [[ 243 ]] #1 !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:24 (line 55)
233 IfFalse === 231 [[ 238 ]] #0 !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:24 (line 55)
238 Return === 233 6 16 8 9 [[ 0 ]]
239 Phi === 243 7 218 [[ 212 ]] #memory Memory: @ptr:BotPTR+bot, idx=Bot; !orig=[209] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:27 (line 56)
241 Phi === 243 7 220 [[ 212 ]] #memory Memory: @instptr:compiler/c2/TestReplaceNarrowPhiWithBottomPhi:BotPTR+16,iid=bot, name=field2, idx=5; !orig=239,[209] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:27 (line 56)
243 Loop === 243 5 232 [[ 243 211 216 241 239 ]] inner !orig=[207] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:27 (line 56)
263 ConI === 0 [[ ]] #int:0
Example output is from AIX, but the test fails too on Linuxppc64le .
One or more @IR rules failed:
Failed IR Rules (1) of Methods (1)
----------------------------------
1) Method "public void compiler.c2.TestReplaceNarrowPhiWithBottomPhi.test1()" - [Failed IR rules: 1]:
* @IR rule 1: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#PHI#_", "2"}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\\d+(\\s){2}(Phi.*)+(\\s){2}===.*)"
- Failed comparison: [found] 3 = 2 [given]
- Matched nodes (3):
* 211 Phi === 243 26 223 [[ 223 ]] #int !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:27 (line 56)
* 239 Phi === 243 7 218 [[ 212 ]] #memory Memory: @ptr:BotPTR+bot, idx=Bot; !orig=[209] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:27 (line 56)
* 241 Phi === 243 7 220 [[ 212 ]] #memory Memory: @instptr:compiler/c2/TestReplaceNarrowPhiWithBottomPhi:BotPTR+16,iid=bot, name=field2, idx=5; !orig=239,[209] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:27 (line 56)
>>> Check stdout for compilation output of the failed methods
#############################################################
- To only run the failed tests use -DTest, -DExclude,
and/or -DScenarios.
- To also get the standard output of the test VM run with
-DReportStdout=true or for even more fine-grained logging
use -DVerbose=true.
#############################################################
compiler.lib.ir_framework.driver.irmatching.IRViolationException: There were one or multiple IR rule failures. Please check stderr for more information.
at compiler.lib.ir_framework.driver.irmatching.IRMatcher.reportFailures(IRMatcher.java:61)
at compiler.lib.ir_framework.driver.irmatching.IRMatcher.match(IRMatcher.java:49)
at compiler.lib.ir_framework.TestFramework.runTestVM(TestFramework.java:887)
at compiler.lib.ir_framework.TestFramework.start(TestFramework.java:839)
at compiler.lib.ir_framework.TestFramework.start(TestFramework.java:431)
at compiler.lib.ir_framework.TestFramework.run(TestFramework.java:235)
at compiler.lib.ir_framework.TestFramework.run(TestFramework.java:224)
at compiler.c2.TestReplaceNarrowPhiWithBottomPhi.main(TestReplaceNarrowPhiWithBottomPhi.java:41)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:335)
at java.base/java.lang.Thread.run(Thread.java:1516)
Stdout shows :
Compilation of Failed Method
----------------------------
1) Compilation of "public void compiler.c2.TestReplaceNarrowPhiWithBottomPhi.test1()":
> Phase "PrintIdeal":
AFTER: print_ideal
0 Root === 0 238 [[ 0 1 3 128 144 214 26 36 47 58 69 80 100 101 263 ]]
1 Con === 0 [[ ]] #top
3 Start === 3 0 [[ 3 5 6 7 8 9 10 ]] #{0:control, 1:abIO, 2:memory, 3:rawptr:BotPTR, 4:return_address, 5:instptr:compiler/c2/TestReplaceNarrowPhiWithBottomPhi:NotNull+0,iid=bot}
5 Parm === 3 [[ 243 ]] Control !orig=[42] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:-1 (line 48)
6 Parm === 3 [[ 238 ]] I_O !orig=[88] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:-1 (line 48)
7 Parm === 3 [[ 241 239 ]] Memory Memory: @ptr:BotPTR+bot, idx=Bot; !orig=[89] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:-1 (line 48)
8 Parm === 3 [[ 238 ]] FramePtr !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:-1 (line 48)
9 Parm === 3 [[ 238 ]] ReturnAdr !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:-1 (line 48)
10 Parm === 3 [[ 224 215 215 ]] Parm0: instptr:compiler/c2/TestReplaceNarrowPhiWithBottomPhi:NotNull+0,iid=bot Oop:instptr:compiler/c2/TestReplaceNarrowPhiWithBottomPhi:NotNull+0,iid=bot !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:-1 (line 48)
16 MergeMem === _ 1 218 1 1 220 [[ 238 ]] { - - N220:instptr:compiler/c2/TestReplaceNarrowPhiWithBottomPhi:BotPTR+16,iid=bot } Memory: @ptr:BotPTR+bot, idx=Bot;
26 ConI === 0 [[ 223 211 ]] #int:1
36 ConI === 0 [[ ]] #int:-218
47 ConI === 0 [[ ]] #int:-146
58 ConI === 0 [[ ]] #int:-66
69 ConI === 0 [[ ]] #int:-74
80 ConI === 0 [[ ]] #int:-154
100 ThreadLocal === 0 [[ 102 ]] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:11 (line 48)
101 ConL === 0 [[ 102 ]] #long:48
102 AddP === _ 1 100 101 [[ 228 ]] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:11 (line 48)
128 ConI === 0 [[ 220 ]] #int:42
144 ConI === 0 [[ 229 ]] #int:100
211 Phi === 243 26 223 [[ 223 ]] #int !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:27 (line 56)
212 MergeMem === _ 1 239 1 1 241 [[ 216 ]] { - - N241:instptr:compiler/c2/TestReplaceNarrowPhiWithBottomPhi:BotPTR+16,iid=bot } Memory: @ptr:BotPTR+bot, idx=Bot; !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:27 (line 56)
214 ConL === 0 [[ 215 ]] #long:16
215 AddP === _ 10 10 214 [[ 220 ]] Oop:instptr:compiler/c2/TestReplaceNarrowPhiWithBottomPhi:NotNull+16,iid=bot !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:30 (line 56)
216 MemBarRelease === 243 1 212 1 1 [[ 217 218 ]] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:30 (line 56)
217 Proj === 216 [[ 228 220 224 ]] #0 !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:30 (line 56)
218 Proj === 216 [[ 16 220 225 228 239 ]] #2 Memory: @ptr:BotPTR+bot, idx=Bot; !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:30 (line 56)
220 StoreI === 217 218 215 128 [[ 16 225 241 ]] @instptr:compiler/c2/TestReplaceNarrowPhiWithBottomPhi:BotPTR+16,iid=bot, name=field2, idx=5; Volatile! Memory: @instptr:compiler/c2/TestReplaceNarrowPhiWithBottomPhi:NotNull+16,iid=bot, name=field2, idx=5; !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:30 (line 56)
223 LShiftI === _ 211 26 [[ 229 224 211 ]] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:35 (line 55)
224 SafePoint === 217 1 225 1 1 228 10 1 223 [[ 231 ]] SafePoint !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:37 (line 55)
225 MergeMem === _ 1 218 1 1 220 [[ 224 ]] { - - N220:instptr:compiler/c2/TestReplaceNarrowPhiWithBottomPhi:BotPTR+16,iid=bot } Memory: @ptr:BotPTR+bot, idx=Bot; !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:37 (line 55)
228 LoadP === 217 218 102 [[ 224 ]] @rawptr:BotPTR, idx=Raw; #rawptr:BotPTR (does not depend only on test, raw access) !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:37 (line 55)
229 CmpI === _ 223 144 [[ 230 ]] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:24 (line 55)
230 Bool === _ 229 [[ 231 ]] [lt] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:24 (line 55)
231 If === 224 230 [[ 232 233 ]] P=0.874986, C=7587.000000 !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:24 (line 55)
232 IfTrue === 231 [[ 243 ]] #1 !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:24 (line 55)
233 IfFalse === 231 [[ 238 ]] #0 !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:24 (line 55)
238 Return === 233 6 16 8 9 [[ 0 ]]
239 Phi === 243 7 218 [[ 212 ]] #memory Memory: @ptr:BotPTR+bot, idx=Bot; !orig=[209] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:27 (line 56)
241 Phi === 243 7 220 [[ 212 ]] #memory Memory: @instptr:compiler/c2/TestReplaceNarrowPhiWithBottomPhi:BotPTR+16,iid=bot, name=field2, idx=5; !orig=239,[209] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:27 (line 56)
243 Loop === 243 5 232 [[ 243 211 216 241 239 ]] inner !orig=[207] !jvms: TestReplaceNarrowPhiWithBottomPhi::test1 @ bci:27 (line 56)
263 ConI === 0 [[ ]] #int:0
- caused by
-
JDK-8370200 Crash: assert(outer->outcnt() >= phis + 2 - be_loads && outer->outcnt() <= phis + 2 + stores + 1) failed: only phis
-
- Resolved
-