JDK-8261812 : C2 compilation fails with assert(!had_error) failed: bad dominance
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 11,15,16,17
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2021-02-16
  • Updated: 2022-12-08
  • Resolved: 2021-03-05
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 11 JDK 17
11.0.12-oracleFixed 17 b13Fixed
Related Reports
Duplicate :  
Description
Bad graph detected in compute_lca_of_uses
n:  5455  Phi  ===  5447  4121  458  [[ 3438  2781  4983  5176  5163  2504  2300  5058  2161  4903  2034 ]]  #int:-17..127 !orig=[4180]
early(n):  5447  Region  ===  5447  5448  3594  [[ 5447  3052  4526  5451  5453  5572  5455  5459  5461  5463  5466  5469  5471  5507  5478 ]]  !orig=[4455]
n->in(1):  4121  ConI  ===  0  [[ 5455 ]]  #int:1802
early(n->in(1)):  0  Root  ===  0  98  119  3495  1462  1517  1445  1766  1496  2038  1872  1855  1429  1414  1397  1105  1121  1138  1837  1820  1804  1304  1321  1336  3496  1479  [[ 0  1  3  20  21  24  27  29  2839  2832  2774  36  2084  40  2083  44  53  56  2082  74  93  107  114  127  140  155  166  167  177  184  201  204  232  238  257  300  303  1901  317  326  1840  387  388  1717  1702  1688  1466  452  458  1144  1142  468  470  472  494  1090  500  507  1068  1033  812  811  650  652  654  3497  3516  3533  3574  3583  3604  3614  3615  3616  3617  3627  3629  3630  3631  3632  3690  3692  3699  4092  4093  4094  4095  4096  4097  4098  4114  4117  4119  4121  4123  4124  4129  4134  4138  5368  4179  4185  4143  4177  5241  4201  4147  4222  4189  4211  4872  4183  4155  4156  4157  4181  4178  4160  4161  4162  4163  4208  4165  4757  4167  4195  4223  4225  4221  4172  4191  4174  4186  4205 ]] 
n->in(2):  458  ConI  ===  0  [[ 1492  2300  2161  2504  5163  4983  5058  2781  1410  5176  1458  5455  1868  1134  1833  824  614  1317  474  4903 ]]  #int:-17
early(n->in(2)):  0  Root  ===  0  98  119  3495  1462  1517  1445  1766  1496  2038  1872  1855  1429  1414  1397  1105  1121  1138  1837  1820  1804  1304  1321  1336  3496  1479  [[ 0  1  3  20  21  24  27  29  2839  2832  2774  36  2084  40  2083  44  53  56  2082  74  93  107  114  127  140  155  166  167  177  184  201  204  232  238  257  300  303  1901  317  326  1840  387  388  1717  1702  1688  1466  452  458  1144  1142  468  470  472  494  1090  500  507  1068  1033  812  811  650  652  654  3497  3516  3533  3574  3583  3604  3614  3615  3616  3617  3627  3629  3630  3631  3632  3690  3692  3699  4092  4093  4094  4095  4096  4097  4098  4114  4117  4119  4121  4123  4124  4129  4134  4138  5368  4179  4185  4143  4177  5241  4201  4147  4222  4189  4211  4872  4183  4155  4156  4157  4181  4178  4160  4161  4162  4163  4208  4165  4757  4167  4195  4223  4225  4221  4172  4191  4174  4186  4205 ]] 

