JDK-8078262 : SIGSEGV crash (PhaseIdealLoop::build_loop_late_post(Node*))
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 8u40,8u60,9
  • Priority: P2
  • Status: Closed
  • Resolution: Duplicate
  • OS: generic
  • Submitted: 2015-04-21
  • Updated: 2015-08-24
  • Resolved: 2015-08-24
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 9
9Resolved
Related Reports
Duplicate :  
Duplicate :  
Description
The attached test crashes on JDK 8u40 and JDK 8u60b11.

Steps to reproduce:
1. Unpack the attached project
2. Run "mvn test".

It may be necessary to run it several times before seeing the crash. On:
Linux lahvacovo 3.16.0-31-generic #41-Ubuntu SMP Tue Feb 10 15:24:04 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
with 4 cores, approximately 1 of 10 runs crashes.

It was reported the probability of the crashes depends on the number of cores - with 8 cores, the crash is said to be more likely.

Attached is the test project and hs_err*log files for JDK8u40 and JDK8u60. I can provide core files, if desired.

This appears to be similar to JDK-8059529, but the bug described herein was not seen on JDK8u20.
Comments
I will fix this with JDK-6675699. Closing as duplicate.
24-08-2015

Yes, it's hard to say anything because there is some variance. At least it shows that we don't introduce a large regression but I'm afraid that the changes prevent optimizations that do not show up in the benchmark results. Any suggestions on how to proceed? Should I pick some of the benchmarks and try to analyze them in detail? It's hard to determine if optimizations fail after the change.
03-07-2015

Results are mixed - we can't say that changes are safe.
02-07-2015

I implemented a first prototype that adds a CastIINode with a control edge to the range check as input to the ConvI2L node: http://cr.openjdk.java.net/~thartmann/8078262/webrev.00/ Currently doing correctness and performance testing.
30-06-2015

8u60-defer-request: The bug is not a regression but another instance of a long known problem (JDK-6675699). A robust fix is complex and requires thorough investigation and testing to not introduce performance regressions. I recommend to defer this to JDK 9.
24-06-2015

This is another instance of a long known problem with ConvI2L nodes getting assigned a narrow type but having no dependency with the corresponding range check (JDK-6675699). Related bugs showed already up in 2002 and were only partially fixed. The underlying problem is complex and a robust fix requires thorough investigation and testing to not introduce a performance regression.
18-06-2015

I was able to create as small and simple regression test (TestLoopPeeling.java).
18-06-2015

