529 lines · plain
1#RUN: llc -o - %s -mtriple=s390x-ibm-linux -run-pass=greedy2#RUN: llc -o - %s -mtriple=s390x-ibm-linux -passes=greedy3#PR34502. Check HoistSpill works properly after the live range of spilled4#virtual register is cleared.5--- |6 ; ModuleID = 'hoistspills_crash.ll'7 source_filename = "bugpoint-output-07170c2.bc"8 target datalayout = "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-v128:64-a:8:16-n32:64"9 target triple = "s390x-ibm-linux"10 11 @best8x8mode = external local_unnamed_addr global [4 x i16], align 212 @best8x8fwref = external local_unnamed_addr global [15 x [4 x i16]], align 213 @rec_mbY8x8 = external local_unnamed_addr global [16 x [16 x i16]], align 214 @bi_pred_me = external local_unnamed_addr global i32, align 415 16 declare signext i32 @Get_Direct_Cost8x8(i32 signext, ptr) local_unnamed_addr #017 declare void @store_coding_state(ptr) local_unnamed_addr #018 declare void @reset_coding_state(ptr) local_unnamed_addr #019 declare void @SetRefAndMotionVectors(i32 signext, i32 signext, i32 signext, i32 signext, i32 signext) local_unnamed_addr #220 declare signext i32 @Get_Direct_CostMB(double) local_unnamed_addr #021 declare void @SetModesAndRefframeForBlocks(i32 signext) local_unnamed_addr #122 23 define void @encode_one_macroblock() { ret void }24---25name: encode_one_macroblock26alignment: 427tracksRegLiveness: true28registers:29 - { id: 0, class: addr64bit }30 - { id: 1, class: addr64bit }31 - { id: 2, class: grx32bit }32 - { id: 3, class: grx32bit }33 - { id: 4, class: gr32bit }34 - { id: 5, class: gr32bit }35 - { id: 6, class: addr64bit }36 - { id: 7, class: addr64bit }37 - { id: 8, class: gr64bit }38 - { id: 9, class: grx32bit }39 - { id: 10, class: gr32bit }40 - { id: 11, class: grx32bit }41 - { id: 12, class: gr32bit }42 - { id: 13, class: grx32bit }43 - { id: 14, class: gr32bit }44 - { id: 15, class: grx32bit }45 - { id: 16, class: grx32bit }46 - { id: 17, class: gr32bit }47 - { id: 18, class: gr32bit }48 - { id: 19, class: gr64bit }49 - { id: 20, class: grx32bit }50 - { id: 21, class: grx32bit }51 - { id: 22, class: addr64bit }52 - { id: 23, class: grx32bit }53 - { id: 24, class: grx32bit }54 - { id: 25, class: grx32bit }55 - { id: 26, class: grx32bit }56 - { id: 27, class: grx32bit }57 - { id: 28, class: grx32bit }58 - { id: 29, class: grx32bit }59 - { id: 30, class: grx32bit }60 - { id: 31, class: grx32bit }61 - { id: 32, class: grx32bit }62 - { id: 33, class: grx32bit }63 - { id: 34, class: grx32bit }64 - { id: 35, class: grx32bit }65 - { id: 36, class: grx32bit }66 - { id: 37, class: gr64bit }67 - { id: 38, class: gr32bit }68 - { id: 39, class: grx32bit }69 - { id: 40, class: addr64bit }70 - { id: 41, class: addr64bit }71 - { id: 42, class: gr64bit }72 - { id: 43, class: gr32bit }73 - { id: 44, class: gr32bit }74 - { id: 45, class: gr32bit }75 - { id: 46, class: gr32bit }76 - { id: 47, class: gr32bit }77 - { id: 48, class: grx32bit }78 - { id: 49, class: gr64bit }79 - { id: 50, class: gr64bit }80 - { id: 51, class: gr64bit }81 - { id: 52, class: gr32bit }82 - { id: 53, class: gr32bit }83 - { id: 54, class: grx32bit }84 - { id: 55, class: gr32bit }85 - { id: 56, class: grx32bit }86 - { id: 57, class: grx32bit }87 - { id: 58, class: gr64bit }88 - { id: 59, class: gr64bit }89 - { id: 60, class: gr32bit }90 - { id: 61, class: grx32bit }91 - { id: 62, class: addr64bit }92 - { id: 63, class: addr64bit }93 - { id: 64, class: addr64bit }94 - { id: 65, class: addr64bit }95 - { id: 66, class: addr64bit }96 - { id: 67, class: addr64bit }97 - { id: 68, class: addr64bit }98 - { id: 69, class: addr64bit }99 - { id: 70, class: addr64bit }100 - { id: 71, class: gr64bit }101 - { id: 72, class: addr64bit }102 - { id: 73, class: grx32bit }103 - { id: 74, class: gr64bit }104 - { id: 75, class: addr64bit }105 - { id: 76, class: addr64bit }106 - { id: 77, class: addr64bit }107 - { id: 78, class: addr64bit }108 - { id: 79, class: gr32bit }109 - { id: 80, class: grx32bit }110 - { id: 81, class: gr64bit }111 - { id: 82, class: addr64bit }112 - { id: 83, class: grx32bit }113 - { id: 84, class: addr64bit }114 - { id: 85, class: addr64bit }115 - { id: 86, class: addr64bit }116 - { id: 87, class: grx32bit }117 - { id: 88, class: addr64bit }118 - { id: 89, class: addr64bit }119 - { id: 90, class: gr64bit }120 - { id: 91, class: addr64bit }121 - { id: 92, class: addr64bit }122 - { id: 93, class: addr64bit }123 - { id: 94, class: addr64bit }124 - { id: 95, class: addr64bit }125 - { id: 96, class: addr64bit }126 - { id: 97, class: addr64bit }127 - { id: 98, class: gr64bit }128 - { id: 99, class: gr64bit }129 - { id: 100, class: addr64bit }130 - { id: 101, class: gr64bit }131 - { id: 102, class: gr64bit }132 - { id: 103, class: gr64bit }133 - { id: 104, class: gr64bit }134 - { id: 105, class: addr64bit }135 - { id: 106, class: grx32bit }136 - { id: 107, class: grx32bit }137 - { id: 108, class: vr64bit }138 - { id: 109, class: gr64bit }139 - { id: 110, class: gr64bit }140 - { id: 111, class: grx32bit }141 - { id: 112, class: grx32bit }142 - { id: 113, class: fp64bit }143 - { id: 114, class: grx32bit }144 - { id: 115, class: fp64bit }145 - { id: 116, class: fp64bit }146 - { id: 117, class: addr64bit }147 - { id: 118, class: grx32bit }148 - { id: 119, class: grx32bit }149 - { id: 120, class: addr64bit }150 - { id: 121, class: grx32bit }151 - { id: 122, class: grx32bit }152 - { id: 123, class: gr32bit }153 - { id: 124, class: gr32bit }154 - { id: 125, class: gr32bit }155 - { id: 126, class: gr32bit }156 - { id: 127, class: gr32bit }157 - { id: 128, class: grx32bit }158 - { id: 129, class: grx32bit }159 - { id: 130, class: fp64bit }160frameInfo:161 adjustsStack: true162 hasCalls: true163body: |164 bb.0:165 successors: %bb.2(0x00000001), %bb.1(0x7fffffff)166 167 CHIMux undef %20, 3, implicit-def $cc168 BRC 14, 8, %bb.2, implicit killed $cc169 J %bb.1170 171 bb.1:172 successors: %bb.2(0x00000001), %bb.3(0x7fffffff)173 174 CHIMux undef %21, 0, implicit-def $cc175 BRC 14, 6, %bb.3, implicit killed $cc176 J %bb.2177 178 bb.2:179 180 bb.3:181 successors: %bb.6(0x00000001), %bb.4(0x7fffffff)182 183 CHIMux undef %23, 2, implicit-def $cc184 BRC 14, 8, %bb.6, implicit killed $cc185 J %bb.4186 187 bb.4:188 successors: %bb.5(0x00000001), %bb.7(0x7fffffff)189 190 CHIMux undef %24, 1, implicit-def $cc191 BRC 14, 6, %bb.7, implicit killed $cc192 J %bb.5193 194 bb.5:195 196 bb.6:197 198 bb.7:199 successors: %bb.47(0x00000001), %bb.8(0x7fffffff)200 201 CHIMux undef %25, 1, implicit-def $cc202 BRC 14, 8, %bb.47, implicit killed $cc203 J %bb.8204 205 bb.8:206 successors: %bb.46(0x00000001), %bb.48(0x7fffffff)207 208 CHIMux undef %26, 2, implicit-def $cc209 BRC 14, 8, %bb.46, implicit killed $cc210 J %bb.48211 212 bb.9:213 successors: %bb.36(0x00000001), %bb.10(0x7fffffff)214 215 CHIMux undef %31, 1, implicit-def $cc216 BRC 14, 8, %bb.36, implicit killed $cc217 J %bb.10218 219 bb.10:220 successors: %bb.35(0x00000001), %bb.37(0x7fffffff)221 222 CHIMux undef %32, 2, implicit-def $cc223 BRC 14, 8, %bb.35, implicit killed $cc224 J %bb.37225 226 bb.11:227 %4 = COPY %60228 %6 = SLLG %120, $noreg, 1229 %7 = LA %6, 64, %41230 %6 = AGR %6, %42, implicit-def dead $cc231 %45 = SRLK %120.subreg_l32, $noreg, 31232 %45 = AR %45, %120.subreg_l32, implicit-def dead $cc233 %45 = NIFMux %45, 536870910, implicit-def dead $cc234 %47 = SRK %120.subreg_l32, %45, implicit-def dead $cc235 %47 = SLL %47, $noreg, 3236 %81 = LGFR %47237 238 bb.12:239 successors: %bb.56, %bb.13240 241 CHIMux %38, 0, implicit-def $cc242 BRC 14, 8, %bb.13, implicit killed $cc243 244 bb.56:245 J %bb.16246 247 bb.13:248 successors: %bb.14(0x7fffffff), %bb.15(0x00000001)249 250 ADJCALLSTACKDOWN 0, 0251 %49 = LGFR %120.subreg_l32252 $r2d = COPY %49253 CallBRASL @Get_Direct_Cost8x8, killed $r2d, undef $r3d, csr_systemz_elf, implicit-def dead $r14d, implicit-def dead $cc, implicit-def $r2d254 ADJCALLSTACKUP 0, 0255 %51 = COPY killed $r2d256 MVHHI %7, 0, 0 :: (store (s16))257 %12 = ARK %51.subreg_l32, %125, implicit-def dead $cc258 CFIMux %51.subreg_l32, 2147483647, implicit-def $cc259 %12 = LOCRMux %12, %126, 14, 8, implicit killed $cc260 CFIMux %125, 2147483647, implicit-def $cc261 %12 = LOCRMux %12, %126, 14, 8, implicit killed $cc262 CHIMux undef %56, 0, implicit-def $cc263 BRC 14, 6, %bb.15, implicit killed $cc264 J %bb.14265 266 bb.14:267 %124 = AHIMux %124, 1, implicit-def dead $cc268 ADJCALLSTACKDOWN 0, 0269 CallBRASL @store_coding_state, undef $r2d, csr_systemz_elf, implicit-def dead $r14d, implicit-def dead $cc270 ADJCALLSTACKUP 0, 0271 %125 = COPY %12272 J %bb.16273 274 bb.15:275 276 bb.16:277 successors: %bb.12(0x7c000000), %bb.17(0x04000000)278 279 CLGFI undef %59, 4, implicit-def $cc280 BRC 14, 4, %bb.12, implicit killed $cc281 J %bb.17282 283 bb.17:284 successors: %bb.18, %bb.19285 286 MVHI %0, 332, 2 :: (store (s32))287 %60 = COPY %126288 %60 = AR %60, %4, implicit-def dead $cc289 %18 = LHMux %6, 0, $noreg :: (load (s16))290 CHIMux %38, 0, implicit-def $cc291 BRC 14, 6, %bb.19, implicit killed $cc292 J %bb.18293 294 bb.18:295 %62 = SLLG %81, $noreg, 1296 %64 = LA %62, 0, %63297 %65 = LG undef %66, 0, $noreg :: (load (s64))298 %67 = LGF undef %68, 0, $noreg :: (load (s32))299 MVC undef %69, 0, 2, %64, 0 :: (store (s16)), (load (s16))300 %70 = COPY %81301 %70 = OILL64 %70, 3, implicit-def dead $cc302 %71 = LA %70, 2, $noreg303 %72 = SLLG %71, $noreg, 1304 %73 = LHMux %72, 0, %63 :: (load (s16))305 %74 = LA %70, 2, %67306 %75 = SLLG %74, $noreg, 1307 %76 = LG %65, 0, $noreg :: (load (s64))308 STHMux %73, %76, 0, %75 :: (store (s16))309 %77 = LG undef %78, 0, $noreg :: (load (s64))310 %79 = LHRL @rec_mbY8x8 :: (load (s16))311 STHMux %79, %77, 0, $noreg :: (store (s16))312 %80 = LHMux %72, 0, %63 :: (load (s16))313 STHMux %80, %77, 0, %75 :: (store (s16))314 %81 = OILL64 %81, 7, implicit-def dead $cc315 %82 = SLLG %81, $noreg, 1316 %83 = LHMux %82, 0, %63 :: (load (s16))317 STHMux %83, %77, 0, $noreg :: (store (s16))318 %84 = LA %62, 64, %63319 MVC undef %85, 0, 2, %84, 0 :: (store (s16)), (load (s16))320 %86 = SLLG %70, $noreg, 1321 %87 = LHMux %86, 64, %63 :: (load (s16))322 %88 = SLLG %67, $noreg, 3323 %89 = LG %65, 16, %88 :: (load (s64))324 %90 = LA %70, 0, %67325 %91 = SLLG %90, $noreg, 1326 STHMux %87, %89, 0, %91 :: (store (s16))327 %92 = LA %72, 64, %63328 MVC undef %93, 0, 2, %92, 0 :: (store (s16)), (load (s16))329 %94 = LA %86, 6, %63330 MVC undef %95, 0, 2, %94, 0 :: (store (s16)), (load (s16))331 %96 = LA %82, 0, %63332 MVC undef %97, 0, 2, %96, 0 :: (store (s16)), (load (s16))333 334 bb.19:335 successors: %bb.20(0x04000000), %bb.11(0x7c000000)336 337 %98 = LGH %7, 0, $noreg :: (load (s16))338 %99 = LGH undef %100, 0, $noreg :: (load (s16))339 ADJCALLSTACKDOWN 0, 0340 %101 = LGFR %120.subreg_l32341 %102 = LGFR %18342 $r2d = COPY %101343 $r3d = COPY %102344 $r4d = LGHI 0345 $r5d = COPY %98346 $r6d = COPY %99347 CallBRASL @SetRefAndMotionVectors, killed $r2d, killed $r3d, killed $r4d, killed $r5d, killed $r6d, csr_systemz_elf, implicit-def dead $r14d, implicit-def dead $cc348 ADJCALLSTACKUP 0, 0349 ADJCALLSTACKDOWN 0, 0350 CallBRASL @reset_coding_state, undef $r2d, csr_systemz_elf, implicit-def dead $r14d, implicit-def dead $cc351 ADJCALLSTACKUP 0, 0352 %120 = LA %120, 1, $noreg353 CGHI %120, 4, implicit-def $cc354 BRC 14, 6, %bb.11, implicit killed $cc355 J %bb.20356 357 bb.20:358 successors: %bb.22(0x00000001), %bb.21(0x7fffffff)359 360 MVHI undef %105, 0, 0 :: (store (s32))361 CHIMux undef %106, 3, implicit-def $cc362 BRC 14, 8, %bb.22, implicit killed $cc363 J %bb.21364 365 bb.21:366 successors: %bb.22(0x00000001), %bb.23(0x7fffffff)367 368 CHIMux undef %107, 0, implicit-def $cc369 BRC 14, 6, %bb.23, implicit killed $cc370 J %bb.22371 372 bb.22:373 374 bb.23:375 successors: %bb.26(0x00000001), %bb.24(0x7fffffff)376 377 ADJCALLSTACKDOWN 0, 0378 CallBRASL @Get_Direct_CostMB, undef $f0d, csr_systemz_elf, implicit-def dead $r14d, implicit-def dead $cc, implicit-def dead $r2d379 ADJCALLSTACKUP 0, 0380 ADJCALLSTACKDOWN 0, 0381 $r2d = LGHI 0382 CallBRASL @SetModesAndRefframeForBlocks, killed $r2d, csr_systemz_elf, implicit-def dead $r14d, implicit-def dead $cc383 ADJCALLSTACKUP 0, 0384 CHIMux undef %111, 13, implicit-def $cc385 BRC 14, 8, %bb.26, implicit killed $cc386 J %bb.24387 388 bb.24:389 successors: %bb.25(0x00000001), %bb.27(0x7fffffff)390 391 CHIMux undef %112, 8, implicit-def $cc392 BRC 14, 6, %bb.27, implicit killed $cc393 J %bb.25394 395 bb.25:396 397 bb.26:398 399 bb.27:400 successors: %bb.28, %bb.29401 402 CHIMux undef %114, 0, implicit-def $cc403 BRC 14, 6, %bb.29, implicit killed $cc404 405 bb.28:406 %130 = CDFBR %60, implicit $fpc407 J %bb.30408 409 bb.29:410 %130 = IMPLICIT_DEF411 412 bb.30:413 successors: %bb.33(0x00000001), %bb.31(0x7fffffff)414 415 VST64 %130, undef %117, 0, $noreg :: (store (s64))416 CHIMux undef %118, 2, implicit-def $cc417 BRC 14, 8, %bb.33, implicit killed $cc418 J %bb.31419 420 bb.31:421 successors: %bb.32(0x00000001), %bb.34(0x7fffffff)422 423 CHIMux undef %119, 1, implicit-def $cc424 BRC 14, 6, %bb.34, implicit killed $cc425 J %bb.32426 427 bb.32:428 429 bb.33:430 431 bb.34:432 Return433 434 bb.35:435 436 bb.36:437 438 bb.37:439 successors: %bb.40(0x00000001), %bb.38(0x7fffffff)440 441 CHIMux undef %33, 1, implicit-def $cc442 BRC 14, 8, %bb.40, implicit killed $cc443 J %bb.38444 445 bb.38:446 successors: %bb.39(0x00000001), %bb.41(0x7fffffff)447 448 CHIMux undef %34, 2, implicit-def $cc449 BRC 14, 6, %bb.41, implicit killed $cc450 J %bb.39451 452 bb.39:453 454 bb.40:455 456 bb.41:457 successors: %bb.44(0x00000001), %bb.42(0x7fffffff)458 459 CHIMux undef %35, 1, implicit-def $cc460 BRC 14, 8, %bb.44, implicit killed $cc461 J %bb.42462 463 bb.42:464 successors: %bb.43(0x00000001), %bb.45(0x7fffffff)465 466 CHIMux undef %36, 2, implicit-def $cc467 BRC 14, 6, %bb.45, implicit killed $cc468 J %bb.43469 470 bb.43:471 472 bb.44:473 474 bb.45:475 %0 = LG undef %22, 0, $noreg :: (load (s64))476 %38 = LHIMux 0477 STRL %38, @bi_pred_me :: (store (s32))478 %120 = LGHI 0479 %41 = LARL @best8x8fwref480 %42 = LARL @best8x8mode481 %63 = LARL @rec_mbY8x8482 %126 = IIFMux 2147483647483 %124 = LHIMux 0484 %125 = LHIMux 0485 %60 = LHIMux 0486 J %bb.11487 488 bb.46:489 490 bb.47:491 492 bb.48:493 successors: %bb.51(0x00000001), %bb.49(0x7fffffff)494 495 CHIMux undef %27, 1, implicit-def $cc496 BRC 14, 8, %bb.51, implicit killed $cc497 J %bb.49498 499 bb.49:500 successors: %bb.50(0x00000001), %bb.52(0x7fffffff)501 502 CHIMux undef %28, 2, implicit-def $cc503 BRC 14, 6, %bb.52, implicit killed $cc504 J %bb.50505 506 bb.50:507 508 bb.51:509 510 bb.52:511 successors: %bb.55(0x00000001), %bb.53(0x7fffffff)512 513 CHIMux undef %29, 1, implicit-def $cc514 BRC 14, 8, %bb.55, implicit killed $cc515 J %bb.53516 517 bb.53:518 successors: %bb.54(0x00000001), %bb.9(0x7fffffff)519 520 CHIMux undef %30, 2, implicit-def $cc521 BRC 14, 6, %bb.9, implicit killed $cc522 J %bb.54523 524 bb.54:525 526 bb.55:527 528...529