LCA(n):  3552  IfFalse  ===  3551  [[ 1156  1140 ]] #0 !orig=[1130] !jvms: MainClass::method1 @ bci:1092 (line 207)
n->out(0):  3438  SafePoint  ===  4923  1  3439  1  1  3442  183  2813  1  1  1  1  383  1  384  4225  1  1  1  4178  3437  1  1  1  1  1  1  1  1  1  1  1  4114  4114  4114  4114  4114  4114  4114  4114  4114  5455  452  4935  631  841  [[ 3675 ]]  SafePoint  !jvms: MainClass::method1 @ bci:1698 (line 241)
n->out(0)->out(0):  3675  CountedLoopEnd  ===  3438  3674  [[ 3447  3446 ]] [lt] P=0.800000, C=8020.000000 !orig=[3445] !jvms: MainClass::method1 @ bci:1466 (line 241)
n->out(1):  2781  AllocateArray  ===  5066  5055  2772  8  1 ( 650  74  21  326  183  5507  1  1  1  1  383  1  384  4201  1  1  1  4160  2079  2082  1  2083  1  2084  1  4143  5044  2774  1  1  458  452  2178  2317  2521  4114  4114  4114  4114  4114  4114  4114  4114  4114  5455  452  5056  631  841 ) [[ 2782  2783  2784  2791  2792  2793 ]]  rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) MainClass::method1 @ bci:1509 (line 248) !jvms: MainClass::method1 @ bci:1509 (line 248)
n->out(1)->out(0):  2782  Proj  ===  2781  [[ 2785 ]] #0 !jvms: MainClass::method1 @ bci:1509 (line 248)
n->out(2):  4983  AllocateArray  ===  4994  4997  4987  8  1 ( 650  74  21  326  183  5507  1  1  1  1  383  1  384  4201  1  1  1  4160  2079  2082  1  2083  1  2084  1  4143  4996  2774  1  1  458  452  2178  2317  2521  4114  4114  4114  4114  4114  4114  4114  4114  4114  5455  452  4984  631  841 ) [[ 4976  4977  4979  4980  4982  5000 ]]  rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) MainClass::method1 @ bci:1509 (line 248) !orig=2781 !jvms: MainClass::method1 @ bci:1509 (line 248)
n->out(2)->out(5):  5000  Proj  ===  4983  [[ 4998 ]] #0 !orig=2782 !jvms: MainClass::method1 @ bci:1509 (line 248)
n->out(3):  5176  AllocateArray  ===  5169  5160  5149  8  1 ( 650  74  21  326  183  5507  1  1  1  1  383  1  384  4201  1  1  1  4160  2079  2082  1  2083  1  2084  1  4143  5141  2774  1  1  458  452  2178  2317  2521  4114  4114  4114  4114  4114  4114  4114  4114  4114  5455  452  5161  631  841 ) [[ 5170  5171  5172  5173  5175  5193 ]]  rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) MainClass::method1 @ bci:1509 (line 248) !orig=2781 !jvms: MainClass::method1 @ bci:1509 (line 248)
n->out(3)->out(5):  5193  Proj  ===  5176  [[ 5191 ]] #0 !orig=2782 !jvms: MainClass::method1 @ bci:1509 (line 248)
n->out(4):  5163  AllocateArray  ===  5034  4980  5180  8  1 ( 650  74  21  326  183  5507  1  1  1  1  383  1  384  4201  1  1  1  4160  2079  2082  1  2083  1  2084  1  4143  4969  2774  1  1  458  452  2178  2317  2521  4114  4114  4114  4114  4114  4114  4114  4114  4114  5455  452  4981  631  841 ) [[ 5156  5157  5159  5160  5162  5164 ]]  rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) MainClass::method1 @ bci:1509 (line 248) !orig=5058,2781 !jvms: MainClass::method1 @ bci:1509 (line 248)
n->out(4)->out(5):  5164  Proj  ===  5163  [[ 5165 ]] #0 !orig=5075,2782 !jvms: MainClass::method1 @ bci:1509 (line 248)
n->out(5):  2504  AllocateArray  ===  2314  2311  2497  8  1 ( 494  812  21  811  183  5507  1  1  1  1  383  1  384  4191  1  1  1  4157  2079  2082  1  2083  1  2084  1  1  1  1  1  1  4138  1  4138  458  452  2178  2317  56  4114  4114  4114  4114  4114  4114  4114  4114  4114  5455  452  4749  631  841 ) [[ 2505  2506  2507  2514  2515  2516 ]]  rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Test0::<init> @ bci:34 (line 6) MainClass::method1 @ bci:1488 (line 245) !jvms: Test0::<init> @ bci:34 (line 6) MainClass::method1 @ bci:1488 (line 245)
n->out(5)->out(0):  2505  Proj  ===  2504  [[ 2508 ]] #0 !jvms: Test0::<init> @ bci:34 (line 6) MainClass::method1 @ bci:1488 (line 245)
n->out(6):  2300  AllocateArray  ===  2175  2172  2294  8  1 ( 388  74  21  468  183  5507  1  1  1  1  383  1  384  4189  1  1  1  4174  2079  2082  1  2083  1  2084  1  1  1  1  1  1  4147  4147  4147  458  452  2178  56  56  4114  4114  4114  4114  4114  4114  4114  4114  4114  5455  452  4749  631  841 ) [[ 2301  2302  2303  2310  2311  2312 ]]  rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Test0::<init> @ bci:27 (line 5) MainClass::method1 @ bci:1488 (line 245) !jvms: Test0::<init> @ bci:27 (line 5) MainClass::method1 @ bci:1488 (line 245)
n->out(6)->out(0):  2301  Proj  ===  2300  [[ 2304 ]] #0 !jvms: Test0::<init> @ bci:27 (line 5) MainClass::method1 @ bci:1488 (line 245)
n->out(7):  5058  AllocateArray  ===  5188  5173  5062  8  1 ( 650  74  21  326  183  5507  1  1  1  1  383  1  384  4201  1  1  1  4160  2079  2082  1  2083  1  2084  1  4143  5155  2774  1  1  458  452  2178  2317  2521  4114  4114  4114  4114  4114  4114  4114  4114  4114  5455  452  5174  631  841 ) [[ 5051  5052  5054  5055  5057  5075 ]]  rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) MainClass::method1 @ bci:1509 (line 248) !orig=2781 !jvms: MainClass::method1 @ bci:1509 (line 248)
n->out(7)->out(5):  5075  Proj  ===  5058  [[ 5073 ]] #0 !orig=2782 !jvms: MainClass::method1 @ bci:1509 (line 248)
n->out(8):  2161  AllocateArray  ===  3676  2067  2120  8  1 ( 472  74  21  155  183  5507  1  1  1  1  383  1  384  4186  1  1  1  4172  2079  2082  1  2083  1  2084  1  1  1  1  1  1  4134  4134  4134  458  452  56  56  56  4114  4114  4114  4114  4114  4114  4114  4114  4114  5455  452  4749  631  841 ) [[ 2162  2163  2164  2171  2172  2173 ]]  rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Test0::<init> @ bci:20 (line 4) MainClass::method1 @ bci:1488 (line 245) !jvms: Test0::<init> @ bci:20 (line 4) MainClass::method1 @ bci:1488 (line 245)
n->out(8)->out(0):  2162  Proj  ===  2161  [[ 2165 ]] #0 !jvms: Test0::<init> @ bci:20 (line 4) MainClass::method1 @ bci:1488 (line 245)
n->out(9):  4903  AllocateArray  ===  4914  4917  4907  8  1 ( 650  74  21  326  183  5507  1  1  1  1  383  1  384  4201  1  1  1  4160  2079  2082  1  2083  1  2084  1  4143  4916  2774  1  1  458  452  2178  2317  2521  4114  4114  4114  4114  4114  4114  4114  4114  4114  5455  452  4904  631  841 ) [[ 4896  4897  4899  4900  4902  4920 ]]  rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) MainClass::method1 @ bci:1509 (line 248) !orig=2781 !jvms: MainClass::method1 @ bci:1509 (line 248)
n->out(9)->out(5):  4920  Proj  ===  4903  [[ 4918 ]] #0 !orig=2782 !jvms: MainClass::method1 @ bci:1509 (line 248)
n->out(10):  2034  CallStaticJava  ===  4452  835  2032  8  9 ( 127  183  5508  1  1  1  1  383  1  384  4179  1  1  1  4167  21  1  1  1  1  1  1  1  1  1  1  1  21  500  4114  4114  4114  4114  4114  4114  4114  4114  4114  5455  452  491  631  841 ) [[ 2035 ]] # Static uncommon_trap(reason='profile_predicate' action='maybe_recompile' debug_id='0')  void ( int ) C=0.000100 MainClass::method1 @ bci:1466 (line 241) reexecute !jvms: MainClass::method1 @ bci:1466 (line 241)
n->out(10)->out(0):  2035  Proj  ===  2034  [[ 2038 ]] #0 !jvms: MainClass::method1 @ bci:1466 (line 241)