I finally narrowed down the exact problem (see [1]). We have two stores coming from the inlined 'insertKeyAt': 816 StoreI: _set[firstRemoved] = val (line 318) 1297 StoreI: _set[firstRemoved] = val (line 337) Both use the index 'firstRemoved' computed either by the main loop (629 Phi -> 1601 ConvI2L -> 1597 LShiftL) or the peeled iteration (1656 Phi -> 1655 ConvI2L -> 1645 LShiftL) determined by 1735 Phi and 1736 Phi, respectively. Depending on the loop exit, we execute one of the two stores: 1709 Region: Merge loop exit 1 (line 319) of old and peeled loop 1717 Region: Merge loop exit 2 (line 332) of old and peeled loop Note that we cannot move the ConvI2L or LShiftL nodes out of the loop because we have uses after both loop exits and the LShiftL has to dominate both. Each store has a range check (804 and 1285) that is kind of "independent" from the corresponding ConvI2L node. The crash now occurs when the 1655 ConvI2L of the peeled loop is replaced by TOP because it's input ('firstRemoved' 1656 Phi) is always -1 for the first iteration. The TOP is propagated downwards (removing 1645 LShiftL and 1736 Phi) and leaves the 1597 LShiftL of the old loop as only input to the AddP (see [2]). However, the corresponding range check wasn't folded because we don't do the split ifs optimization in this phase (PhaseIdealLoop2) and don't notice that the path is dead. As a result there is a (dead) control path to the StoreI from the peeled iteration that uses the 'firstRemoved' index from the old iteration. I'm not yet sure how to fix this. Roland said: "I think the root cause is that there's a dependency between the ConvI2L and the range check and we leave it implicit rather than explicit. So the proper fix in my opinion would be to set that dependency. In Compile::conv_I2X_index(), we could add a CastII with a control dependency on the range check that casts idx to TypeInt::make(0, index_max, Type::WidenMax) and then the ConvI2L with the CastII as input. Then we could remove the CastII in ConvI2LNode::Ideal() when if (can_reshape && !phase->C->major_progress()) { (after loop opts). I wonder how disruptive that change would be. That would require perf experiments to validate that it doesn't cause a regression." [1] http://cr.openjdk.java.net/~thartmann/8078262/Graph3.png [2] http://cr.openjdk.java.net/~thartmann/8078262/Graph2.png
17-06-2015

8u60-critical-watch justification: The bug crashes the VM while compiling a method and is easily reproducible. The only known workaround (-XX:-UseLoopPredicate) has an impact on performance. The bug was reported by a customer and should be fixed in 8u60 if possible.
16-06-2015

The problem is that C2 completely removes the computation of the array address by the inlined method insertKeyAt (line 318) because for the peeled iteration of the loop we assume (_state == FULL) => (firstRemoved == -1) and therefore never reach line 318. However, C2 is unable to remove the corresponding control path to line 318 and fails because it assumes that we may reach that point from the peeled body but use the array address from the old body. Graph [1] shows the Region (1709) that merges the exit controls from the peeled body and the old body. The If (731) checks if (firstRemoved != -1). This is always false if we come from IfFalse (1708) which corresponds to the peeled body because Phi (1742) is -1 (ConL 105). We could therefore connect IfFalse (1708) with IfFalse (733) and ommit the check. From my understanding, the split_if optimization should take care of this. However, from the code it looks like as if we don't support this case (// CNC - do not allow any other merged value). [1] https://bugs.openjdk.java.net/secure/attachment/50746/Split_if.png
15-06-2015

After stepping through the compiler phases and analyzing the graph, here is my intermediate analysis: We are compiling TIntIntHash::insertKey and inline TIntIntHash::insertKeyRehash (see [1]). The method is inserting a key into a hash map by computing a hash value and checking the _state of the corresponding slot in the hash map. In PhaseIdealLoop3 we peel the loop inTIntIntHash::insertKeyRehash [2] and fail after the following IGVN because the 1597 LShiftLNode, which computes the array index in '_set' to store 'val', can be moved out of the loop although it is loop variant (see calls to TIntIntHash::insertKeyAt [3]). More detailed: Graph1 [4] shows the merged exit control flows (Region 1709) from the peeled iteration (left side) and the loop (right side). Node 816 StoreI is the final store of 'val' into '_set'. The array index is computed either by 1645 LShiftL (if we exit from the peeled iteration) or 1597 LShiftL (if we exit from the loop). Greatly simplified the setting looks like this: peeled: if (state == FREE && ...) { index = [Compute]; goto write; } loop { if (state == FREE && ...) { index = [Compute]; goto write; } } write: _set[index] = 42; Graph2 [5] shows the two shift nodes and the peeled loop iteration (1659 Loop with backbranch TOP). At this point the graph is still 'valid'. The problem now is that IGVN completely removes the array index computed by the peeled iteration because the type system infers that _state is always == FULL for the peeled iteration and therefore we never jump to 'write' from there. Looking at the graph this assumption seems to be legit because we check for (_state == FULL) just before. This is the case right after parsing. However, this behaviour is not reflected in the Java code. As a result, we have a control path from the peeled iteration to 'write' but no corresponding data path. Reaching 'write' from the peeled iteration would use the index computed by the loop which is only executed after. This causes the "bad dominance" error. At the moment, I try to answer the following questions: - Why do we assume (_state == 1)? - Why is the control path from the peeled iteration not removed as well? Unfortunately, the graph is quite complicated because the bug only reproduces with maven and JaCoCo which adds instrumentation code by bytecode injection. [1] http://grepcode.com/file/repo1.maven.org/maven2/net.sf.trove4j/trove4j/3.0.3/gnu/trove/impl/hash/TIntIntHash.java#TIntIntHash.insertKey%28int%29 [2] http://grepcode.com/file/repo1.maven.org/maven2/net.sf.trove4j/trove4j/3.0.3/gnu/trove/impl/hash/TIntIntHash.java#304 [3] http://grepcode.com/file/repo1.maven.org/maven2/net.sf.trove4j/trove4j/3.0.3/gnu/trove/impl/hash/TIntIntHash.java#318 [4] https://bugs.openjdk.java.net/secure/attachment/28629/Graph1.png [5] https://bugs.openjdk.java.net/secure/attachment/28630/Graph2.png
05-06-2015

I'm able to reproduce the issue and can confirm that it disappears with -XX:-UseLoopPredicate. I was able to narrow it down to the following three methods: - TIntIntHash::insertKeyAt - TIntIntHash::insertKeyRehash - TIntIntHash::insertKey The crash happens while compiling TIntIntHash::insertKey and inlining the other methods. I was able to reproduce the bug with: -XX:CompileCommand=compileonly,gnu.trove.impl.hash.TIntIntHash::insertKeyRehash -XX:CompileCommand=compileonly,gnu.trove.impl.hash.TIntIntHash::insertKey -XX:CompileCommand=compileonly,gnu.trove.impl.hash.TIntIntHash::insertKeyAt Now looking at the graph to figure out what's happening.
29-05-2015

Taking this over from Rickard.
29-05-2015

I've so far not been able to reproduce the error with -XX:-UseLoopPredicate
27-05-2015

Attached.
27-05-2015

Attach replay and hs_err files from your slowdebug crash.
08-05-2015

Output from failure in a slowdebug build: Bad graph detected in compute_lca_of_uses n: 759 MergeMem === _ 1 352 1 749 1 1 1 1 721 [[ 764 ]] { - N749:byte[int:>=0]:exact+any * - - - - N721:int[int:>=0]:exact+any * } Memory: @BotPTR *+bot, idx=Bot; !jvms: TIntIntHash::insertKeyRehash @ bci:135 TIntIntHash::insertKey @ bci:111 early(n): 501 Region === 501 506 505 477 [[ 501 557 530 551 ]] !jvms: TIntIntHash::insertKeyRehash @ bci:73 TIntIntHash::insertKey @ bci:111 n->in(2): 352 Proj === 349 [[ 16 1193 365 431 374 424 407 392 773 1303 732 1165 1271 908 721 1135 1108 569 775 592 1087 607 840 1072 626 825 1021 1015 1001 972 957 942 892 892 892 443 759 879 706 456 ]] #2 Memory: @BotPTR *+bot, idx=Bot; !orig=[434],[467] !jvms: TIntIntHash::insertKeyRehash @ bci:0 TIntIntHash::insertKey @ bci:111 early(n->in(2)): 349 CallStaticJava === 328 6 346 8 1 ( 1 1 34 1 1 1 10 11 119 84 37 1 1 1 1 1 ) [[ 350 351 352 354 ]] # Static gnu.trove.impl.hash.TIntIntHash::$jacocoInit bool[int:>=0]:exact * ( ) TIntIntHash::insertKeyRehash @ bci:0 TIntIntHash::insertKey @ bci:111 !jvms: TIntIntHash::insertKeyRehash @ bci:0 TIntIntHash::insertKey @ bci:111 n->in(4): 749 StoreB === 735 747 263 37 [[ 759 771 ]] @byte[int:>=0]:exact+any *, idx=4; Memory: @bool[int:75]<ciTypeArray length=75 type=<ciTypeArrayKlass name=[Z ident=813 address=0x00007f08fc6018d0> ident=835 SCAVENGABLE address=0x00007f08041e1910>[12] *, idx=4; !jvms: TIntIntHash::insertKeyAt @ bci:22 TIntIntHash::insertKeyRehash @ bci:125 TIntIntHash::insertKey @ bci:111 early(n->in(4)): 501 Region === 501 506 505 477 [[ 501 557 530 551 ]] !jvms: TIntIntHash::insertKeyRehash @ bci:73 TIntIntHash::insertKey @ bci:111 n->in(4)->in(0): 735 IfTrue === 734 [[ 1220 747 749 ]] #1 !jvms: TIntIntHash::insertKeyAt @ bci:17 TIntIntHash::insertKeyRehash @ bci:125 TIntIntHash::insertKey @ bci:111 n->in(4)->in(1): 747 StoreB === 735 1453 1121 37 [[ 749 ]] @byte[int:>=0]:exact+any *, idx=4; Memory: @byte[int:>=0]:NotNull:exact+any *, idx=4; !jvms: TIntIntHash::insertKeyAt @ bci:17 TIntIntHash::insertKeyRehash @ bci:125 TIntIntHash::insertKey @ bci:111 early(n->in(4)->in(1)): 501 Region === 501 506 505 477 [[ 501 557 530 551 ]] !jvms: TIntIntHash::insertKeyRehash @ bci:73 TIntIntHash::insertKey @ bci:111 n->in(4)->in(1)->in(0): 735 IfTrue === 734 [[ 1220 747 749 ]] #1 !jvms: TIntIntHash::insertKeyAt @ bci:17 TIntIntHash::insertKeyRehash @ bci:125 TIntIntHash::insertKey @ bci:111 n->in(4)->in(2): 263 AddP === _ 34 34 262 [[ 264 749 868 1125 ]] !jvms: TIntIntHash::insertKeyAt @ bci:22 TIntIntHash::insertKey @ bci:49 early(n->in(4)->in(2)): 0 Root === 0 101 118 201 217 1192 1174 288 303 318 378 396 411 428 450 463 1010 981 951 578 601 1081 635 1153 715 741 768 1144 834 1193 888 917 1117 [[ 0 1 3 1189 34 35 37 1181 68 1175 78 79 83 85 96 103 113 129 136 143 186 212 220 1158 262 1148 269 283 1145 333 383 399 429 445 458 482 510 527 531 548 562 579 585 752 769 872 889 901 918 965 982 994 1011 1128 1218 1249 1501 1503 1505 1507 1509 1511 ]] n->in(4)->in(3): 37 ConI === 0 [[ 1191 1183 1170 1177 81 1140 155 1147 1125 260 459 349 264 271 284 275 335 398 431 407 424 439 452 500 1268 529 1270 550 1269 581 574 603 597 1113 314 747 737 749 771 764 775 1123 1006 866 446 868 891 884 893 920 913 984 977 1013 947 977 1272 424 1262 1266 1265 ]] #int:1 early(n->in(4)->in(3)): 0 Root === 0 101 118 201 217 1192 1174 288 303 318 378 396 411 428 450 463 1010 981 951 578 601 1081 635 1153 715 741 768 1144 834 1193 888 917 1117 [[ 0 1 3 1189 34 35 37 1181 68 1175 78 79 83 85 96 103 113 129 136 143 186 212 220 1158 262 1148 269 283 1145 333 383 399 429 445 458 482 510 527 531 548 562 579 585 752 769 872 889 901 918 965 982 994 1011 1128 1218 1249 1501 1503 1505 1507 1509 1511 ]] n->in(9): 721 StoreI === 709 352 1085 11 [[ 773 732 759 ]] @int[int:>=0]:exact+any *, idx=9; Memory: @int[int:>=0]:NotNull:exact+any *, idx=9; !jvms: TIntIntHash::insertKeyAt @ bci:10 TIntIntHash::insertKeyRehash @ bci:125 TIntIntHash::insertKey @ bci:111 early(n->in(9)): 501 Region === 501 506 505 477 [[ 501 557 530 551 ]] !jvms: TIntIntHash::insertKeyRehash @ bci:73 TIntIntHash::insertKey @ bci:111 n->in(9)->in(0): 709 IfTrue === 708 [[ 721 734 ]] #1 !jvms: TIntIntHash::insertKeyAt @ bci:10 TIntIntHash::insertKeyRehash @ bci:125 TIntIntHash::insertKey @ bci:111 n->in(9)->in(1): 352 Proj === 349 [[ 16 1193 365 431 374 424 407 392 773 1303 732 1165 1271 908 721 1135 1108 569 775 592 1087 607 840 1072 626 825 1021 1015 1001 972 957 942 892 892 892 443 759 879 706 456 ]] #2 Memory: @BotPTR *+bot, idx=Bot; !orig=[434],[467] !jvms: TIntIntHash::insertKeyRehash @ bci:0 TIntIntHash::insertKey @ bci:111 early(n->in(9)->in(1)): 349 CallStaticJava === 328 6 346 8 1 ( 1 1 34 1 1 1 10 11 119 84 37 1 1 1 1 1 ) [[ 350 351 352 354 ]] # Static gnu.trove.impl.hash.TIntIntHash::$jacocoInit bool[int:>=0]:exact * ( ) TIntIntHash::insertKeyRehash @ bci:0 TIntIntHash::insertKey @ bci:111 !jvms: TIntIntHash::insertKeyRehash @ bci:0 TIntIntHash::insertKey @ bci:111 n->in(9)->in(2): 1085 AddP === _ 379 1086 136 [[ 1087 721 ]] !orig=[719] !jvms: TIntIntHash::insertKeyAt @ bci:10 TIntIntHash::insertKeyRehash @ bci:226 TIntIntHash::insertKey @ bci:111 early(n->in(9)->in(2)): 501 Region === 501 506 505 477 [[ 501 557 530 551 ]] !jvms: TIntIntHash::insertKeyRehash @ bci:73 TIntIntHash::insertKey @ bci:111 n->in(9)->in(3): 11 Parm === 3 [[ 1077 459 1014 1006 977 958 1087 947 913 84 1302 284 840 830 213 224 197 1321 314 721 325 711 631 349 597 574 424 446 ]] Parm1: int !jvms: TIntIntHash::insertKey @ bci:-1 early(n->in(9)->in(3)): 3 Start === 3 0 [[ 3 5 6 7 8 9 10 11 ]] #{0:control, 1:abIO, 2:memory, 3:rawptr:BotPTR, 4:return_address, 5:gnu/trove/map/hash/TIntIntHashMap:NotNull *, 6:int} LCA(n): 1222 IfTrue === 1220 [[ 764 ]] #1 !orig=[763] !jvms: TIntIntHash::insertKeyRehash @ bci:135 TIntIntHash::insertKey @ bci:111 n->out(0): 764 CallStaticJava === 1222 351 759 8 9 ( 212 1 1 34 1 1 1 1 1 1 1 1 1 1 1 1 1 1408 412 752 37 ) [[ 765 ]] # Static uncommon_trap(reason='range_check' action='make_not_entrant') void ( int ) C=0,000100 TIntIntHash::insertKeyRehash @ bci:135 TIntIntHash::insertKey @ bci:111 !jvms: TIntIntHash::insertKeyRehash @ bci:135 TIntIntHash::insertKey @ bci:111 n->out(0)->out(0): 765 Proj === 764 [[ 768 ]] #0 !jvms: TIntIntHash::insertKeyRehash @ bci:135 TIntIntHash::insertKey @ bci:111 idom[0] 1222 IfTrue === 1220 [[ 764 ]] #1 !orig=[763] !jvms: TIntIntHash::insertKeyRehash @ bci:135 TIntIntHash::insertKey @ bci:111 idom[1] 1220 If === 735 1219 [[ 1221 1222 ]] P=0,000001, C=-1,000000 !orig=[761] !jvms: TIntIntHash::insertKeyRehash @ bci:135 TIntIntHash::insertKey @ bci:111 idom[2] 735 IfTrue === 734 [[ 1220 747 749 ]] #1 !jvms: TIntIntHash::insertKeyAt @ bci:17 TIntIntHash::insertKeyRehash @ bci:125 TIntIntHash::insertKey @ bci:111 idom[3] 734 If === 709 1492 [[ 735 736 ]] P=0,999999, C=-1,000000 !jvms: TIntIntHash::insertKeyAt @ bci:17 TIntIntHash::insertKeyRehash @ bci:125 TIntIntHash::insertKey @ bci:111 idom[4] 709 IfTrue === 708 [[ 721 734 ]] #1 !jvms: TIntIntHash::insertKeyAt @ bci:10 TIntIntHash::insertKeyRehash @ bci:125 TIntIntHash::insertKey @ bci:111 idom[5] 708 If === 653 1488 [[ 709 710 ]] P=0,999999, C=-1,000000 !jvms: TIntIntHash::insertKeyAt @ bci:10 TIntIntHash::insertKeyRehash @ bci:125 TIntIntHash::insertKey @ bci:111 idom[6] 653 IfTrue === 652 [[ 708 ]] #1 !orig=[694] !jvms: TIntIntHash::insertKeyRehash @ bci:118 TIntIntHash::insertKey @ bci:111 idom[7] 652 If === 1372 1472 [[ 653 654 ]] P=0,900000, C=-1,000000 !jvms: TIntIntHash::insertKeyRehash @ bci:118 TIntIntHash::insertKey @ bci:111 idom[8] 1372 Region === 1372 1371 646 [[ 1372 652 1395 1407 1453 1408 1441 ]] idom[9] 1337 If === 1336 1273 [[ 1338 1371 ]] P=0,900000, C=-1,000000 !orig=644 !jvms: TIntIntHash::insertKeyRehash @ bci:112 TIntIntHash::insertKey @ bci:111 idom[10] 1336 IfTrue === 1335 [[ 1283 1337 ]] #1 !orig=629 !jvms: TIntIntHash::insertKeyRehash @ bci:107 TIntIntHash::insertKey @ bci:111 idom[11] 1335 If === 1331 1286 [[ 1336 1369 ]] P=0,999999, C=-1,000000 !orig=628 !jvms: TIntIntHash::insertKeyRehash @ bci:107 TIntIntHash::insertKey @ bci:111 idom[12] 1331 Region === 1331 1358 1330 [[ 1331 1333 1334 1335 ]] !orig=582,[614] !jvms: TIntIntHash::insertKeyRehash @ bci:102 TIntIntHash::insertKey @ bci:111 idom[13] 1327 If === 464 1275 [[ 1328 1356 ]] P=0,500000, C=-1,000000 !orig=557 !jvms: TIntIntHash::insertKeyRehash @ bci:79 TIntIntHash::insertKey @ bci:111 idom[14] 464 IfTrue === 454 [[ 1262 1327 ]] #1 !orig=[1362],477 !jvms: TIntIntHash::insertKeyRehash @ bci:34 TIntIntHash::insertKey @ bci:111 idom[15] 454 If === 451 453 [[ 455 464 ]] P=0,999999, C=-1,000000 !jvms: TIntIntHash::insertKeyRehash @ bci:34 TIntIntHash::insertKey @ bci:111 idom[16] 451 IfTrue === 441 [[ 454 ]] #1 !jvms: TIntIntHash::insertKeyRehash @ bci:34 TIntIntHash::insertKey @ bci:111 idom[17] 441 If === 1260 440 [[ 442 451 ]] P=0,999999, C=-1,000000 !jvms: TIntIntHash::insertKeyRehash @ bci:34 TIntIntHash::insertKey @ bci:111 idom[18] 1260 IfTrue === 1259 [[ 441 621 ]] #1 idom[19] 1259 If === 1241 610 [[ 1260 1261 ]] P=0,999999, C=-1,000000 !orig=441 !jvms: TIntIntHash::insertKeyRehash @ bci:34 TIntIntHash::insertKey @ bci:111 idom[20] 1241 IfFalse === 1240 [[ 431 1259 ]] #0 !orig=[422] !jvms: TIntIntHash::insertKeyRehash @ bci:33 TIntIntHash::insertKey @ bci:111 idom[21] 1240 If === 405 1231 [[ 1241 1242 ]] P=0,000001, C=-1,000000 !orig=[421] !jvms: TIntIntHash::insertKeyRehash @ bci:33 TIntIntHash::insertKey @ bci:111 idom[22] 405 IfTrue === 404 [[ 1240 412 ]] #1 !jvms: TIntIntHash::insertKeyRehash @ bci:33 TIntIntHash::insertKey @ bci:111 idom[23] 404 If === 390 401 [[ 405 406 ]] P=0,999999, C=-1,000000 !jvms: TIntIntHash::insertKeyRehash @ bci:33 TIntIntHash::insertKey @ bci:111 idom[24] 390 IfTrue === 389 [[ 404 397 ]] #1 !jvms: TIntIntHash::insertKeyRehash @ bci:18 TIntIntHash::insertKey @ bci:111 idom[25] 389 If === 372 386 [[ 390 391 ]] P=0,999999, C=-1,000000 !jvms: TIntIntHash::insertKeyRehash @ bci:18 TIntIntHash::insertKey @ bci:111 idom[26] 372 IfTrue === 371 [[ 389 379 ]] #1 !jvms: TIntIntHash::insertKeyRehash @ bci:9 TIntIntHash::insertKey @ bci:111 idom[27] 371 If === 357 368 [[ 372 373 ]] P=0,999999, C=-1,000000 !jvms: TIntIntHash::insertKeyRehash @ bci:9 TIntIntHash::insertKey @ bci:111 idom[28] 357 CatchProj === 356 [[ 371 ]] #0@bci -1 !jvms: TIntIntHash::insertKeyRehash @ bci:0 TIntIntHash::insertKey @ bci:111 idom[29] 356 Catch === 350 351 [[ 357 358 ]] !jvms: TIntIntHash::insertKeyRehash @ bci:0 TIntIntHash::insertKey @ bci:111 idom[30] 350 Proj === 349 [[ 356 ]] #0 !jvms: TIntIntHash::insertKeyRehash @ bci:0 TIntIntHash::insertKey @ bci:111 idom[31] 349 CallStaticJava === 328 6 346 8 1 ( 1 1 34 1 1 1 10 11 119 84 37 1 1 1 1 1 ) [[ 350 351 352 354 ]] # Static gnu.trove.impl.hash.TIntIntHash::$jacocoInit bool[int:>=0]:exact * ( ) TIntIntHash::insertKeyRehash @ bci:0 TIntIntHash::insertKey @ bci:111 !jvms: TIntIntHash::insertKeyRehash @ bci:0 TIntIntHash::insertKey @ bci:111 ============================================================================== Unexpected Error ------------------------------------------------------------------------------ Internal Error at loopnode.cpp:3231, pid=15704, tid=0x00007f08d2b8c700 assert(!had_error) failed: bad dominance Do you want to debug the problem? idom[32] 328 IfTrue === 327 [[ 349 335 ]] #1 !jvms: TIntIntHash::insertKey @ bci:82 idom[33] 327 If === 312 326 [[ 328 329 ]] P=0,238727, C=754,000000 !jvms: TIntIntHash::insertKey @ bci:82 idom[34] 312 IfTrue === 311 [[ 327 324 ]] #1 !jvms: TIntIntHash::insertKey @ bci:80 idom[35] 311 If === 297 308 [[ 312 313 ]] P=0,999999, C=-1,000000 !jvms: TIntIntHash::insertKey @ bci:80 idom[36] 297 IfTrue === 296 [[ 311 304 ]] #1 !jvms: TIntIntHash::insertKey @ bci:80 idom[37] 296 If === 279 293 [[ 297 298 ]] P=0,999999, C=-1,000000 !jvms: TIntIntHash::insertKey @ bci:80 idom[38] 279 IfFalse === 277 [[ 296 ]] #0 !jvms: TIntIntHash::insertKey @ bci:63 idom[39] 277 If === 149 276 [[ 278 279 ]] P=0,000000, C=754,000000 !jvms: TIntIntHash::insertKey @ bci:63 idom[40] 149 IfTrue === 148 [[ 277 ]] #1 !jvms: TIntIntHash::insertKey @ bci:37 idom[41] 148 If === 111 147 [[ 149 150 ]] P=0,107561, C=7010,000000 !jvms: TIntIntHash::insertKey @ bci:37 idom[42] 111 IfTrue === 110 [[ 119 145 148 142 ]] #1 !jvms: TIntIntHash::insertKey @ bci:18 idom[43] 110 If === 94 107 [[ 111 112 ]] P=0,999999, C=-1,000000 !jvms: TIntIntHash::insertKey @ bci:18 idom[44] 94 IfTrue === 93 [[ 110 102 ]] #1 !jvms: TIntIntHash::insertKey @ bci:17 idom[45] 93 If === 5 90 [[ 94 95 ]] P=0,999999, C=-1,000000 !jvms: TIntIntHash::insertKey @ bci:17 idom[46] 5 Parm === 3 [[ 93 81 ]] Control !jvms: TIntIntHash::insertKey @ bci:-1 *** Use 1222 isn't dominated by def 759 *** # To suppress the following error report, specify this argument # after -XX: or in .hotspotrc: SuppressErrorAt=/loopnode.cpp:3231 To debug, run 'gdb /proc/15704/exe 15704'; then switch to thread 139675871790848 (0x00007f08d2b8c700) Enter 'yes' to launch gdb automatically (PATH must include gdb) Otherwise, press RETURN to abort... ============================================================================== Bad graph detected in compute_lca_of_uses n: 777 MergeMem === _ 1 370 1 767 1 1 1 1 739 [[ 782 ]] { - N767:byte[int:>=0]:exact+any * - - - - N739:int[int:>=0]:exact+any * } Memory: @BotPTR *+bot, idx=Bot; !jvms: TIntIntHash::insertKeyRehash @ bci:135 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 early(n): 519 Region === 519 524 523 495 [[ 519 575 548 569 ]] !jvms: TIntIntHash::insertKeyRehash @ bci:73 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 n->in(2): 370 Proj === 367 [[ 52 1593 383 449 392 442 425 410 791 1725 750 1183 739 926 1757 1153 1126 587 793 610 1105 625 858 1090 644 777 1039 1033 1019 990 975 960 910 910 910 474 843 897 724 461 ]] #2 Memory: @BotPTR *+bot, idx=Bot; !orig=[452],[485] !jvms: TIntIntHash::insertKeyRehash @ bci:0 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 early(n->in(2)): 367 CallStaticJava === 347 6 364 8 1 ( 10 1 12 13 36 1 1 1 1 1 1 71 1 1 1 10 11 154 119 39 1 1 1 1 1 ) [[ 368 369 370 372 ]] # Static gnu.trove.impl.hash.TIntIntHash::$jacocoInit bool[int:>=0]:exact * ( ) TIntIntHash::insertKeyRehash @ bci:0 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 !jvms: TIntIntHash::insertKeyRehash @ bci:0 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 n->in(4): 767 StoreB === 753 765 282 39 [[ 777 789 ]] @byte[int:>=0]:exact+any *, idx=4; Memory: @bool[int:75]<ciTypeArray length=75 type=<ciTypeArrayKlass name=[Z ident=813 address=0x00007f08fc6018d0> ident=849 SCAVENGABLE address=0x00007f08081ca460>[12] *, idx=4; !jvms: TIntIntHash::insertKeyAt @ bci:22 TIntIntHash::insertKeyRehash @ bci:125 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 early(n->in(4)): 519 Region === 519 524 523 495 [[ 519 575 548 569 ]] !jvms: TIntIntHash::insertKeyRehash @ bci:73 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 n->in(4)->in(0): 753 IfTrue === 752 [[ 1672 765 767 ]] #1 !jvms: TIntIntHash::insertKeyAt @ bci:17 TIntIntHash::insertKeyRehash @ bci:125 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 n->in(4)->in(1): 765 StoreB === 753 1907 1139 39 [[ 767 ]] @byte[int:>=0]:exact+any *, idx=4; Memory: @byte[int:>=0]:NotNull:exact+any *, idx=4; !jvms: TIntIntHash::insertKeyAt @ bci:17 TIntIntHash::insertKeyRehash @ bci:125 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 early(n->in(4)->in(1)): 519 Region === 519 524 523 495 [[ 519 575 548 569 ]] !jvms: TIntIntHash::insertKeyRehash @ bci:73 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 n->in(4)->in(1)->in(0): 753 IfTrue === 752 [[ 1672 765 767 ]] #1 !jvms: TIntIntHash::insertKeyAt @ bci:17 TIntIntHash::insertKeyRehash @ bci:125 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 n->in(4)->in(2): 282 AddP === _ 71 71 281 [[ 283 767 886 1143 ]] !jvms: TIntIntHash::insertKeyAt @ bci:22 TIntIntHash::insertKey @ bci:49 TIntIntHashMap::adjustOrPutValue @ bci:7 early(n->in(4)->in(2)): 0 Root === 0 136 153 235 251 307 322 337 396 414 429 446 468 481 1616 1252 1237 596 619 1306 653 1472 733 759 786 1431 852 1615 906 935 1366 969 999 1028 1351 1099 1321 1135 1162 1171 1192 [[ 0 1 3 1596 36 37 39 1607 71 1446 103 1408 113 114 118 120 131 138 148 164 171 178 220 246 254 1382 281 1329 288 302 1288 352 401 417 447 463 476 500 528 545 549 566 580 597 603 770 787 890 907 919 936 983 1000 1012 1029 1146 1163 1166 1176 1193 1256 1199 1207 1617 1619 1662 1955 1957 1959 1961 1963 1965 ]] n->in(4)->in(3): 39 ConI === 0 [[ 1609 1598 1583 1574 1528 1507 116 1474 190 1457 1443 279 1439 1384 283 290 303 294 354 416 449 425 442 457 470 518 1723 547 1722 568 1724 599 592 621 615 1335 1331 765 755 767 789 782 793 1290 1209 884 995 886 909 902 911 938 931 1002 995 1031 1024 1201 1188 1141 1676 1131 1143 1165 1158 1195 1726 442 333 367 477 464 965 1716 1720 1719 ]] #int:1 early(n->in(4)->in(3)): 0 Root === 0 136 153 235 251 307 322 337 396 414 429 446 468 481 1616 1252 1237 596 619 1306 653 1472 733 759 786 1431 852 1615 906 935 1366 969 999 1028 1351 1099 1321 1135 1162 1171 1192 [[ 0 1 3 1596 36 37 39 1607 71 1446 103 1408 113 114 118 120 131 138 148 164 171 178 220 246 254 1382 281 1329 288 302 1288 352 401 417 447 463 476 500 528 545 549 566 580 597 603 770 787 890 907 919 936 983 1000 1012 1029 1146 1163 1166 1176 1193 1256 1199 1207 1617 1619 1662 1955 1957 1959 1961 1963 1965 ]] n->in(9): 739 StoreI === 727 370 737 11 [[ 791 750 777 ]] @int[int:>=0]:exact+any *, idx=9; Memory: @int[int:>=0]:NotNull:exact+any *, idx=9; !jvms: TIntIntHash::insertKeyAt @ bci:10 TIntIntHash::insertKeyRehash @ bci:125 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 early(n->in(9)): 519 Region === 519 524 523 495 [[ 519 575 548 569 ]] !jvms: TIntIntHash::insertKeyRehash @ bci:73 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 n->in(9)->in(0): 727 IfTrue === 726 [[ 739 752 ]] #1 !jvms: TIntIntHash::insertKeyAt @ bci:10 TIntIntHash::insertKeyRehash @ bci:125 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 n->in(9)->in(1): 370 Proj === 367 [[ 52 1593 383 449 392 442 425 410 791 1725 750 1183 739 926 1757 1153 1126 587 793 610 1105 625 858 1090 644 777 1039 1033 1019 990 975 960 910 910 910 474 843 897 724 461 ]] #2 Memory: @BotPTR *+bot, idx=Bot; !orig=[452],[485] !jvms: TIntIntHash::insertKeyRehash @ bci:0 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 early(n->in(9)->in(1)): 367 CallStaticJava === 347 6 364 8 1 ( 10 1 12 13 36 1 1 1 1 1 1 71 1 1 1 10 11 154 119 39 1 1 1 1 1 ) [[ 368 369 370 372 ]] # Static gnu.trove.impl.hash.TIntIntHash::$jacocoInit bool[int:>=0]:exact * ( ) TIntIntHash::insertKeyRehash @ bci:0 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 !jvms: TIntIntHash::insertKeyRehash @ bci:0 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 n->in(9)->in(2): 737 AddP === _ 397 738 171 [[ 739 1105 ]] !orig=[1103] !jvms: TIntIntHash::insertKeyAt @ bci:10 TIntIntHash::insertKeyRehash @ bci:125 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 early(n->in(9)->in(2)): 519 Region === 519 524 523 495 [[ 519 575 548 569 ]] !jvms: TIntIntHash::insertKeyRehash @ bci:73 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 n->in(9)->in(3): 11 Parm === 3 [[ 1095 442 1032 1024 995 976 1105 965 931 464 858 848 119 477 303 739 729 649 258 231 247 615 333 592 344 1774 1756 367 ]] Parm1: int !jvms: TIntIntHashMap::adjustOrPutValue @ bci:-1 early(n->in(9)->in(3)): 3 Start === 3 0 [[ 3 5 6 7 8 9 10 11 12 13 ]] #{0:control, 1:abIO, 2:memory, 3:rawptr:BotPTR, 4:return_address, 5:gnu/trove/map/hash/TIntIntHashMap:NotNull *, 6:int, 7:int, 8:int} ----- LCA(n): 1674 IfTrue === 1672 [[ 782 ]] #1 !orig=[781] !jvms: TIntIntHash::insertKeyRehash @ bci:135 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 n->out(0): 782 CallStaticJava === 1674 369 777 8 9 ( 246 10 1 12 13 36 1 1 1 1 1 1 71 1 1 1 1 1 1 1 1 1 1 1 1 1 1862 430 770 39 ) [[ 783 ]] # Static uncommon_trap(reason='range_check' action='make_not_entrant') void ( int ) C=0,000100 TIntIntHash::insertKeyRehash @ bci:135 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 !jvms: TIntIntHash::insertKeyRehash @ bci:135 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 n->out(0)->out(0): 783 Proj === 782 [[ 786 ]] #0 !jvms: TIntIntHash::insertKeyRehash @ bci:135 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[0] 1674 IfTrue === 1672 [[ 782 ]] #1 !orig=[781] !jvms: TIntIntHash::insertKeyRehash @ bci:135 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[1] 1672 If === 753 1671 [[ 1673 1674 ]] P=0,000001, C=-1,000000 !orig=[779] !jvms: TIntIntHash::insertKeyRehash @ bci:135 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[2] 753 IfTrue === 752 [[ 1672 765 767 ]] #1 !jvms: TIntIntHash::insertKeyAt @ bci:17 TIntIntHash::insertKeyRehash @ bci:125 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[3] 752 If === 727 1946 [[ 753 754 ]] P=0,999999, C=-1,000000 !jvms: TIntIntHash::insertKeyAt @ bci:17 TIntIntHash::insertKeyRehash @ bci:125 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[4] 727 IfTrue === 726 [[ 739 752 ]] #1 !jvms: TIntIntHash::insertKeyAt @ bci:10 TIntIntHash::insertKeyRehash @ bci:125 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[5] 726 If === 671 1942 [[ 727 728 ]] P=0,999999, C=-1,000000 !jvms: TIntIntHash::insertKeyAt @ bci:10 TIntIntHash::insertKeyRehash @ bci:125 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[6] 671 IfTrue === 670 [[ 726 ]] #1 !orig=[712] !jvms: TIntIntHash::insertKeyRehash @ bci:118 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[7] 670 If === 1826 1926 [[ 671 672 ]] P=0,900000, C=-1,000000 !jvms: TIntIntHash::insertKeyRehash @ bci:118 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[8] 1826 Region === 1826 1825 664 [[ 1826 670 1849 1861 1907 1862 1895 ]] idom[9] 1791 If === 1790 1729 [[ 1792 1825 ]] P=0,900000, C=-1,000000 !orig=662 !jvms: TIntIntHash::insertKeyRehash @ bci:112 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[10] 1790 IfTrue === 1789 [[ 1737 1791 ]] #1 !orig=647 !jvms: TIntIntHash::insertKeyRehash @ bci:107 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[11] 1789 If === 1785 1740 [[ 1790 1823 ]] P=0,999999, C=-1,000000 !orig=646 !jvms: TIntIntHash::insertKeyRehash @ bci:107 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[12] 1785 Region === 1785 1812 1784 [[ 1785 1787 1788 1789 ]] !orig=600,[632] !jvms: TIntIntHash::insertKeyRehash @ bci:102 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[13] 1781 If === 482 1727 [[ 1782 1810 ]] P=0,500000, C=-1,000000 !orig=575 !jvms: TIntIntHash::insertKeyRehash @ bci:79 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[14] 482 IfTrue === 472 [[ 1716 1781 ]] #1 !orig=[1816],495 !jvms: TIntIntHash::insertKeyRehash @ bci:34 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[15] 472 If === 469 471 [[ 473 482 ]] P=0,999999, C=-1,000000 !jvms: TIntIntHash::insertKeyRehash @ bci:34 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[16] 469 IfTrue === 459 [[ 472 ]] #1 !jvms: TIntIntHash::insertKeyRehash @ bci:34 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[17] 459 If === 1714 458 [[ 460 469 ]] P=0,999999, C=-1,000000 !jvms: TIntIntHash::insertKeyRehash @ bci:34 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[18] 1714 IfTrue === 1713 [[ 459 639 ]] #1 idom[19] 1713 If === 1634 628 [[ 1714 1715 ]] P=0,999999, C=-1,000000 !orig=459 !jvms: TIntIntHash::insertKeyRehash @ bci:34 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[20] 1634 IfFalse === 1633 [[ 449 1713 ]] #0 !orig=[440] !jvms: TIntIntHash::insertKeyRehash @ bci:33 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[21] 1633 If === 423 1654 [[ 1634 1635 ]] P=0,000001, C=-1,000000 !orig=[439] !jvms: TIntIntHash::insertKeyRehash @ bci:33 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[22] 423 IfTrue === 422 [[ 1633 430 ]] #1 !jvms: TIntIntHash::insertKeyRehash @ bci:33 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[23] 422 If === 408 419 [[ 423 424 ]] P=0,999999, C=-1,000000 !jvms: TIntIntHash::insertKeyRehash @ bci:33 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[24] 408 IfTrue === 407 [[ 422 415 ]] #1 !jvms: TIntIntHash::insertKeyRehash @ bci:18 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[25] 407 If === 390 404 [[ 408 409 ]] P=0,999999, C=-1,000000 !jvms: TIntIntHash::insertKeyRehash @ bci:18 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[26] 390 IfTrue === 389 [[ 407 397 ]] #1 !jvms: TIntIntHash::insertKeyRehash @ bci:9 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[27] 389 If === 375 386 [[ 390 391 ]] P=0,999999, C=-1,000000 !jvms: TIntIntHash::insertKeyRehash @ bci:9 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[28] 375 CatchProj === 374 [[ 389 ]] #0@bci -1 !jvms: TIntIntHash::insertKeyRehash @ bci:0 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[29] 374 Catch === 368 369 [[ 375 376 ]] !jvms: TIntIntHash::insertKeyRehash @ bci:0 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[30] 368 Proj === 367 [[ 374 ]] #0 !jvms: TIntIntHash::insertKeyRehash @ bci:0 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[31] 367 CallStaticJava === 347 6 364 8 1 ( 10 1 12 13 36 1 1 1 1 1 1 71 1 1 1 10 11 154 119 39 1 1 1 1 1 ) [[ 368 369 370 372 ]] # Static gnu.trove.impl.hash.TIntIntHash::$jacocoInit bool[int:>=0]:exact * ( ) TIntIntHash::insertKeyRehash @ bci:0 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 !jvms: TIntIntHash::insertKeyRehash @ bci:0 TIntIntHash::insertKey @ bci:111 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[32] 347 IfTrue === 346 [[ 367 354 ]] #1 !jvms: TIntIntHash::insertKey @ bci:82 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[33] 346 If === 331 345 [[ 347 348 ]] P=0,235836, C=1412,000000 !jvms: TIntIntHash::insertKey @ bci:82 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[34] 331 IfTrue === 330 [[ 346 343 ]] #1 !jvms: TIntIntHash::insertKey @ bci:80 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[35] 330 If === 316 327 [[ 331 332 ]] P=0,999999, C=-1,000000 !jvms: TIntIntHash::insertKey @ bci:80 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[36] 316 IfTrue === 315 [[ 330 323 ]] #1 !jvms: TIntIntHash::insertKey @ bci:80 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[37] 315 If === 298 225 [[ 316 317 ]] P=0,999999, C=-1,000000 !jvms: TIntIntHash::insertKey @ bci:80 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[38] 298 IfFalse === 296 [[ 315 ]] #0 !jvms: TIntIntHash::insertKey @ bci:63 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[39] 296 If === 184 295 [[ 297 298 ]] P=0,000000, C=1412,000000 !jvms: TIntIntHash::insertKey @ bci:63 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[40] 184 IfTrue === 183 [[ 296 ]] #1 !jvms: TIntIntHash::insertKey @ bci:37 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[41] 183 If === 146 182 [[ 184 185 ]] P=0,107434, C=13143,000000 !jvms: TIntIntHash::insertKey @ bci:37 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[42] 146 IfTrue === 145 [[ 154 180 183 177 ]] #1 !jvms: TIntIntHash::insertKey @ bci:18 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[43] 145 If === 129 142 [[ 146 147 ]] P=0,999999, C=-1,000000 !jvms: TIntIntHash::insertKey @ bci:18 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[44] 129 IfTrue === 128 [[ 145 137 ]] #1 !jvms: TIntIntHash::insertKey @ bci:17 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[45] 128 If === 5 125 [[ 129 130 ]] P=0,999999, C=-1,000000 !jvms: TIntIntHash::insertKey @ bci:17 TIntIntHashMap::adjustOrPutValue @ bci:7 idom[46] 5 Parm === 3 [[ 128 116 ]] Control !jvms: TIntIntHashMap::adjustOrPutValue @ bci:-1 *** Use 1674 isn't dominated by def 777 *** [thread 139675873896192 also had an error]
08-05-2015

Reproduced with -XX:-UseMathExactIntrinsics in a slowdebug build.
08-05-2015

I have reproduced it without using MathExact. I tried looking at the sources and couldn't see any use of the intrinsics. Don't think it is related to those. I'm bad with how to pass flags to the JVM through Maven. A repro using only class files would be awesome. I disabled UseMathExactIntrinsics in the sources itself instead. Will continue to investigate.
07-05-2015

Updating ILW with workaround: ILW=Crash in compiler, reproducable, -XX:-UseMathIntrinsics=HML=P2
22-04-2015

I've run the test 100 times on my machine. Without "-XX:-UseMathExactIntrinsics", it crashed 11 times, with "-XX:-UseMathExactIntrinsics" it did not crash during these 100 runs. So seems not to be reproducible with the flag.
22-04-2015

ILW=Crash in compiler, reproducable, none=HMH=P1
22-04-2015

This bug can be related to JDK-8059529 / JDK-8028198. Please test with -XX:-UseMathExactIntrinsics.
22-04-2015