-
Bug
-
Resolution: Fixed
-
P3
-
11, 17, 19, 20
-
b13
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8294449 | 19.0.2 | Tobias Hartmann | P3 | Resolved | Fixed | b02 |
JDK-8294177 | 17.0.6-oracle | Tobias Hartmann | P3 | Resolved | Fixed | b01 |
JDK-8295042 | 17.0.6 | Goetz Lindenmaier | P3 | Resolved | Fixed | b01 |
JDK-8294119 | 11.0.18-oracle | Tobias Hartmann | P3 | Resolved | Fixed | b01 |
JDK-8295075 | 11.0.18 | Victor Rudometov | P3 | Resolved | Fixed | b01 |
$ java -XX:-UseOnStackReplacement -XX:-BackgroundCompilation -XX:-TieredCompilation -XX:+PrintCompilation -XX:CompileOnly=TestInfiniteIGVNAfterCCP::test -XX:-PrintInlining -XX:CompileCommand=quiet -XX:PrintIdealGraphFile=graph.xml -XX:PrintIdealGraphLevel=2 -XX:-TraceLoopOpts -XX:-UseLoopPredicate -XX:-UseProfiledLoopPredicate -XX:-LoopUnswitching TestInfiniteIGVNAfterCCP
I get:
11 Parm === 3 [[ 117 127 123 127 59 ]] Parm1: TestInfiniteIGVNAfterCCP$A * Oop:TestInfiniteIGVNAfterCCP$A * !jvms: TestInfiniteIGVNAfterCCP::test @ bci:-1 (line 25)
122 IfTrue === 119 [[ 135 123 ]] #1 !jvms: TestInfiniteIGVNAfterCCP::testHelper @ bci:6 (line 32) TestInfiniteIGVNAfterCCP::test @ bci:23 (line 27)
282 IfTrue === 281 [[ 287 ]] #1 !orig=[293] !jvms: TestInfiniteIGVNAfterCCP::testHelper @ bci:57 (line 46) TestInfiniteIGVNAfterCCP::test @ bci:23 (line 27)
283 IfFalse === 281 [[ 287 ]] #0 !jvms: TestInfiniteIGVNAfterCCP::testHelper @ bci:57 (line 46) TestInfiniteIGVNAfterCCP::test @ bci:23 (line 27)
28 ConI === 0 [[ 378 319 337 311 345 ]] #int:1
305 AddP === _ 303 303 304 [[ 311 ]] Oop:java/lang/Class:exact+116 * !jvms: TestInfiniteIGVNAfterCCP::testHelper @ bci:65 (line 51) TestInfiniteIGVNAfterCCP::test @ bci:23 (line 27)
159 Phi === 396 7 395 [[ 360 309 360 309 386 386 306 347 347 ]] #memory Memory: @BotPTR *+bot, idx=Bot; !orig=[175],181 !jvms: TestInfiniteIGVNAfterCCP::testHelper @ bci:18 (line 40) TestInfiniteIGVNAfterCCP::test @ bci:23 (line 27)
308 Proj === 306 [[ 309 311 ]] #2 Memory: @BotPTR *+bot, idx=Bot; !jvms: TestInfiniteIGVNAfterCCP::testHelper @ bci:65 (line 51) TestInfiniteIGVNAfterCCP::test @ bci:23 (line 27)
306 MemBarRelease === 287 1 159 1 1 [[ 307 308 ]] !jvms: TestInfiniteIGVNAfterCCP::testHelper @ bci:65 (line 51) TestInfiniteIGVNAfterCCP::test @ bci:23 (line 27)
123 CastPP === 122 11 [[ 391 ]] #TestInfiniteIGVNAfterCCP$A:NotNull * Oop:TestInfiniteIGVNAfterCCP$A:NotNull * !orig=[132] !jvms: TestInfiniteIGVNAfterCCP::testHelper @ bci:6 (line 32) TestInfiniteIGVNAfterCCP::test @ bci:23 (line 27)
287 Region === 287 283 282 [[ 287 306 391 296 ]] !jvms: TestInfiniteIGVNAfterCCP::testHelper @ bci:64 (line 51) TestInfiniteIGVNAfterCCP::test @ bci:23 (line 27)
311 StoreB === 307 308 305 28 [[ 312 309 ]] @java/lang/Class:exact+116 *, name=barrier, idx=7; Volatile! Memory: @java/lang/Class:exact+116 *, name=barrier, idx=7; !jvms: TestInfiniteIGVNAfterCCP::testHelper @ bci:65 (line 51) TestInfiniteIGVNAfterCCP::test @ bci:23 \
(line 27)
309 MergeMem === _ 1 308 1 1 1 1 311 1 1 159 159 [[ 312 ]] { - - - - N311:java/lang/Class:exact+116 * - - N159:java/lang/Object:NotNull:exact *,iid=165 N159:java/lang/Object:NotNull:exact+8 *,iid=165 [narrowklass] } Memory: @BotPTR *+bot, idx=Bot; !jvms: TestInfinite\
IGVNAfterCCP::testHelper @ bci:65 (line 51) TestInfiniteIGVNAfterCCP::test @ bci:23 (line 27)
307 Proj === 306 [[ 312 311 ]] #0 !jvms: TestInfiniteIGVNAfterCCP::testHelper @ bci:65 (line 51) TestInfiniteIGVNAfterCCP::test @ bci:23 (line 27)
375 ConL === 0 [[ 376 ]] #long:12
391 CastPP === 287 123 [[ 376 346 376 ]] #TestInfiniteIGVNAfterCCP$A * strong dependency Oop:TestInfiniteIGVNAfterCCP$A * !orig=[295] !jvms: TestInfiniteIGVNAfterCCP::testHelper @ bci:61 (line 47) TestInfiniteIGVNAfterCCP::test @ bci:23 (line 27)
312 MemBarVolatile === 307 1 309 1 1 311 [[ 313 314 ]] !jvms: TestInfiniteIGVNAfterCCP::testHelper @ bci:65 (line 51) TestInfiniteIGVNAfterCCP::test @ bci:23 (line 27)
376 AddP === _ 391 391 375 [[ 377 380 ]] Oop:TestInfiniteIGVNAfterCCP$A+12 * !jvms: TestInfiniteIGVNAfterCCP::testHelper @ bci:86 (line 54) TestInfiniteIGVNAfterCCP::test @ bci:23 (line 27)
314 Proj === 312 [[ 386 318 321 377 347 350 380 360 ]] #2 Memory: @BotPTR *+bot, idx=Bot; !jvms: TestInfiniteIGVNAfterCCP::testHelper @ bci:65 (line 51) TestInfiniteIGVNAfterCCP::test @ bci:23 (line 27)
377 LoadI === _ 314 376 [[ 378 ]] @TestInfiniteIGVNAfterCCP$A+12 *, name=field1, idx=9; #int !jvms: TestInfiniteIGVNAfterCCP::testHelper @ bci:86 (line 54) TestInfiniteIGVNAfterCCP::test @ bci:23 (line 27)
0--> 380 StoreI === 357 314 376 378 [[ 386 ]] @TestInfiniteIGVNAfterCCP$A+12 *, name=field1, idx=9; Memory: @TestInfiniteIGVNAfterCCP$A+12 *, name=field1, idx=9; !jvms: TestInfiniteIGVNAfterCCP::testHelper @ bci:91 (line 54) TestInfiniteIGVNAfterCCP::test @ bci:2\
3 (line 27)
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/phaseX.cpp:1162
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/home/roland/jdk-jdk/src/hotspot/share/opto/phaseX.cpp:1162), pid=499468, tid=499481
# assert(false) failed: infinite loop in PhaseIterGVN::optimize
#
# JRE version: OpenJDK Runtime Environment (20.0) (fastdebug build 20-internal-adhoc.roland.jdk-jdk)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 20-internal-adhoc.roland.jdk-jdk, mixed mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x17ea077] PhaseIterGVN::optimize()+0x6b7
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h" (or dumping to /mnt/old/roland/tmp/core.499468)
#
# An error report file with more information is saved as:
# /mnt/old/roland/tmp/hs_err_pid499468.log
#
# Compiler replay data is saved as:
# /mnt/old/roland/tmp/replay_pid499468.log
#
# If you would like to submit a bug report, please visit:
# https://bugreport.java.com/bugreport/crash.jsp
#
Aborted (core dumped)
(I first ran into this running some ctw tests and wrote the test case)
- backported by
-
JDK-8294119 assert(false) failed: infinite loop in PhaseIterGVN::optimize
- Resolved
-
JDK-8294177 assert(false) failed: infinite loop in PhaseIterGVN::optimize
- Resolved
-
JDK-8294449 assert(false) failed: infinite loop in PhaseIterGVN::optimize
- Resolved
-
JDK-8295042 assert(false) failed: infinite loop in PhaseIterGVN::optimize
- Resolved
-
JDK-8295075 assert(false) failed: infinite loop in PhaseIterGVN::optimize
- Resolved
- relates to
-
JDK-8265973 [lworld] C2 compilation fails due to infinite loop in PhaseIterGVN::optimize
- Resolved
-
JDK-8287217 C2: PhaseCCP: remove not visited nodes, prevent type inconsistency
- Resolved
- links to
-
Commit openjdk/jdk11u-dev/34b1178c
-
Commit openjdk/jdk17u-dev/2fbc5cbd
-
Commit openjdk/jdk19u/83cb8842
-
Commit openjdk/jdk/6354a57b
-
Review openjdk/jdk11u-dev/1387
-
Review openjdk/jdk17u-dev/761
-
Review openjdk/jdk19u/38
-
Review openjdk/jdk/9961