idoms of early 5447:
idom[0]  5447  Region  ===  5447  5448  3594  [[ 5447  3052  4526  5451  5453  5572  5455  5459  5461  5463  5466  5469  5471  5507  5478 ]]  !orig=[4455]
idom[1]  1156  If  ===  3552  1155  [[ 1157  1158 ]] P=0.646384, C=2005.000000 !orig=[4454] !jvms: MainClass::method1 @ bci:1110 (line 208)
idom[2]  3552  IfFalse  ===  3551  [[ 1156  1140 ]] #0 !orig=[1130] !jvms: MainClass::method1 @ bci:1092 (line 207)
idom[3]  3551  RangeCheck  ===  1115  3550  [[ 3552  3553 ]] P=0.000001, C=-1.000000 !orig=[1129] !jvms: MainClass::method1 @ bci:1092 (line 207)
idom[4]  1115  IfTrue  ===  1114  [[ 3551  1122 ]] #1 !jvms: MainClass::method1 @ bci:1092 (line 207)
idom[5]  1114  If  ===  1099  1111  [[ 1115  1116 ]] P=0.999999, C=-1.000000 !jvms: MainClass::method1 @ bci:1092 (line 207)
idom[6]  1099  IfTrue  ===  1098  [[ 1114  1106 ]] #1 !jvms: MainClass::method1 @ bci:1088 (line 207)
idom[7]  1098  If  ===  838  1095  [[ 1099  1100 ]] P=0.999999, C=-1.000000 !jvms: MainClass::method1 @ bci:1088 (line 207)
idom[8]  838  Proj  ===  837  [[ 1098  841 ]] #0 !orig=[855] !jvms: Test0::<init> @ bci:34 (line 6) MainClass::method1 @ bci:1061 (line 203)
idom[9]  837  Initialize  ===  829  1  840  1  1  836  [[ 838  839 ]]  !jvms: Test0::<init> @ bci:34 (line 6) MainClass::method1 @ bci:1061 (line 203)
idom[10]  829  CatchProj  ===  828  [[ 837 ]] #0@bci -1  !jvms: Test0::<init> @ bci:34 (line 6) MainClass::method1 @ bci:1061 (line 203)
idom[11]  828  Catch  ===  825  827  [[ 829  830 ]]  !jvms: Test0::<init> @ bci:34 (line 6) MainClass::method1 @ bci:1061 (line 203)
idom[12]  825  Proj  ===  824  [[ 828 ]] #0 !jvms: Test0::<init> @ bci:34 (line 6) MainClass::method1 @ bci:1061 (line 203)
idom[13]  824  AllocateArray  ===  628  625  810  8  1 ( 494  812  21  811  183  76  1  1  1  1  383  1  384  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  4195  1  4195  458  452  491  631  56 ) [[ 825  826  827  834  835  836 ]]  rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Test0::<init> @ bci:34 (line 6) MainClass::method1 @ bci:1061 (line 203) !jvms: Test0::<init> @ bci:34 (line 6) MainClass::method1 @ bci:1061 (line 203)
idom[14]  628  Proj  ===  627  [[ 824  631 ]] #0 !orig=[661] !jvms: Test0::<init> @ bci:27 (line 5) MainClass::method1 @ bci:1061 (line 203)
idom[15]  627  Initialize  ===  619  1  630  1  1  626  [[ 628  629 ]]  !jvms: Test0::<init> @ bci:27 (line 5) MainClass::method1 @ bci:1061 (line 203)
idom[16]  619  CatchProj  ===  618  [[ 627 ]] #0@bci -1  !jvms: Test0::<init> @ bci:27 (line 5) MainClass::method1 @ bci:1061 (line 203)
idom[17]  618  Catch  ===  615  617  [[ 619  620 ]]  !jvms: Test0::<init> @ bci:27 (line 5) MainClass::method1 @ bci:1061 (line 203)
idom[18]  615  Proj  ===  614  [[ 618 ]] #0 !jvms: Test0::<init> @ bci:27 (line 5) MainClass::method1 @ bci:1061 (line 203)
idom[19]  614  AllocateArray  ===  488  485  607  8  1 ( 388  74  21  468  183  76  1  1  1  1  383  1  384  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  4205  4205  4205  458  452  491  56  56 ) [[ 615  616  617  624  625  626 ]]  rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Test0::<init> @ bci:27 (line 5) MainClass::method1 @ bci:1061 (line 203) !jvms: Test0::<init> @ bci:27 (line 5) MainClass::method1 @ bci:1061 (line 203)
idom[20]  488  Proj  ===  487  [[ 614  491 ]] #0 !orig=[516] !jvms: Test0::<init> @ bci:20 (line 4) MainClass::method1 @ bci:1061 (line 203)
idom[21]  487  Initialize  ===  479  1  490  1  1  486  [[ 488  489 ]]  !jvms: Test0::<init> @ bci:20 (line 4) MainClass::method1 @ bci:1061 (line 203)
idom[22]  479  CatchProj  ===  478  [[ 487 ]] #0@bci -1  !jvms: Test0::<init> @ bci:20 (line 4) MainClass::method1 @ bci:1061 (line 203)
idom[23]  478  Catch  ===  475  477  [[ 479  480 ]]  !jvms: Test0::<init> @ bci:20 (line 4) MainClass::method1 @ bci:1061 (line 203)
idom[24]  475  Proj  ===  474  [[ 478 ]] #0 !jvms: Test0::<init> @ bci:20 (line 4) MainClass::method1 @ bci:1061 (line 203)
idom[25]  474  AllocateArray  ===  3651  379  424  8  1 ( 472  74  21  155  183  76  1  1  1  1  383  1  384  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  4211  4211  4211  458  452  56  56  56 ) [[ 475  476  477  484  485  486 ]]  rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Test0::<init> @ bci:20 (line 4) MainClass::method1 @ bci:1061 (line 203) !jvms: Test0::<init> @ bci:20 (line 4) MainClass::method1 @ bci:1061 (line 203)
idom[26]  3651  CountedLoop  ===  3651  5270  3460  [[ 3651  474  379  380  381  382  383  384 ]] stride: 1  !orig=[3642],[378] !jvms: MainClass::method1 @ bci:1057 (line 203)
idom[27]  5270  Region  ===  5270  5269  322  [[ 5270  3651  5271  5275 ]]  !orig=[346] !jvms: MainClass::method1 @ bci:1054 (line 202)
idom[28]  5280  If  ===  5295  5279  [[ 322  5281 ]] P=0.500000, C=-1.000000
idom[29]  5295  Region  ===  5295  5294  5276  [[ 5295  5280  5296  5298  5300 ]] 
idom[30]  5305  If  ===  5301  5304  [[ 5294  5306 ]] P=0.999999, C=-1.000000
idom[31]  5301  IfFalse  ===  5290  [[ 5305 ]] #0
idom[32]  5290  CountedLoopEnd  ===  5292  5283  [[ 5291  5301 ]] [lt] P=0.500000, C=3609.000000 !orig=4229,[320] !jvms: MainClass::method1 @ bci:981 (line 197)
idom[33]  5292  CountedLoop  ===  5292  4432  5291  [[ 5286  5289  5290  5292  5293 ]] inner stride: 1 pre of N4230 !orig=[4230],[3637],[147] !jvms: MainClass::method1 @ bci:987 (line 198)
idom[34]  4432  IfTrue  ===  4431  [[ 5292  254 ]] #1 !orig=[120] !jvms: MainClass::method1 @ bci:987 (line 198)
idom[35]  4431  If  ===  4519  4438  [[ 4432  4433 ]] P=0.999999, C=-1.000000
idom[36]  4519  IfFalse  ===  4518  [[ 4435  4431 ]] #0 !orig=[4423]
idom[37]  4518  RangeCheck  ===  4415  4517  [[ 4519  4520 ]] P=0.000001, C=-1.000000 !orig=[4422]
idom[38]  4415  IfTrue  ===  4414  [[ 4518  4425 ]] #1
idom[39]  4414  If  ===  4407  209  [[ 4415  4416 ]] P=0.999999, C=-1.000000
idom[40]  4407  IfTrue  ===  4406  [[ 4414  200 ]] #1
idom[41]  4406  If  ===  4404  189  [[ 4407  4408 ]] P=0.999999, C=-1.000000
idom[42]  4404  IfTrue  ===  4403  [[ 4406  183 ]] #1
idom[43]  4403  If  ===  75  171  [[ 4404  4405 ]] P=0.999999, C=-1.000000
idom[44]  75  Region  ===  75  3504  80  [[ 75  76  4403 ]]  !jvms: MainClass::method1 @ bci:987 (line 198)
idom[45]  79  If  ===  54  78  [[ 80  81 ]] P=0.999000, C=-1.000000 !jvms: MainClass::method1 @ bci:987 (line 198)
idom[46]  54  Region  ===  54  3500  60  [[ 54  55  79 ]]  !jvms: MainClass::method1 @ bci:987 (line 198)
idom[47]  59  If  ===  47  58  [[ 60  61 ]] P=0.999000, C=-1.000000 !jvms: MainClass::method1 @ bci:987 (line 198)
idom[48]  47  Proj  ===  46  [[ 59 ]] #0 !jvms: MainClass::method1 @ bci:987 (line 198)
idom[49]  46  CallLeaf  ===  5  1  7  8  1 ( 10 ) [[ 47  49 ]] # OSR_migration_end void ( rawptr:BotPTR ) !jvms: MainClass::method1 @ bci:987 (line 198)
idom[50]  5  Parm  ===  3  [[ 45  46  26  30  37  41 ]] Control !jvms: MainClass::method1 @ bci:987 (line 198)

