# java -XX:CompileOnly="Hello::foo" -Xbatch -XX:+PrintIdeal -XX:PrintIdealIndentThreshold=10000 -cp . Hello aa,b,c,d 1255 StoreP === 1273 298 1233 1238 [[ 1256 ]] @rawptr:BotPTR, idx=Raw; Memory: @rawptr:BotPTR, idx=Raw; 1168 AddL === _ 1167 97 [[ 1169 1212 ]] 576 ConL === 0 [[ 577 ]] #long:120 1274 ConNKlass === 0 [[ 1260 ]] #narrowklass: precise klass [B: 0x00007f356801b620:Constant:exact * 1258 AddP === _ 1237 1237 1257 [[ 1260 ]] 1256 StoreL === 1273 1255 1237 1216 [[ 1260 ]] @NULL Memory: @rawptr:BotPTR, idx=Raw; 1169 AndL === _ 1168 344 [[ 1173 ]] 1212 URShiftL === _ 1168 1149 [[ 1172 ]] !orig=[1213],[1170] 1159 CmpI === _ 390 211 [[ 1160 ]] 577 AddP === _ 1 518 576 [[ 581 ]] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1261 AddP === _ 1237 1237 76 [[ 1262 ]] 1260 StoreNKlass === 1273 1256 1258 1274 [[ 1262 ]] @NULL Memory: @rawptr:BotPTR, idx=Raw; 1149 ConI === 0 [[ 1212 1208 ]] #int:3 1173 AddP === _ 367 367 1169 [[ 1174 ]] 1172 SubL === _ 1208 1212 [[ 1174 ]] 1160 Bool === _ 1159 [[ 1161 ]] [lt] 1206 IfTrue === 1204 [[ 1161 ]] #1 !orig=[1147] 581 LoadP === 1201 1202 577 [[ 636 ]] @rawptr:BotPTR, idx=Raw; #rawptr:NotNull (does not depend only on test) !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1262 StoreI === 1273 1260 1261 211 [[ 1228 ]] @NULL Memory: @rawptr:BotPTR, idx=Raw; 1210 ConL === 0 [[ 1211 ]] #long:-2 1208 URShiftL === _ 343 1149 [[ 1211 1172 ]] !orig=[1209],[1151] 1203 Bool === _ 412 [[ 1204 ]] [ne] 1174 ClearArray === 1162 365 1172 1173 [[ 1166 ]] Memory: @byte[int:0..max-2]:NotNull:exact+any *, idx=11; 1161 If === 1206 1160 [[ 1162 1163 ]] P=0.001000, C=-1.000000 636 AddP === _ 1 581 580 [[ 635 ]] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1228 Phi === 1227 360 1262 [[ 366 ]] #memory Memory: @rawptr:BotPTR, idx=Raw; 1211 AddL === _ 1208 1210 [[ 1154 ]] !orig=[1152] 1204 If === 364 1203 [[ 1205 1206 ]] P=0.999999, C=-1.000000 !orig=[1145] 1217 ConL === 0 [[ 1180 ]] #long:17 1166 Phi === 1165 365 1174 [[ 1175 ]] #memory Memory: @rawptr:BotPTR, idx=Raw; 1162 IfTrue === 1161 [[ 1174 1165 ]] #1 1163 IfFalse === 1161 [[ 1165 ]] #0 583 ConI === 0 [[ 584 ]] #int:9 580 LoadL === 1201 1202 579 [[ 626 636 634 ]] @rawptr:BotPTR, idx=Raw; #long (does not depend only on test) !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 578 ConL === 0 [[ 579 ]] #long:104 635 AddP === _ 1 636 344 [[ 637 ]] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 366 MergeMem === _ 1 1228 1 1 1 1 1 1 1 1 7 [[ 363 ]] { - - - - - - - - N7:byte[int:>=0]:exact+any * } Memory: @BotPTR *+bot, idx=Bot; !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1154 ClearArray === 1205 365 1211 1153 [[ 1155 ]] Memory: @byte[int:0..max-2]:NotNull:exact[0] *, idx=11; 1205 IfFalse === 1204 [[ 1155 1154 ]] #0 !orig=[1146] 1167 ConvI2L === _ 390 [[ 1168 1185 ]] #long:-1..maxint-2:www !orig=[1176] 1153 AddP === _ 367 367 97 [[ 1154 1185 ]] !orig=[1181] 1180 AddP === _ 1319 1319 1217 [[ 1185 ]] 1175 MergeMem === _ 1 7 1166 298 1 298 298 298 298 298 365 [[ 1185 ]] { N1166:rawptr:BotPTR N298:java/lang/String:exact+20 * [narrow] - N298:java/lang/String:exact+16 * N298:java/lang/Object * N298:java/lang/Object+8 * [narrowklass] N298:java/lang/String:exact+12 * N298:java/lang/String:exact+17 * N365:byte[int:>=0]:exact+any * } Memory: @BotPTR *+bot, idx=Bot; 1165 Region === 1165 1163 1162 [[ 1165 1166 1185 ]] 582 CastP2X === 1201 300 [[ 584 588 ]] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 587 CastP2X === 1201 367 [[ 588 ]] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 617 LoadB === 614 615 586 [[ 618 ]] @rawptr:BotPTR, idx=Raw; #int (does not depend only on test) !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 626 CmpL === _ 580 519 [[ 627 ]] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 584 URShiftL === _ 582 583 [[ 586 ]] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 585 ConP === 0 [[ 586 ]] #0x00007f35dc10e000 1265 Proj === 1263 [[ 1230 ]] #5 !orig=[362] !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 634 AddL === _ 580 344 [[ 638 ]] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 579 AddP === _ 1 518 578 [[ 580 638 ]] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 637 StoreP === 629 625 635 586 [[ 638 ]] @rawptr:BotPTR, idx=Raw; Memory: @rawptr:BotPTR, idx=Raw; !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 363 Initialize === 1227 1 366 1 1 1 [[ 364 365 ]] !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1157 Proj === 1155 [[ 1142 ]] #2 Memory: @rawptr:BotPTR, idx=Raw; 1187 Proj === 1185 [[ 1142 ]] #2 Memory: @rawptr:BotPTR, idx=Raw; 1155 Initialize === 1205 1 1154 1 1 1 [[ 1156 1157 ]] 1185 CallLeafNoFP === 1165 1 1175 1 1 ( 1180 1153 1167 1 ) [[ 1186 1187 ]] # jbyte_disjoint_arraycopy void ( NotNull *+bot, NotNull *+bot, long, half ) 101 ConI === 0 [[ 589 ]] #int:24 588 XorL === _ 587 582 [[ 589 ]] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 575 ConI === 0 [[ 605 ]] #int:4 604 LoadB === 593 1202 586 [[ 605 ]] @rawptr:BotPTR, idx=Raw; #int (does not depend only on test) !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 618 CmpI === _ 617 59 [[ 619 ]] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 627 Bool === _ 626 [[ 628 ]] [ne] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 621 IfTrue === 620 [[ 628 625 ]] #1 !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 586 AddP === _ 1 585 584 [[ 604 617 625 637 640 ]] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 625 StoreCM === 621 615 586 59 | 572 [[ 637 640 ]] @rawptr:BotPTR, idx=Raw; Memory: @rawptr:BotPTR, idx=Raw; !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 630 IfFalse === 628 [[ 640 ]] #0 !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1136 ConL === 0 [[ 1137 ]] #long:-1 1133 ConvI2L === _ 104 [[ 1137 ]] #long:0..maxint:www 388 CmpI === _ 387 368 [[ 389 ]] !jvms: Arrays::copyOfRange @ bci:55 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1257 ConL === 0 [[ 1258 1294 ]] #long:8 1216 ConL === 0 [[ 1256 1293 ]] #long:1 1292 StoreP === 1310 7 1233 1284 [[ 1293 ]] @rawptr:BotPTR, idx=Raw; Memory: @rawptr:BotPTR, idx=Raw; 1234 ConL === 0 [[ 1235 ]] #long:336 1230 Phi === 1227 1265 1237 [[ 367 ]] #rawptr:BotPTR !orig=[362] !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 364 Proj === 363 [[ 1204 367 ]] #0 !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 638 StoreL === 629 637 579 634 [[ 645 ]] @rawptr:BotPTR, idx=Raw; Memory: @rawptr:BotPTR, idx=Raw; !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 642 Proj === 640 [[ 645 ]] #2 Memory: @rawptr:BotPTR, idx=Raw; !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 365 Proj === 363 [[ 1175 1154 1138 1174 1166 ]] #2 Memory: @rawptr:BotPTR, idx=Raw; !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1142 Phi === 1140 1187 1157 [[ 1138 ]] #memory Memory: @rawptr:BotPTR, idx=Raw; 1156 Proj === 1155 [[ 1140 ]] #0 1186 Proj === 1185 [[ 1140 ]] #0 612 MergeMem === _ 1 1202 1 572 [[ 613 ]] { - N572:java/lang/String:exact+20 * [narrow] } Memory: @BotPTR *+bot, idx=Bot; !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 608 IfTrue === 607 [[ 613 ]] #1 !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 589 URShiftL === _ 588 101 [[ 590 ]] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 605 CmpI === _ 604 575 [[ 606 ]] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 619 Bool === _ 618 [[ 620 ]] [ne] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 614 Proj === 613 [[ 617 620 ]] #0 !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 628 If === 621 627 [[ 629 630 ]] P=0.500000, C=-1.000000 !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 640 CallLeaf === 630 1 625 1 1 ( 586 518 ) [[ 641 642 ]] # write_ref_field_post_entry void ( rawptr:NotNull, rawptr:NotNull ) !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 333 ConvI2L === _ 211 [[ 337 ]] #long:minint..maxint:www !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1137 AddL === _ 1133 1136 [[ 337 ]] !orig=[340] !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 387 AddI === _ 385 210 [[ 390 388 ]] !jvms: Arrays::copyOfRange @ bci:53 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 389 Bool === _ 388 [[ 390 ]] [lt] !jvms: Arrays::copyOfRange @ bci:55 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 320 IfFalse === 318 [[ 1130 ]] #0 !jvms: Arrays::copyOfRange @ bci:5 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1311 ConNKlass === 0 [[ 1296 ]] #narrowklass: precise klass java/lang/String: 0x00007f35680064d0:Constant:exact * 1294 AddP === _ 1283 1283 1257 [[ 1296 ]] 1293 StoreL === 1310 1292 1283 1216 [[ 1296 ]] @NULL Memory: @rawptr:BotPTR, idx=Raw; 329 ConI === 0 [[ 330 ]] #int:1048576 1235 AddP === _ 1 518 1234 [[ 1236 1282 ]] !orig=1281 367 CheckCastPP === 364 1230 [[ 571 587 1173 1173 1153 1153 ]] #byte[int:0..max-2]:NotNull:exact * !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 645 Phi === 644 642 638 [[ 648 ]] #memory Memory: @rawptr:BotPTR, idx=Raw; !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1138 MergeMem === _ 1 7 1142 298 1 298 298 298 298 298 365 [[ 1200 ]] { N1142:rawptr:BotPTR N298:java/lang/String:exact+20 * [narrow] - N298:java/lang/String:exact+16 * N298:java/lang/Object * N298:java/lang/Object+8 * [narrowklass] N298:java/lang/String:exact+12 * N298:java/lang/String:exact+17 * N365:byte[int:>=0]:exact+any * } Memory: @BotPTR *+bot, idx=Bot; 1140 Region === 1140 1186 1156 [[ 1140 1200 1142 ]] 613 MemBarVolatile === 608 1 612 1 1 572 [[ 614 615 ]] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 590 CmpL === _ 589 519 [[ 591 ]] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 606 Bool === _ 605 [[ 607 ]] [ne] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 593 IfTrue === 592 [[ 607 604 ]] #1 !orig=[600] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 620 If === 614 619 [[ 621 622 ]] P=0.500000, C=-1.000000 !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 629 IfTrue === 628 [[ 644 637 638 ]] #1 !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 641 Proj === 640 [[ 644 ]] #0 !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 334 ConL === 0 [[ 343 ]] #long:23 337 Phi === 336 1137 333 [[ 343 ]] #long:minint..maxint:www !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1236 LoadP === 416 298 1235 [[ 1239 ]] @rawptr:BotPTR, idx=Raw; #rawptr:BotPTR (does not depend only on test) 390 CMoveI === _ 389 368 387 [[ 1159 400 407 412 1167 ]] #int:-1..max-2:www !orig=[1158] !jvms: Arrays::copyOfRange @ bci:55 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 368 CastII === 336 211 [[ 407 388 390 ]] #int:0..max-2:www !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 400 AddI === _ 390 22 [[ 401 ]] !jvms: Arrays::copyOfRange @ bci:58 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1130 If === 320 348 [[ 1131 1132 ]] P=0.999999, C=-1.000000 !orig=[335] !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1297 AddP === _ 1283 1283 76 [[ 1298 ]] 1296 StoreNKlass === 1310 1293 1294 1311 [[ 1298 ]] @NULL Memory: @rawptr:BotPTR, idx=Raw; 330 CmpU === _ 211 329 [[ 348 ]] !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1282 LoadP === 275 7 1235 [[ 1285 ]] @rawptr:BotPTR, idx=Raw; #rawptr:BotPTR (does not depend only on test) 571 EncodeP === _ 367 [[ 572 ]] #narrowoop: byte[int:0..max-2]:NotNull:exact * !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 648 Phi === 647 645 615 [[ 652 ]] #memory Memory: @rawptr:BotPTR, idx=Raw; !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1200 MemBarStoreStore === 1140 1 1138 1 1 [[ 1201 1202 ]] 615 Proj === 613 [[ 653 617 648 625 651 ]] #2 Memory: @BotPTR *+bot, idx=Bot; !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 591 Bool === _ 590 [[ 592 ]] [ne] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1201 Proj === 1200 [[ 582 587 581 580 592 572 ]] #0 !orig=[445] !jvms: Arrays::copyOfRange @ bci:58 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 607 If === 593 606 [[ 608 609 ]] P=0.001000, C=-1.000000 !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 622 IfFalse === 620 [[ 647 ]] #0 !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 644 Region === 644 641 629 [[ 644 647 645 ]] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 344 ConL === 0 [[ 345 635 1169 634 ]] #long:-8 343 AddL === _ 337 334 [[ 345 1208 ]] !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1247 ConL === 0 [[ 1248 ]] #long:256 1245 AddP === _ 1237 1238 1244 [[ 1246 ]] 1239 CmpP === _ 1238 1236 [[ 1270 ]] 1323 ConN === 0 [[ 1324 ]] #narrowoop: NULL 412 CmpI === _ 390 59 [[ 413 1203 ]] !orig=[1143] !jvms: Arrays::copyOfRange @ bci:58 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 407 CmpU === _ 368 390 [[ 408 ]] !jvms: Arrays::copyOfRange @ bci:58 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 401 CmpU === _ 385 400 [[ 402 ]] !jvms: Arrays::copyOfRange @ bci:58 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1131 IfFalse === 1130 [[ 336 ]] #0 !orig=[341] !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1132 IfTrue === 1130 [[ 336 ]] #1 !orig=[338] !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 519 ConL === 0 [[ 626 590 1314 ]] #long:0 1302 AddP === _ 1283 1283 97 [[ 1314 ]] 1298 StoreI === 1310 1296 1297 59 [[ 1314 ]] @rawptr:BotPTR, idx=Raw; Memory: @rawptr:BotPTR, idx=Raw; 348 Bool === _ 330 [[ 1130 1267 ]] [le] !orig=[1129] !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1285 CmpP === _ 1284 1282 [[ 1307 ]] 518 ThreadLocal === 0 [[ 579 640 577 1235 1233 ]] !orig=[1231] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 281 ConL === 0 [[ 1284 ]] #long:24 1316 ConN === 0 [[ 1317 ]] #narrowoop: NULL 665 AddP === _ 300 300 97 [[ 666 ]] Oop:java/lang/String:NotNull:exact+16 * !jvms: String:: @ bci:11 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 572 StoreN === 1201 1202 516 571 [[ 663 613 653 612 625 ]] @java/lang/String:exact+20 * [narrow], name=value, idx=4; Memory: @java/lang/String:NotNull:exact+20 * [narrow], name=value, idx=4; !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 653 Phi === 650 615 572 [[ 663 ]] #memory Memory: @java/lang/String:exact+20 * [narrow], name=value, idx=4; !orig=[658] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 652 Phi === 650 648 1202 [[ 662 ]] #memory Memory: @rawptr:BotPTR, idx=Raw; !orig=[657] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1202 Proj === 1200 [[ 661 581 572 651 612 662 604 580 652 ]] #2 Memory: @BotPTR *+bot, idx=Bot; !orig=[450] !jvms: Arrays::copyOfRange @ bci:58 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 651 Phi === 650 615 1202 [[ 661 ]] #memory Memory: @BotPTR *+bot, idx=Bot; !orig=[656] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 592 If === 1201 591 [[ 593 594 ]] P=0.999000, C=-1.000000 !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 609 IfFalse === 607 [[ 650 ]] #0 !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 647 Region === 647 644 622 [[ 647 650 648 ]] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 345 AndL === _ 343 344 [[ 1238 ]] !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 416 IfFalse === 414 [[ 1237 1267 1236 ]] #0 !jvms: Arrays::copyOfRange @ bci:58 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1232 ConL === 0 [[ 1233 1250 ]] #long:320 1248 AddP === _ 1237 1238 1247 [[ 1249 ]] 1246 PrefetchAllocation === 1273 1277 1245 [[ 1249 ]] 1270 Bool === _ 1239 [[ 1271 ]] [lt] 1269 IfTrue === 1267 [[ 1271 ]] #1 !orig=[1226] 984 AddP === _ 1123 1123 97 [[ 986 ]] !jvms: String::startsWith @ bci:80 String::startsWith @ bci:3 Hello::foo @ bci:9 1073 CmpU === _ 744 59 [[ 1075 ]] !orig=[967] !jvms: String::startsWith @ bci:80 String::startsWith @ bci:3 Hello::foo @ bci:9 516 AddP === _ 300 300 58 [[ 1103 572 ]] Oop:java/lang/String:NotNull:exact+20 * [narrow] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 871 CmpI === _ 763 59 [[ 872 ]] !jvms: String::startsWith @ bci:50 String::startsWith @ bci:3 Hello::foo @ bci:9 743 AddP === _ 1123 1123 76 [[ 744 ]] !orig=[965] !jvms: String::length @ bci:4 String::startsWith @ bci:6 String::startsWith @ bci:3 Hello::foo @ bci:9 809 CmpI === _ 806 59 [[ 811 ]] !orig=807 !jvms: String::startsWith @ bci:14 String::startsWith @ bci:3 Hello::foo @ bci:9 1324 CmpN === _ 1103 1323 [[ 1113 ]] 413 Bool === _ 412 [[ 414 ]] [lt] !jvms: Arrays::copyOfRange @ bci:58 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 411 IfFalse === 409 [[ 414 ]] #0 !jvms: Arrays::copyOfRange @ bci:58 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 408 Bool === _ 407 [[ 409 ]] [lt] !jvms: Arrays::copyOfRange @ bci:58 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 405 IfFalse === 403 [[ 409 ]] #0 !jvms: Arrays::copyOfRange @ bci:58 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 402 Bool === _ 401 [[ 403 ]] [lt] !jvms: Arrays::copyOfRange @ bci:58 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 336 Region === 336 1132 1131 [[ 336 337 403 368 ]] !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1314 StoreL === 1310 1298 1302 519 [[ 1276 ]] @rawptr:BotPTR, idx=Raw; Memory: @rawptr:BotPTR, idx=Raw; !orig=[1303] 1267 If === 416 348 [[ 1268 1269 ]] P=0.999999, C=-1.000000 !orig=[1224] 1307 Bool === _ 1285 [[ 1308 ]] [lt] 1233 AddP === _ 1 518 1232 [[ 1237 1255 1292 1283 ]] !orig=1280 275 IfTrue === 274 [[ 1308 1282 1283 ]] #1 !jvms: StringLatin1::newString @ bci:1 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1244 ConL === 0 [[ 1245 1290 ]] #long:192 1284 AddP === _ 1 1283 281 [[ 1285 1290 1292 ]] 270 CmpI === _ 211 59 [[ 317 ]] !jvms: StringLatin1::newString @ bci:1 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 233 CmpI === _ 99 59 [[ 234 ]] !jvms: String::isLatin1 @ bci:10 String::substring @ bci:28 String::substring @ bci:6 Hello::foo @ bci:2 76 ConL === 0 [[ 743 384 1261 1297 ]] #long:12 1319 DecodeN === _ 61 [[ 1180 1180 384 384 ]] #byte[int:>=0]:NotNull:exact * !orig=[62] !jvms: String::length @ bci:1 String::substring @ bci:3 Hello::foo @ bci:2 180 CmpI === _ 104 22 [[ 273 182 ]] !orig=178 !jvms: String::checkBoundsBeginEnd @ bci:6 String::substring @ bci:8 String::substring @ bci:6 Hello::foo @ bci:2 1317 CmpN === _ 61 1316 [[ 64 ]] 31 CmpP === _ 10 30 [[ 32 ]] !jvms: Hello::foo @ bci:2 666 StoreB === 660 661 665 59 [[ 485 ]] @java/lang/String:exact+16 *, name=coder, idx=6; Memory: @java/lang/String:NotNull:exact+16 *, name=coder, idx=6; !orig=[669],[484] !jvms: String:: @ bci:11 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 663 Phi === 660 653 572 [[ 485 ]] #memory Memory: @java/lang/String:exact+20 * [narrow], name=value, idx=4; !orig=[668],[484] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 662 Phi === 660 652 1202 [[ 485 ]] #memory Memory: @rawptr:BotPTR, idx=Raw; !orig=[667],[484] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 661 Phi === 660 651 1202 [[ 485 666 ]] #memory Memory: @BotPTR *+bot, idx=Bot; !orig=[484] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 594 IfFalse === 592 [[ 660 ]] #0 !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 650 Region === 650 647 609 [[ 650 660 651 652 653 ]] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1252 ConL === 0 [[ 1253 ]] #long:384 1238 AddP === _ 1 1237 345 [[ 1239 1245 1248 1250 1253 1255 ]] 1237 LoadP === 416 298 1233 [[ 1238 1245 1248 1250 1253 1256 1258 1258 1261 1261 1230 ]] @rawptr:BotPTR, idx=Raw; #rawptr:BotPTR (does not depend only on test) 1250 AddP === _ 1237 1238 1232 [[ 1251 ]] 1249 PrefetchAllocation === _ 1246 1248 [[ 1251 ]] 1271 If === 1269 1270 [[ 1272 1273 ]] P=0.999900, C=-1.000000 !orig=[1241] 273 Bool === _ 180 [[ 274 ]] [ne] !jvms: StringLatin1::newString @ bci:1 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 237 IfFalse === 235 [[ 274 ]] #0 !jvms: String::isLatin1 @ bci:10 String::substring @ bci:28 String::substring @ bci:6 Hello::foo @ bci:2 1010 ConI === 0 [[ 1017 ]] #int:97 986 LoadB === 1077 1124 984 | 1120 [[ 1017 ]] @byte[int:>=0]:exact+any *, idx=11; #byte !jvms: String::startsWith @ bci:80 String::startsWith @ bci:3 Hello::foo @ bci:9 1075 Bool === _ 1073 [[ 1327 ]] [le] 875 IfFalse === 873 [[ 1327 ]] #0 !orig=[912] !jvms: String::startsWith @ bci:50 String::startsWith @ bci:3 Hello::foo @ bci:9 1103 LoadN === _ 676 516 [[ 1107 1324 ]] @java/lang/String:exact+20 * [narrow], name=value, idx=4; #narrowoop: byte[int:>=0]:exact * !orig=[728] !jvms: String::length @ bci:1 String::startsWith @ bci:6 String::startsWith @ bci:3 Hello::foo @ bci:9 872 Bool === _ 871 [[ 873 ]] [ne] !jvms: String::startsWith @ bci:50 String::startsWith @ bci:3 Hello::foo @ bci:9 814 IfFalse === 812 [[ 873 ]] #0 !jvms: String::startsWith @ bci:14 String::startsWith @ bci:3 Hello::foo @ bci:9 744 LoadRange === 1120 7 743 [[ 767 1073 ]] @bottom[int:>=0]+12 * [narrow], idx=5; #int:>=0 !orig=[966] !jvms: String::length @ bci:4 String::startsWith @ bci:6 String::startsWith @ bci:3 Hello::foo @ bci:9 811 Bool === _ 809 [[ 812 ]] [lt] !jvms: String::startsWith @ bci:14 String::startsWith @ bci:3 Hello::foo @ bci:9 1113 Bool === _ 1324 [[ 1116 ]] [ne] !orig=[731] !jvms: String::length @ bci:4 String::startsWith @ bci:6 String::startsWith @ bci:3 Hello::foo @ bci:9 675 Proj === 674 [[ 1116 ]] #0 !jvms: StringLatin1::newString @ bci:-1 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 414 If === 411 413 [[ 415 416 ]] P=0.000001, C=-1.000000 !jvms: Arrays::copyOfRange @ bci:58 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 409 If === 405 408 [[ 410 411 ]] P=0.000001, C=-1.000000 !jvms: Arrays::copyOfRange @ bci:58 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 403 If === 336 402 [[ 404 405 ]] P=0.000001, C=-1.000000 !jvms: Arrays::copyOfRange @ bci:58 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1276 Phi === 1275 293 1314 [[ 299 296 ]] #memory Memory: @rawptr:BotPTR, idx=Raw; 299 MergeMem === _ 1 1276 1 7 1 7 1 1 7 7 [[ 296 ]] { - N7:java/lang/String:exact+20 * [narrow] - N7:java/lang/String:exact+16 * - - N7:java/lang/String:exact+12 * N7:java/lang/String:exact+17 * } Memory: @BotPTR *+bot, idx=Bot; !jvms: StringLatin1::newString @ bci:7 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1272 IfFalse === 1271 [[ 1223 ]] #0 !orig=[1242] 1268 IfFalse === 1267 [[ 1223 ]] #0 !orig=[1225] 1308 If === 275 1307 [[ 1309 1310 ]] P=0.999900, C=-1.000000 !orig=[1287] 58 ConL === 0 [[ 60 516 ]] #long:20 1283 LoadP === 275 7 1233 [[ 1284 1290 1293 1294 1294 1297 1297 1302 1302 1278 ]] @rawptr:BotPTR, idx=Raw; #rawptr:BotPTR (does not depend only on test) 1306 Proj === 1304 [[ 1278 ]] #5 !orig=[295] !jvms: StringLatin1::newString @ bci:7 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1290 AddP === _ 1283 1284 1244 [[ 1291 ]] 1310 IfTrue === 1308 [[ 1275 1314 1298 1296 1293 1292 1291 ]] #1 !orig=[1289] 1305 CatchProj === 287 [[ 1275 ]] #0@bci -1 !orig=[288] !jvms: StringLatin1::newString @ bci:7 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 317 Bool === _ 270 [[ 318 ]] [lt] !jvms: Arrays::copyOfRange @ bci:5 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 97 ConL === 0 [[ 98 665 762 984 1168 1153 1302 ]] #long:16 234 Bool === _ 233 [[ 235 ]] [ne] !jvms: String::isLatin1 @ bci:10 String::substring @ bci:28 String::substring @ bci:6 Hello::foo @ bci:2 185 IfFalse === 183 [[ 235 ]] #0 !jvms: String::checkBoundsBeginEnd @ bci:6 String::substring @ bci:8 String::substring @ bci:6 Hello::foo @ bci:2 384 AddP === _ 1319 1319 76 [[ 385 ]] !orig=[77] !jvms: Arrays::copyOfRange @ bci:51 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 182 Bool === _ 180 [[ 183 ]] [lt] !jvms: String::checkBoundsBeginEnd @ bci:6 String::substring @ bci:8 String::substring @ bci:6 Hello::foo @ bci:2 68 IfTrue === 67 [[ 183 385 ]] #1 !jvms: String::length @ bci:4 String::substring @ bci:3 Hello::foo @ bci:2 64 Bool === _ 1317 [[ 67 ]] [ne] !jvms: String::length @ bci:4 String::substring @ bci:3 Hello::foo @ bci:2 32 Bool === _ 31 [[ 35 ]] [ne] !jvms: Hello::foo @ bci:2 5 Parm === 3 [[ 35 ]] Control !jvms: Hello::foo @ bci:-1 485 MergeMem === _ 1 661 662 663 1 666 [[ 674 ]] { N662:rawptr:BotPTR N663:java/lang/String:exact+20 * [narrow] - N666:java/lang/String:exact+16 * } Memory: @BotPTR *+bot, idx=Bot; !orig=[672] !jvms: StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 660 Region === 660 650 594 [[ 660 674 661 662 663 666 ]] !orig=[671] !jvms: String:: @ bci:6 StringLatin1::newString @ bci:20 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1253 AddP === _ 1237 1238 1252 [[ 1254 ]] 1251 PrefetchAllocation === _ 1249 1250 [[ 1254 ]] 1273 IfTrue === 1271 [[ 1227 1262 1260 1256 1255 1246 ]] #1 !orig=[1243] 1264 CatchProj === 354 [[ 1227 ]] #0@bci -1 !orig=[355] !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 274 If === 237 273 [[ 275 276 ]] P=0.993295, C=9695.000000 !orig=[734] !jvms: StringLatin1::newString @ bci:1 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1017 CmpI === _ 986 1010 [[ 1018 ]] !jvms: String::startsWith @ bci:89 String::startsWith @ bci:3 Hello::foo @ bci:9 1327 If === 875 1075 [[ 1078 1077 ]] P=0.000001, C=-1.000000 762 AddP === _ 1128 1128 97 [[ 763 ]] Oop:java/lang/String:NotNull:exact+16 * !jvms: String::coder @ bci:7 String::length @ bci:6 String::startsWith @ bci:6 String::startsWith @ bci:3 Hello::foo @ bci:9 1107 DecodeN === _ 1103 [[ 1123 ]] #byte[int:>=0]:exact * !orig=[729] !jvms: String::length @ bci:1 String::startsWith @ bci:6 String::startsWith @ bci:3 Hello::foo @ bci:9 1106 ConP === 0 [[ 1123 ]] #stable:byte[int:0] ident=1205 address=0x00007f35680cb880> * 873 If === 814 872 [[ 874 875 ]] P=0.000000, C=6911.000000 !jvms: String::startsWith @ bci:50 String::startsWith @ bci:3 Hello::foo @ bci:9 767 RShiftI === _ 744 763 [[ 806 ]] !jvms: String::length @ bci:9 String::startsWith @ bci:6 String::startsWith @ bci:3 Hello::foo @ bci:9 279 ConP === 0 [[ 1128 ]] #java/lang/String:exact * Oop:java/lang/String:exact * 812 If === 1120 811 [[ 813 814 ]] P=0.000000, C=6911.000000 !jvms: String::startsWith @ bci:14 String::startsWith @ bci:3 Hello::foo @ bci:9 1116 If === 675 1113 [[ 1122 1119 ]] P=0.999999, C=-1.000000 !orig=[734] !jvms: String::length @ bci:4 String::startsWith @ bci:6 String::startsWith @ bci:3 Hello::foo @ bci:9 415 IfTrue === 414 [[ 392 ]] #1 !jvms: Arrays::copyOfRange @ bci:58 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 410 IfTrue === 409 [[ 392 ]] #1 !jvms: Arrays::copyOfRange @ bci:58 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 404 IfTrue === 403 [[ 392 ]] #1 !jvms: Arrays::copyOfRange @ bci:58 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 296 Initialize === 1275 1 299 1 1 1 1276 [[ 297 298 ]] !jvms: StringLatin1::newString @ bci:7 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 328 ConP === 0 [[ 1263 ]] #precise klass [B: 0x00007f356801b620:Constant:exact * Klass:precise klass [B: 0x00007f356801b620:Constant:exact * 346 MergeMem === _ 1 7 298 298 1 298 298 298 298 298 1 [[ 1263 ]] { N298:rawptr:BotPTR N298:java/lang/String:exact+20 * [narrow] - N298:java/lang/String:exact+16 * N298:java/lang/Object * N298:java/lang/Object+8 * [narrowklass] N298:java/lang/String:exact+12 * N298:java/lang/String:exact+17 * - } Memory: @BotPTR *+bot, idx=Bot; !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1223 Region === 1223 1268 1272 [[ 1223 1263 ]] 280 ConP === 0 [[ 1304 ]] #precise klass java/lang/String: 0x00007f35680064d0:Constant:exact * Klass:precise klass java/lang/String: 0x00007f35680064d0:Constant:exact * 1309 IfFalse === 1308 [[ 1304 ]] #0 !orig=[1288] 351 Proj === 1263 [[ 354 ]] #0 !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 284 Proj === 1304 [[ 287 ]] #0 !jvms: StringLatin1::newString @ bci:7 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 60 AddP === _ 10 10 58 [[ 61 ]] Oop:java/lang/String:exact+20 * [narrow] !jvms: String::length @ bci:1 String::substring @ bci:3 Hello::foo @ bci:2 1278 Phi === 1275 1306 1283 [[ 300 ]] #rawptr:BotPTR !orig=[295] !jvms: StringLatin1::newString @ bci:7 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 297 Proj === 296 [[ 318 300 ]] #0 !jvms: StringLatin1::newString @ bci:7 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1291 PrefetchAllocation === 1310 6 1290 [[ 1277 ]] 1275 Region === 1275 1305 1310 [[ 1275 1276 1277 1278 296 ]] !orig=[288] !jvms: StringLatin1::newString @ bci:7 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 318 If === 297 317 [[ 319 320 ]] P=0.000000, C=9802.000000 !jvms: Arrays::copyOfRange @ bci:5 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 98 AddP === _ 10 10 97 [[ 99 ]] Oop:java/lang/String:exact+16 * !jvms: String::coder @ bci:7 String::length @ bci:6 String::substring @ bci:3 Hello::foo @ bci:2 36 IfTrue === 35 [[ 67 61 99 ]] #1 !jvms: Hello::foo @ bci:2 210 ConI === 0 [[ 211 806 387 ]] #int:-1 235 If === 185 234 [[ 236 237 ]] P=0.000000, C=245913.000000 !jvms: String::isLatin1 @ bci:10 String::substring @ bci:28 String::substring @ bci:6 Hello::foo @ bci:2 385 LoadRange === 68 7 384 [[ 387 104 401 ]] @bottom[int:>=0]+12 * [narrow], idx=5; #int:>=0 !orig=[78] !jvms: Arrays::copyOfRange @ bci:51 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 183 If === 68 182 [[ 184 185 ]] P=0.000000, C=9046.000000 !jvms: String::checkBoundsBeginEnd @ bci:6 String::substring @ bci:8 String::substring @ bci:6 Hello::foo @ bci:2 67 If === 36 64 [[ 68 69 ]] P=0.999999, C=-1.000000 !jvms: String::length @ bci:4 String::substring @ bci:3 Hello::foo @ bci:2 35 If === 5 32 [[ 36 37 ]] P=0.999999, C=-1.000000 !jvms: Hello::foo @ bci:2 974 ConI === 0 [[ 975 ]] #int:-28 1078 IfTrue === 1327 [[ 975 ]] #1 !orig=[973] !jvms: String::startsWith @ bci:80 String::startsWith @ bci:3 Hello::foo @ bci:9 188 ConI === 0 [[ 1042 ]] #int:-187 1020 IfTrue === 1019 [[ 1042 ]] #1 !orig=[1091],[1039] !jvms: String::startsWith @ bci:89 String::startsWith @ bci:3 Hello::foo @ bci:9 674 MemBarRelease === 660 1 485 1 1 [[ 675 676 ]] !jvms: StringLatin1::newString @ bci:-1 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1254 PrefetchAllocation === _ 1251 1253 [[ 1229 ]] 1227 Region === 1227 1264 1273 [[ 1227 1228 1229 1230 363 ]] !orig=[355] !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1122 IfTrue === 1116 [[ 1120 ]] #1 !orig=[735] !jvms: String::length @ bci:4 String::startsWith @ bci:6 String::startsWith @ bci:3 Hello::foo @ bci:9 276 IfFalse === 274 [[ 1120 ]] #0 !orig=[1121],[735] !jvms: StringLatin1::newString @ bci:1 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1018 Bool === _ 1017 [[ 1019 ]] [ne] !jvms: String::startsWith @ bci:89 String::startsWith @ bci:3 Hello::foo @ bci:9 1077 IfFalse === 1327 [[ 986 1019 ]] #0 !orig=[970] !jvms: String::startsWith @ bci:80 String::startsWith @ bci:3 Hello::foo @ bci:9 763 LoadB === _ 1124 762 [[ 878 871 878 767 ]] @java/lang/String:exact+16 *, name=coder, idx=6; #byte !jvms: String::coder @ bci:7 String::length @ bci:6 String::startsWith @ bci:6 String::startsWith @ bci:3 Hello::foo @ bci:9 779 ConP === 0 [[ 878 975 ]] #stable:byte[int:1] ident=1204 address=0x00007f35680cae10> * 1123 Phi === 1120 1106 1107 [[ 743 878 975 975 984 984 743 ]] #byte[int:>=0]:exact * !orig=[1104],[729] !jvms: String::length @ bci:1 String::startsWith @ bci:6 String::startsWith @ bci:3 Hello::foo @ bci:9 1326 ConI === 0 [[ 878 ]] #int:-187 874 IfTrue === 873 [[ 878 ]] #1 !jvms: String::startsWith @ bci:50 String::startsWith @ bci:3 Hello::foo @ bci:9 806 AddI === _ 767 210 [[ 817 809 ]] !jvms: String::startsWith @ bci:13 String::startsWith @ bci:3 Hello::foo @ bci:9 59 ConI === 0 [[ 618 1042 975 666 809 817 625 878 871 233 878 270 1298 1073 817 975 412 878 ]] #int:0 685 ConP === 0 [[ 817 ]] #java/lang/String:exact * Oop:java/lang/String:exact * 1128 Phi === 1120 279 300 [[ 762 762 817 ]] #java/lang/String:NotNull:exact * Oop:java/lang/String:NotNull:exact * !orig=[265] !jvms: String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1325 ConI === 0 [[ 817 ]] #int:-187 813 IfTrue === 812 [[ 817 ]] #1 !jvms: String::startsWith @ bci:14 String::startsWith @ bci:3 Hello::foo @ bci:9 38 ConI === 0 [[ 737 ]] #int:-10 1119 IfFalse === 1116 [[ 737 ]] #0 !orig=[736] !jvms: String::length @ bci:4 String::startsWith @ bci:6 String::startsWith @ bci:3 Hello::foo @ bci:9 424 ConI === 0 [[ 425 ]] #int:-52 422 MergeMem === _ 1 7 298 298 1 298 298 298 298 298 1 [[ 425 ]] { N298:rawptr:BotPTR N298:java/lang/String:exact+20 * [narrow] - N298:java/lang/String:exact+16 * N298:java/lang/Object * N298:java/lang/Object+8 * [narrowklass] N298:java/lang/String:exact+12 * N298:java/lang/String:exact+17 * - } Memory: @BotPTR *+bot, idx=Bot; !jvms: Arrays::copyOfRange @ bci:58 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 392 Region === 392 404 410 415 [[ 392 425 ]] !jvms: Arrays::copyOfRange @ bci:58 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 298 Proj === 296 [[ 1175 1175 1175 1175 1175 1175 346 346 346 422 422 422 422 346 312 312 312 312 312 312 312 475 476 346 346 422 422 422 346 478 477 473 474 1138 1138 1138 1138 1138 1138 1236 1237 1255 ]] #2 Memory: @rawptr:BotPTR, idx=Raw; !orig=[463] !jvms: StringLatin1::newString @ bci:7 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 360 Proj === 1263 [[ 472 1228 ]] #2 Memory: @BotPTR *+bot, idx=Bot; !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 293 Proj === 1304 [[ 472 1276 ]] #2 Memory: @BotPTR *+bot, idx=Bot; !jvms: StringLatin1::newString @ bci:7 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1263 CallStaticJava === 1223 1 346 8 1 ( 328 211 1 1 1 1 1 1 1 1 1 1 1 1 300 300 61 22 1 211 1 ) [[ 1265 361 360 351 ]] # Static _new_array_nozero_Java rawptr:NotNull ( java/lang/Object:NotNull *, int ) C=0.000100 Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 !orig=350 !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1304 CallStaticJava === 1309 1 7 8 1 ( 280 1 1 1 1 1 1 1 1 1 61 22 211 ) [[ 1306 294 293 284 ]] # Static _new_instance_Java rawptr:NotNull ( java/lang/Object:NotNull * ) C=0.000100 StringLatin1::newString @ bci:7 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 !orig=283 !jvms: StringLatin1::newString @ bci:7 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 354 Catch === 351 361 [[ 1264 356 ]] !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 287 Catch === 284 294 [[ 1305 289 ]] !jvms: StringLatin1::newString @ bci:7 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 61 LoadN === 36 7 60 [[ 425 1317 1319 323 1304 1263 ]] @java/lang/String:exact+20 * [narrow], name=value, idx=4; #narrowoop: byte[int:>=0]:exact * !jvms: String::length @ bci:1 String::substring @ bci:3 Hello::foo @ bci:2 300 CheckCastPP === 297 1278 [[ 425 665 516 516 323 323 1263 1263 582 665 1128 425 ]] #java/lang/String:NotNull:exact * Oop:java/lang/String:NotNull:exact * !jvms: StringLatin1::newString @ bci:7 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1322 ConI === 0 [[ 323 ]] #int:-187 312 MergeMem === _ 1 7 298 298 1 298 298 298 298 298 [[ 323 ]] { N298:rawptr:BotPTR N298:java/lang/String:exact+20 * [narrow] - N298:java/lang/String:exact+16 * N298:java/lang/Object * N298:java/lang/Object+8 * [narrowklass] N298:java/lang/String:exact+12 * N298:java/lang/String:exact+17 * } Memory: @BotPTR *+bot, idx=Bot; !jvms: Arrays::copyOfRange @ bci:-1 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1277 Phi === 1275 6 1291 [[ 1246 1229 323 425 ]] #abIO 319 IfTrue === 318 [[ 323 ]] #1 !jvms: Arrays::copyOfRange @ bci:5 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 99 LoadB === 36 7 98 [[ 240 233 104 ]] @java/lang/String:exact+16 *, name=coder, idx=6; #byte !jvms: String::coder @ bci:7 String::length @ bci:6 String::substring @ bci:3 Hello::foo @ bci:2 211 AddI === _ 104 210 [[ 425 425 240 1263 1263 270 368 1304 333 330 323 323 1159 1262 ]] !orig=[339] !jvms: String::substring @ bci:24 String::substring @ bci:6 Hello::foo @ bci:2 1321 ConI === 0 [[ 240 ]] #int:-187 236 IfTrue === 235 [[ 240 ]] #1 !jvms: String::isLatin1 @ bci:10 String::substring @ bci:28 String::substring @ bci:6 Hello::foo @ bci:2 104 RShiftI === _ 385 99 [[ 323 211 189 189 189 189 180 189 1133 ]] !jvms: String::length @ bci:9 String::substring @ bci:3 Hello::foo @ bci:2 10 Parm === 3 [[ 31 240 60 60 98 98 189 ]] Parm0: java/lang/String:exact * Oop:java/lang/String:exact * !jvms: Hello::foo @ bci:-1 1320 ConI === 0 [[ 189 ]] #int:-187 184 IfTrue === 183 [[ 189 ]] #1 !jvms: String::checkBoundsBeginEnd @ bci:6 String::substring @ bci:8 String::substring @ bci:6 Hello::foo @ bci:2 1318 ConI === 0 [[ 70 ]] #int:-10 69 IfFalse === 67 [[ 70 ]] #0 !jvms: String::length @ bci:4 String::substring @ bci:3 Hello::foo @ bci:2 22 ConI === 0 [[ 240 39 323 189 180 189 975 975 425 1263 189 1304 878 400 ]] #int:1 30 ConP === 0 [[ 31 39 737 70 ]] #NULL 1315 ConI === 0 [[ 39 ]] #int:-10 37 IfFalse === 35 [[ 39 ]] #0 !jvms: Hello::foo @ bci:2 975 CallStaticJava === 1078 1126 1124 8 9 ( 974 1 1 1 1 1 1 1 1123 779 59 22 1 22 1123 59 ) [[ 976 ]] # Static uncommon_trap(reason='range_check' action='make_not_entrant' debug_id='0') void ( int ) C=0.000100 String::startsWith @ bci:80 String::startsWith @ bci:3 Hello::foo @ bci:9 !jvms: String::startsWith @ bci:80 String::startsWith @ bci:3 Hello::foo @ bci:9 1042 CallStaticJava === 1020 1126 1124 8 9 ( 188 1 1 59 ) [[ 1043 ]] # Static uncommon_trap(reason='unstable_if' action='reinterpret' debug_id='0') void ( int ) C=0.000100 Hello::foo @ bci:12 reexecute !jvms: Hello::foo @ bci:12 676 Proj === 674 [[ 737 1103 1124 ]] #2 Memory: @BotPTR *+bot, idx=Bot; !orig=[1125],[263],[941],[946] !jvms: StringLatin1::newString @ bci:-1 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1229 Phi === 1227 1277 1254 [[ 1126 737 ]] #abIO 6 Parm === 3 [[ 1291 1126 240 39 189 70 1277 ]] I_O !jvms: Hello::foo @ bci:-1 1120 Region === 1120 276 1122 [[ 1120 986 812 1123 1124 1126 1128 744 ]] !orig=[735] !jvms: String::length @ bci:4 String::startsWith @ bci:6 String::startsWith @ bci:3 Hello::foo @ bci:9 1019 If === 1077 1018 [[ 1020 1021 ]] P=0.156981, C=6969.000000 !orig=[1037] !jvms: String::startsWith @ bci:89 String::startsWith @ bci:3 Hello::foo @ bci:9 878 CallStaticJava === 874 1126 1124 8 9 ( 1326 1 1 1 1 1 1 59 1123 779 59 22 763 1 763 59 ) [[ 879 ]] # Static uncommon_trap(reason='unstable_if' action='reinterpret' debug_id='0') void ( int ) C=0.000100 String::startsWith @ bci:50 reexecute String::startsWith @ bci:3 Hello::foo @ bci:9 !jvms: String::startsWith @ bci:50 String::startsWith @ bci:3 Hello::foo @ bci:9 817 CallStaticJava === 813 1126 1124 8 9 ( 1325 1 1 1 1 1128 685 59 1 1 1 1 1 1 59 806 ) [[ 818 ]] # Static uncommon_trap(reason='unstable_if' action='reinterpret' debug_id='0') void ( int ) C=0.000100 String::startsWith @ bci:14 reexecute String::startsWith @ bci:3 Hello::foo @ bci:9 !jvms: String::startsWith @ bci:14 String::startsWith @ bci:3 Hello::foo @ bci:9 737 CallStaticJava === 1119 1229 676 8 9 ( 38 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 30 ) [[ 738 ]] # Static uncommon_trap(reason='null_check' action='maybe_recompile' debug_id='0') void ( int ) C=0.000100 String::length @ bci:4 String::startsWith @ bci:6 String::startsWith @ bci:3 Hello::foo @ bci:9 !jvms: String::length @ bci:4 String::startsWith @ bci:6 String::startsWith @ bci:3 Hello::foo @ bci:9 425 CallStaticJava === 392 1277 422 8 1 ( 424 1 1 1 1 1 1 1 1 1 1 1 1 300 300 61 22 1 211 1 211 ) [[ 426 ]] # Static uncommon_trap(reason='intrinsic_or_type_checked_inlining' action='make_not_entrant' debug_id='0') void ( int ) C=0.000100 Arrays::copyOfRange @ bci:41 reexecute StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 !jvms: Arrays::copyOfRange @ bci:58 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 359 CreateEx === 356 361 [[ 479 ]] #java/lang/Throwable:NotNull * Oop:java/lang/Throwable:NotNull * !orig=[464] !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 292 CreateEx === 289 294 [[ 479 ]] #java/lang/Throwable:NotNull * Oop:java/lang/Throwable:NotNull * !jvms: StringLatin1::newString @ bci:7 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 478 Phi === 469 7 298 [[ 1049 ]] #memory Memory: @java/lang/String:exact+17 *, name=hashIsZero, idx=10; !orig=[471] !jvms: StringLatin1::newString @ bci:-1 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 477 Phi === 469 7 298 [[ 1049 ]] #memory Memory: @java/lang/String:exact+12 *, name=hash, idx=9; !orig=[471] !jvms: StringLatin1::newString @ bci:-1 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 476 Phi === 469 7 298 [[ 1049 ]] #memory Memory: @java/lang/Object+8 * [narrowklass], idx=8; !orig=[471] !jvms: StringLatin1::newString @ bci:-1 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 475 Phi === 469 7 298 [[ 1049 ]] #memory Memory: @java/lang/Object *, idx=7; !orig=[471] !jvms: StringLatin1::newString @ bci:-1 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 474 Phi === 469 7 298 [[ 1049 ]] #memory Memory: @java/lang/String:exact+16 *, name=coder, idx=6; !orig=[471] !jvms: StringLatin1::newString @ bci:-1 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 473 Phi === 469 7 298 [[ 1049 ]] #memory Memory: @java/lang/String:exact+20 * [narrow], name=value, idx=4; !orig=[471] !jvms: StringLatin1::newString @ bci:-1 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 472 Phi === 469 293 360 [[ 1049 ]] #memory Memory: @rawptr:BotPTR, idx=Raw; !jvms: StringLatin1::newString @ bci:-1 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 7 Parm === 3 [[ 1304 744 478 477 476 475 39 474 473 1175 422 61 385 70 189 1124 366 1049 346 99 240 312 299 299 299 299 1138 1282 1283 1292 ]] Memory Memory: @BotPTR *+bot, idx=Bot; !orig=[456] !jvms: Hello::foo @ bci:-1 361 Proj === 1263 [[ 354 359 470 ]] #1 !orig=[1141],[442],[1127],[262],940,[945] !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 294 Proj === 1304 [[ 287 292 470 ]] #1 !jvms: StringLatin1::newString @ bci:7 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 356 CatchProj === 354 [[ 469 359 ]] #1@bci -1 !jvms: Arrays::copyOfRange @ bci:41 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 289 CatchProj === 287 [[ 469 292 ]] #1@bci -1 !jvms: StringLatin1::newString @ bci:7 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 323 CallStaticJava === 319 1277 312 8 9 ( 1322 1 1 1 1 1 1 1 1 1 1 1 1 300 300 61 22 104 211 1 211 ) [[ 324 ]] # Static uncommon_trap(reason='unstable_if' action='reinterpret' debug_id='0') void ( int ) C=0.000100 Arrays::copyOfRange @ bci:5 reexecute StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 !jvms: Arrays::copyOfRange @ bci:5 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 240 CallStaticJava === 236 6 7 8 9 ( 1321 1 1 1 1 10 22 1 1 211 1 99 ) [[ 241 ]] # Static uncommon_trap(reason='unstable_if' action='reinterpret' debug_id='0') void ( int ) C=0.000100 String::isLatin1 @ bci:10 reexecute String::substring @ bci:28 String::substring @ bci:6 Hello::foo @ bci:2 !jvms: String::isLatin1 @ bci:10 String::substring @ bci:28 String::substring @ bci:6 Hello::foo @ bci:2 189 CallStaticJava === 184 6 7 8 9 ( 1320 1 1 1 1 10 22 104 104 1 22 104 104 22 104 ) [[ 190 ]] # Static uncommon_trap(reason='unstable_if' action='reinterpret' debug_id='0') void ( int ) C=0.000100 String::checkBoundsBeginEnd @ bci:6 reexecute String::substring @ bci:8 String::substring @ bci:6 Hello::foo @ bci:2 !jvms: String::checkBoundsBeginEnd @ bci:6 String::substring @ bci:8 String::substring @ bci:6 Hello::foo @ bci:2 70 CallStaticJava === 69 6 7 8 9 ( 1318 1 1 1 1 1 1 1 30 ) [[ 71 ]] # Static uncommon_trap(reason='null_check' action='maybe_recompile' debug_id='0') void ( int ) C=0.000100 String::length @ bci:4 String::substring @ bci:3 Hello::foo @ bci:2 !jvms: String::length @ bci:4 String::substring @ bci:3 Hello::foo @ bci:2 3 Start === 3 0 [[ 3 5 6 7 8 9 10 ]] #{0:control, 1:abIO, 2:memory, 3:rawptr:BotPTR, 4:return_address, 5:java/lang/String:exact *} 39 CallStaticJava === 37 6 7 8 9 ( 1315 1 1 30 22 ) [[ 40 ]] # Static uncommon_trap(reason='null_check' action='maybe_recompile' debug_id='0') void ( int ) C=0.000100 Hello::foo @ bci:2 !jvms: Hello::foo @ bci:2 976 Proj === 975 [[ 979 ]] #0 !jvms: String::startsWith @ bci:80 String::startsWith @ bci:3 Hello::foo @ bci:9 1043 Proj === 1042 [[ 1046 ]] #0 !jvms: Hello::foo @ bci:12 1047 ConP === 0 [[ 1051 ]] #java/lang/String:exact * Oop:java/lang/String:exact * 1124 Phi === 1120 7 676 [[ 975 1042 986 763 817 1051 878 ]] #memory Memory: @BotPTR *+bot, idx=Bot; !orig=[263],[941],[946] !jvms: String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1126 Phi === 1120 6 1229 [[ 975 1042 817 1051 878 ]] #abIO !orig=[262],940,[945] !jvms: String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1021 IfFalse === 1019 [[ 1051 ]] #0 !orig=[1029] !jvms: String::startsWith @ bci:89 String::startsWith @ bci:3 Hello::foo @ bci:9 879 Proj === 878 [[ 882 ]] #0 !jvms: String::startsWith @ bci:50 String::startsWith @ bci:3 Hello::foo @ bci:9 818 Proj === 817 [[ 821 ]] #0 !jvms: String::startsWith @ bci:14 String::startsWith @ bci:3 Hello::foo @ bci:9 738 Proj === 737 [[ 741 ]] #0 !jvms: String::length @ bci:4 String::startsWith @ bci:6 String::startsWith @ bci:3 Hello::foo @ bci:9 426 Proj === 425 [[ 429 ]] #0 !jvms: Arrays::copyOfRange @ bci:58 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 479 Phi === 469 292 359 [[ 1052 ]] #java/lang/Throwable:NotNull * Oop:java/lang/Throwable:NotNull * !jvms: StringLatin1::newString @ bci:-1 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 9 Parm === 3 [[ 1052 1051 975 240 1042 39 189 323 878 817 737 70 ]] ReturnAdr !jvms: Hello::foo @ bci:-1 1049 MergeMem === _ 1 7 472 473 1 474 475 476 477 478 [[ 1052 ]] { N472:rawptr:BotPTR N473:java/lang/String:exact+20 * [narrow] - N474:java/lang/String:exact+16 * N475:java/lang/Object * N476:java/lang/Object+8 * [narrowklass] N477:java/lang/String:exact+12 * N478:java/lang/String:exact+17 * } Memory: @BotPTR *+bot, idx=Bot; 470 Phi === 469 294 361 [[ 1052 ]] #abIO !jvms: StringLatin1::newString @ bci:-1 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 469 Region === 469 289 356 [[ 1052 470 469 472 473 474 475 476 477 478 479 ]] !jvms: StringLatin1::newString @ bci:-1 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 324 Proj === 323 [[ 327 ]] #0 !jvms: Arrays::copyOfRange @ bci:5 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 241 Proj === 240 [[ 244 ]] #0 !jvms: String::isLatin1 @ bci:10 String::substring @ bci:28 String::substring @ bci:6 Hello::foo @ bci:2 190 Proj === 189 [[ 193 ]] #0 !jvms: String::checkBoundsBeginEnd @ bci:6 String::substring @ bci:8 String::substring @ bci:6 Hello::foo @ bci:2 71 Proj === 70 [[ 74 ]] #0 !jvms: String::length @ bci:4 String::substring @ bci:3 Hello::foo @ bci:2 8 Parm === 3 [[ 1052 1051 1046 1263 975 43 39 979 244 323 189 429 74 70 327 1304 425 193 878 882 817 821 737 741 240 1042 ]] FramePtr !jvms: Hello::foo @ bci:-1 40 Proj === 39 [[ 43 ]] #0 !jvms: Hello::foo @ bci:2 979 Halt === 976 1 1 8 1 [[ 0 ]] !jvms: String::startsWith @ bci:80 String::startsWith @ bci:3 Hello::foo @ bci:9 1046 Halt === 1043 1 1 8 1 [[ 0 ]] !jvms: Hello::foo @ bci:12 1051 Return === 1021 1126 1124 8 9 returns 1047 [[ 0 ]] 882 Halt === 879 1 1 8 1 [[ 0 ]] !jvms: String::startsWith @ bci:50 String::startsWith @ bci:3 Hello::foo @ bci:9 821 Halt === 818 1 1 8 1 [[ 0 ]] !jvms: String::startsWith @ bci:14 String::startsWith @ bci:3 Hello::foo @ bci:9 741 Halt === 738 1 1 8 1 [[ 0 ]] !jvms: String::length @ bci:4 String::startsWith @ bci:6 String::startsWith @ bci:3 Hello::foo @ bci:9 429 Halt === 426 1 1 8 1 [[ 0 ]] !jvms: Arrays::copyOfRange @ bci:58 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 1052 Rethrow === 469 470 1049 8 9 exception 479 [[ 0 ]] 327 Halt === 324 1 1 8 1 [[ 0 ]] !jvms: Arrays::copyOfRange @ bci:5 StringLatin1::newString @ bci:16 String::substring @ bci:41 String::substring @ bci:6 Hello::foo @ bci:2 244 Halt === 241 1 1 8 1 [[ 0 ]] !jvms: String::isLatin1 @ bci:10 String::substring @ bci:28 String::substring @ bci:6 Hello::foo @ bci:2 193 Halt === 190 1 1 8 1 [[ 0 ]] !jvms: String::checkBoundsBeginEnd @ bci:6 String::substring @ bci:8 String::substring @ bci:6 Hello::foo @ bci:2 74 Halt === 71 1 1 8 1 [[ 0 ]] !jvms: String::length @ bci:4 String::substring @ bci:3 Hello::foo @ bci:2 43 Halt === 40 1 1 8 1 [[ 0 ]] !jvms: Hello::foo @ bci:2 0 Root === 0 43 74 193 244 327 1052 429 741 821 882 1051 1046 979 [[ 0 1 3 22 30 38 58 59 76 1014 97 101 188 210 279 280 281 328 329 1010 334 344 974 932 424 1047 919 906 779 685 518 519 520 522 524 585 575 576 578 583 1058 1071 1079 1080 1102 1106 1136 1149 1207 1210 1216 1217 1218 1257 1232 1234 1244 1247 1252 1274 1311 1312 1315 1316 1318 1320 1321 1322 1323 1325 1326 ]] inner yes