idoms of (wrong) LCA 3552:
idom[0]  3552  IfFalse  ===  3551  [[ 1156  1140 ]] #0 !orig=[1130] !jvms: MainClass::method1 @ bci:1092 (line 207)
idom[1]  3551  RangeCheck  ===  1115  3550  [[ 3552  3553 ]] P=0.000001, C=-1.000000 !orig=[1129] !jvms: MainClass::method1 @ bci:1092 (line 207)
idom[2]  1115  IfTrue  ===  1114  [[ 3551  1122 ]] #1 !jvms: MainClass::method1 @ bci:1092 (line 207)
idom[3]  1114  If  ===  1099  1111  [[ 1115  1116 ]] P=0.999999, C=-1.000000 !jvms: MainClass::method1 @ bci:1092 (line 207)
idom[4]  1099  IfTrue  ===  1098  [[ 1114  1106 ]] #1 !jvms: MainClass::method1 @ bci:1088 (line 207)
idom[5]  1098  If  ===  838  1095  [[ 1099  1100 ]] P=0.999999, C=-1.000000 !jvms: MainClass::method1 @ bci:1088 (line 207)
idom[6]  838  Proj  ===  837  [[ 1098  841 ]] #0 !orig=[855] !jvms: Test0::<init> @ bci:34 (line 6) MainClass::method1 @ bci:1061 (line 203)
idom[7]  837  Initialize  ===  829  1  840  1  1  836  [[ 838  839 ]]  !jvms: Test0::<init> @ bci:34 (line 6) MainClass::method1 @ bci:1061 (line 203)
idom[8]  829  CatchProj  ===  828  [[ 837 ]] #0@bci -1  !jvms: Test0::<init> @ bci:34 (line 6) MainClass::method1 @ bci:1061 (line 203)
idom[9]  828  Catch  ===  825  827  [[ 829  830 ]]  !jvms: Test0::<init> @ bci:34 (line 6) MainClass::method1 @ bci:1061 (line 203)
idom[10]  825  Proj  ===  824  [[ 828 ]] #0 !jvms: Test0::<init> @ bci:34 (line 6) MainClass::method1 @ bci:1061 (line 203)
idom[11]  824  AllocateArray  ===  628  625  810  8  1 ( 494  812  21  811  183  76  1  1  1  1  383  1  384  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  4195  1  4195  458  452  491  631  56 ) [[ 825  826  827  834  835  836 ]]  rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Test0::<init> @ bci:34 (line 6) MainClass::method1 @ bci:1061 (line 203) !jvms: Test0::<init> @ bci:34 (line 6) MainClass::method1 @ bci:1061 (line 203)
idom[12]  628  Proj  ===  627  [[ 824  631 ]] #0 !orig=[661] !jvms: Test0::<init> @ bci:27 (line 5) MainClass::method1 @ bci:1061 (line 203)
idom[13]  627  Initialize  ===  619  1  630  1  1  626  [[ 628  629 ]]  !jvms: Test0::<init> @ bci:27 (line 5) MainClass::method1 @ bci:1061 (line 203)
idom[14]  619  CatchProj  ===  618  [[ 627 ]] #0@bci -1  !jvms: Test0::<init> @ bci:27 (line 5) MainClass::method1 @ bci:1061 (line 203)
idom[15]  618  Catch  ===  615  617  [[ 619  620 ]]  !jvms: Test0::<init> @ bci:27 (line 5) MainClass::method1 @ bci:1061 (line 203)
idom[16]  615  Proj  ===  614  [[ 618 ]] #0 !jvms: Test0::<init> @ bci:27 (line 5) MainClass::method1 @ bci:1061 (line 203)
idom[17]  614  AllocateArray  ===  488  485  607  8  1 ( 388  74  21  468  183  76  1  1  1  1  383  1  384  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  4205  4205  4205  458  452  491  56  56 ) [[ 615  616  617  624  625  626 ]]  rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Test0::<init> @ bci:27 (line 5) MainClass::method1 @ bci:1061 (line 203) !jvms: Test0::<init> @ bci:27 (line 5) MainClass::method1 @ bci:1061 (line 203)
idom[18]  488  Proj  ===  487  [[ 614  491 ]] #0 !orig=[516] !jvms: Test0::<init> @ bci:20 (line 4) MainClass::method1 @ bci:1061 (line 203)
idom[19]  487  Initialize  ===  479  1  490  1  1  486  [[ 488  489 ]]  !jvms: Test0::<init> @ bci:20 (line 4) MainClass::method1 @ bci:1061 (line 203)
idom[20]  479  CatchProj  ===  478  [[ 487 ]] #0@bci -1  !jvms: Test0::<init> @ bci:20 (line 4) MainClass::method1 @ bci:1061 (line 203)
idom[21]  478  Catch  ===  475  477  [[ 479  480 ]]  !jvms: Test0::<init> @ bci:20 (line 4) MainClass::method1 @ bci:1061 (line 203)
idom[22]  475  Proj  ===  474  [[ 478 ]] #0 !jvms: Test0::<init> @ bci:20 (line 4) MainClass::method1 @ bci:1061 (line 203)
idom[23]  474  AllocateArray  ===  3651  379  424  8  1 ( 472  74  21  155  183  76  1  1  1  1  383  1  384  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  4211  4211  4211  458  452  56  56  56 ) [[ 475  476  477  484  485  486 ]]  rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Test0::<init> @ bci:20 (line 4) MainClass::method1 @ bci:1061 (line 203) !jvms: Test0::<init> @ bci:20 (line 4) MainClass::method1 @ bci:1061 (line 203)
idom[24]  3651  CountedLoop  ===  3651  5270  3460  [[ 3651  474  379  380  381  382  383  384 ]] stride: 1  !orig=[3642],[378] !jvms: MainClass::method1 @ bci:1057 (line 203)
idom[25]  5270  Region  ===  5270  5269  322  [[ 5270  3651  5271  5275 ]]  !orig=[346] !jvms: MainClass::method1 @ bci:1054 (line 202)
idom[26]  5280  If  ===  5295  5279  [[ 322  5281 ]] P=0.500000, C=-1.000000
idom[27]  5295  Region  ===  5295  5294  5276  [[ 5295  5280  5296  5298  5300 ]] 
idom[28]  5305  If  ===  5301  5304  [[ 5294  5306 ]] P=0.999999, C=-1.000000
idom[29]  5301  IfFalse  ===  5290  [[ 5305 ]] #0
idom[30]  5290  CountedLoopEnd  ===  5292  5283  [[ 5291  5301 ]] [lt] P=0.500000, C=3609.000000 !orig=4229,[320] !jvms: MainClass::method1 @ bci:981 (line 197)
idom[31]  5292  CountedLoop  ===  5292  4432  5291  [[ 5286  5289  5290  5292  5293 ]] inner stride: 1 pre of N4230 !orig=[4230],[3637],[147] !jvms: MainClass::method1 @ bci:987 (line 198)
idom[32]  4432  IfTrue  ===  4431  [[ 5292  254 ]] #1 !orig=[120] !jvms: MainClass::method1 @ bci:987 (line 198)
idom[33]  4431  If  ===  4519  4438  [[ 4432  4433 ]] P=0.999999, C=-1.000000
idom[34]  4519  IfFalse  ===  4518  [[ 4435  4431 ]] #0 !orig=[4423]
idom[35]  4518  RangeCheck  ===  4415  4517  [[ 4519  4520 ]] P=0.000001, C=-1.000000 !orig=[4422]
idom[36]  4415  IfTrue  ===  4414  [[ 4518  4425 ]] #1
idom[37]  4414  If  ===  4407  209  [[ 4415  4416 ]] P=0.999999, C=-1.000000
idom[38]  4407  IfTrue  ===  4406  [[ 4414  200 ]] #1
idom[39]  4406  If  ===  4404  189  [[ 4407  4408 ]] P=0.999999, C=-1.000000
idom[40]  4404  IfTrue  ===  4403  [[ 4406  183 ]] #1
idom[41]  4403  If  ===  75  171  [[ 4404  4405 ]] P=0.999999, C=-1.000000
idom[42]  75  Region  ===  75  3504  80  [[ 75  76  4403 ]]  !jvms: MainClass::method1 @ bci:987 (line 198)
idom[43]  79  If  ===  54  78  [[ 80  81 ]] P=0.999000, C=-1.000000 !jvms: MainClass::method1 @ bci:987 (line 198)
idom[44]  54  Region  ===  54  3500  60  [[ 54  55  79 ]]  !jvms: MainClass::method1 @ bci:987 (line 198)
idom[45]  59  If  ===  47  58  [[ 60  61 ]] P=0.999000, C=-1.000000 !jvms: MainClass::method1 @ bci:987 (line 198)
idom[46]  47  Proj  ===  46  [[ 59 ]] #0 !jvms: MainClass::method1 @ bci:987 (line 198)
idom[47]  46  CallLeaf  ===  5  1  7  8  1 ( 10 ) [[ 47  49 ]] # OSR_migration_end void ( rawptr:BotPTR ) !jvms: MainClass::method1 @ bci:987 (line 198)
idom[48]  5  Parm  ===  3  [[ 45  46  26  30  37  41 ]] Control !jvms: MainClass::method1 @ bci:987 (line 198)

Real LCA of early 5447 (idom[2]) and (wrong) LCA 3552 (idom[0]):
 3552  IfFalse  ===  3551  [[ 1156  1140 ]] #0 !orig=[1130] !jvms: MainClass::method1 @ bci:1092 (line 207)


# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/opt/mach5/mesos/work_dir/slaves/983c483a-6907-44e0-ad29-98c7183575e2-S14556/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/f9886d7a-0ace-4c83-85fd-c101daf0871b/runs/d37d62ae-53de-438f-8106-b4389296baa1/workspace/open/src/hotspot/share/opto/loopnode.cpp:4916), pid=2298779, tid=2298792
#  assert(!had_error) failed: bad dominance


Current CompileTask:
C2:    292    1 %  b  4       MainClass::method1 @ 987 (1722 bytes)

Stack: [0x00007f124a8fd000,0x00007f124a9fe000],  sp=0x00007f124a9f81a0,  free space=1004k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x12c6a32]  PhaseIdealLoop::compute_lca_of_uses(Node*, Node*, bool)+0x6e2
V  [libjvm.so+0x12c73c0]  PhaseIdealLoop::build_loop_late_post_work(Node*, bool)+0x140
V  [libjvm.so+0x12c7a5a]  PhaseIdealLoop::build_loop_late(VectorSet&, Node_List&, Node_Stack&)+0xba
V  [libjvm.so+0x12ce357]  PhaseIdealLoop::build_and_optimize(LoopOptsMode)+0x507
V  [libjvm.so+0xa0f921]  PhaseIdealLoop::verify(PhaseIterGVN&)+0x341
V  [libjvm.so+0xa01b1f]  Compile::process_for_post_loop_opts_igvn(PhaseIterGVN&)+0x1f
V  [libjvm.so+0xa0bca0]  Compile::Optimize()+0x15f0
V  [libjvm.so+0xa0d9b5]  Compile::Compile(ciEnv*, ciMethod*, int, bool, bool, bool, bool, DirectiveSet*)+0x1905
V  [libjvm.so+0x8394da]  C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x1ea
V  [libjvm.so+0xa1d881]  CompileBroker::invoke_compiler_on_method(CompileTask*)+0xea1
V  [libjvm.so+0xa1e508]  CompileBroker::compiler_thread_loop()+0x5a8
V  [libjvm.so+0x1841b16]  JavaThread::thread_main_inner()+0x256
V  [libjvm.so+0x1847f90]  Thread::call_run()+0x100
V  [libjvm.so+0x1533dd6]  thread_native_entry(Thread*)+0x116

Comments
The regression test compiler/escapeAnalysis/TestValAtSafepointOverflowsInt.java passed in JDK17 ATR
09-08-2021

Fix Request (11u) Should get backported for parity with 11.0.12-oracle. Doesn't apply cleanly. Review thread: http://mail.openjdk.java.net/pipermail/jdk-updates-dev/2021-April/005812.html
19-04-2021

Changeset: 2c0507ec Author: Roland Westrelin <roland@openjdk.org> Date: 2021-03-05 15:43:24 +0000 URL: https://git.openjdk.java.net/jdk/commit/2c0507ec
05-03-2021

From the patch it looks like as JDK-8240335 only triggered this and is not related, correct?
03-03-2021

Narrowed it down to JDK-8240335 that causes/triggers this. [~roland], could you please have a look?
17-02-2021

Looks like this has been introduced in JDK 15 b17.
16-02-2021

ILW = Assert during C2 compilation (regression in JDK 15), reproducible with replay compilation and generated test, no workaround but disabled compilation of affected method = HMM = P2
16-02-2021

The test has been generated, I can only reproduce the failure with replay compilation: java -XX:+ReplayIgnoreInitErrors -XX:+ReplayCompiles -XX:ReplayDataFile=replay_pid2296638.log
16-02-2021