Index: llvm/lib/Target/ARM/ARMConstantIslandPass.cpp =================================================================== --- llvm/lib/Target/ARM/ARMConstantIslandPass.cpp +++ llvm/lib/Target/ARM/ARMConstantIslandPass.cpp @@ -2278,9 +2278,12 @@ // %t = tLDRr %base, %idx Register BaseReg = User.MI->getOperand(0).getReg(); - if (User.MI->getIterator() == User.MI->getParent()->begin()) + MachineBasicBlock *UserMBB = User.MI->getParent(); + MachineBasicBlock::iterator Shift = User.MI->getIterator(); + if (Shift == UserMBB->begin()) continue; - MachineInstr *Shift = User.MI->getPrevNode(); + + Shift = prev_nodbg(Shift, UserMBB->begin()); if (Shift->getOpcode() != ARM::tLSLri || Shift->getOperand(3).getImm() != 2 || !Shift->getOperand(2).isKill()) Index: llvm/test/CodeGen/ARM/jump-table-dbg-value.mir =================================================================== --- /dev/null +++ llvm/test/CodeGen/ARM/jump-table-dbg-value.mir @@ -0,0 +1,1064 @@ +# RUN: llc -run-pass=arm-cp-islands %s -o - | FileCheck %s +--- | + ; ModuleID = '/Users/tim/simpler.ll' + source_filename = "src/app/ofw/thresholding.c" + target datalayout = "e-m:o-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" + target triple = "thumbv6m-apple-unknown-macho" + + ; Function Attrs: minsize nounwind optsize + define hidden arm_aapcscc void @handle_notify_event(i8 noundef zeroext %0) unnamed_addr #0 !dbg !317 { + call void @llvm.dbg.value(metadata i8 %0, metadata !322, metadata !DIExpression()), !dbg !323 + %2 = zext i8 %0 to i32, !dbg !324 + switch i32 %2, label %34 [ + i32 0, label %35 + i32 1, label %3 + i32 3, label %4 + i32 4, label %5 + i32 5, label %6 + i32 6, label %7 + i32 7, label %8 + i32 19, label %9 + i32 20, label %10 + i32 21, label %11 + i32 22, label %12 + i32 23, label %13 + i32 68, label %14 + i32 69, label %15 + i32 70, label %16 + i32 71, label %17 + i32 73, label %18 + i32 74, label %19 + i32 75, label %20 + i32 76, label %21 + i32 77, label %22 + i32 78, label %23 + i32 79, label %24 + i32 80, label %25 + i32 81, label %26 + i32 82, label %27 + i32 83, label %28 + i32 84, label %29 + i32 85, label %30 + i32 86, label %31 + i32 87, label %32 + i32 88, label %33 + ], !dbg !324 + + 3: ; preds = %1 + tail call arm_aapcscc void @system_set_spmi_event_low(i8 noundef zeroext 0) #3, !dbg !325 + br label %35, !dbg !327 + + 4: ; preds = %1 + tail call arm_aapcscc void @system_assert_virtual_wire(i8 noundef zeroext 0) #3, !dbg !328 + br label %35, !dbg !329 + + 5: ; preds = %1 + tail call arm_aapcscc void @system_assert_virtual_wire(i8 noundef zeroext 1) #3, !dbg !330 + br label %35, !dbg !331 + + 6: ; preds = %1 + tail call arm_aapcscc void @system_assert_virtual_wire(i8 noundef zeroext 2) #3, !dbg !332 + br label %35, !dbg !333 + + 7: ; preds = %1 + tail call arm_aapcscc void @system_assert_virtual_wire(i8 noundef zeroext 3) #3, !dbg !334 + br label %35, !dbg !335 + + 8: ; preds = %1 + tail call arm_aapcscc void @system_assert_virtual_wire(i8 noundef zeroext 4) #3, !dbg !336 + br label %35, !dbg !337 + + 9: ; preds = %1 + tail call arm_aapcscc void @system_deassert_virtual_wire(i8 noundef zeroext 0) #3, !dbg !338 + br label %35, !dbg !339 + + 10: ; preds = %1 + tail call arm_aapcscc void @system_deassert_virtual_wire(i8 noundef zeroext 1) #3, !dbg !340 + br label %35, !dbg !341 + + 11: ; preds = %1 + tail call arm_aapcscc void @system_deassert_virtual_wire(i8 noundef zeroext 2) #3, !dbg !342 + br label %35, !dbg !343 + + 12: ; preds = %1 + tail call arm_aapcscc void @system_deassert_virtual_wire(i8 noundef zeroext 3) #3, !dbg !344 + br label %35, !dbg !345 + + 13: ; preds = %1 + tail call arm_aapcscc void @system_deassert_virtual_wire(i8 noundef zeroext 4) #3, !dbg !346 + br label %35, !dbg !347 + + 14: ; preds = %1 + tail call arm_aapcscc void @system_change_cpu_gpu_trigger_state(i32 noundef 0, i32 noundef 0) #3, !dbg !348 + br label %35, !dbg !349 + + 15: ; preds = %1 + tail call arm_aapcscc void @system_change_cpu_gpu_trigger_state(i32 noundef 1, i32 noundef 0) #3, !dbg !350 + br label %35, !dbg !351 + + 16: ; preds = %1 + tail call arm_aapcscc void @system_change_cpu_gpu_trigger_state(i32 noundef 2, i32 noundef 0) #3, !dbg !352 + br label %35, !dbg !353 + + 17: ; preds = %1 + tail call arm_aapcscc void @system_change_cpu_gpu_trigger_state(i32 noundef 3, i32 noundef 0) #3, !dbg !354 + br label %35, !dbg !355 + + 18: ; preds = %1 + tail call arm_aapcscc void @system_change_cpu_gpu_trigger_state(i32 noundef 0, i32 noundef 1) #3, !dbg !356 + br label %35, !dbg !357 + + 19: ; preds = %1 + tail call arm_aapcscc void @system_change_cpu_gpu_trigger_state(i32 noundef 1, i32 noundef 1) #3, !dbg !358 + br label %35, !dbg !359 + + 20: ; preds = %1 + tail call arm_aapcscc void @system_change_cpu_gpu_trigger_state(i32 noundef 2, i32 noundef 1) #3, !dbg !360 + br label %35, !dbg !361 + + 21: ; preds = %1 + tail call arm_aapcscc void @system_change_cpu_gpu_trigger_state(i32 noundef 3, i32 noundef 1) #3, !dbg !362 + br label %35, !dbg !363 + + 22: ; preds = %1 + tail call arm_aapcscc void @system_change_gpio_trigger_state(i32 noundef 21, i32 noundef 0) #3, !dbg !364 + br label %35, !dbg !365 + + 23: ; preds = %1 + tail call arm_aapcscc void @system_change_gpio_trigger_state(i32 noundef 22, i32 noundef 0) #3, !dbg !366 + br label %35, !dbg !367 + + 24: ; preds = %1 + tail call arm_aapcscc void @system_change_gpio_trigger_state(i32 noundef 21, i32 noundef 1) #3, !dbg !368 + br label %35, !dbg !369 + + 25: ; preds = %1 + tail call arm_aapcscc void @system_change_gpio_trigger_state(i32 noundef 22, i32 noundef 1) #3, !dbg !370 + br label %35, !dbg !371 + + 26: ; preds = %1 + tail call arm_aapcscc void @system_change_throttle_trigger_state(i32 noundef 0, i32 noundef 0) #3, !dbg !372 + br label %35, !dbg !373 + + 27: ; preds = %1 + tail call arm_aapcscc void @system_change_throttle_trigger_state(i32 noundef 1, i32 noundef 0) #3, !dbg !374 + br label %35, !dbg !375 + + 28: ; preds = %1 + tail call arm_aapcscc void @system_change_throttle_trigger_state(i32 noundef 2, i32 noundef 0) #3, !dbg !376 + br label %35, !dbg !377 + + 29: ; preds = %1 + tail call arm_aapcscc void @system_change_throttle_trigger_state(i32 noundef 3, i32 noundef 0) #3, !dbg !378 + br label %35, !dbg !379 + + 30: ; preds = %1 + tail call arm_aapcscc void @system_change_throttle_trigger_state(i32 noundef 0, i32 noundef 1) #3, !dbg !380 + br label %35, !dbg !381 + + 31: ; preds = %1 + tail call arm_aapcscc void @system_change_throttle_trigger_state(i32 noundef 1, i32 noundef 1) #3, !dbg !382 + br label %35, !dbg !383 + + 32: ; preds = %1 + tail call arm_aapcscc void @system_change_throttle_trigger_state(i32 noundef 2, i32 noundef 1) #3, !dbg !384 + br label %35, !dbg !385 + + 33: ; preds = %1 + tail call arm_aapcscc void @system_change_throttle_trigger_state(i32 noundef 3, i32 noundef 1) #3, !dbg !386 + br label %35, !dbg !387 + + 34: ; preds = %1 + tail call arm_aapcscc void @assert_handler(i16 noundef zeroext 11) #3, !dbg !388 + br label %35, !dbg !392 + + 35: ; preds = %34, %33, %32, %31, %30, %29, %28, %27, %26, %25, %24, %23, %22, %21, %20, %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5, %4, %3, %1 + ret void, !dbg !393 + } + + ; Function Attrs: minsize optsize + declare !dbg !394 arm_aapcscc void @system_set_spmi_event_low(i8 noundef zeroext) local_unnamed_addr #1 + + ; Function Attrs: minsize optsize + declare !dbg !398 arm_aapcscc void @system_assert_virtual_wire(i8 noundef zeroext) local_unnamed_addr #1 + + ; Function Attrs: minsize optsize + declare !dbg !399 arm_aapcscc void @system_deassert_virtual_wire(i8 noundef zeroext) local_unnamed_addr #1 + + ; Function Attrs: minsize optsize + declare !dbg !400 arm_aapcscc void @system_change_cpu_gpu_trigger_state(i32 noundef, i32 noundef) local_unnamed_addr #1 + + ; Function Attrs: minsize optsize + declare !dbg !405 arm_aapcscc void @system_change_gpio_trigger_state(i32 noundef, i32 noundef) local_unnamed_addr #1 + + ; Function Attrs: minsize optsize + declare !dbg !409 arm_aapcscc void @system_change_throttle_trigger_state(i32 noundef, i32 noundef) local_unnamed_addr #1 + + ; Function Attrs: minsize optsize + declare !dbg !413 arm_aapcscc void @assert_handler(i16 noundef zeroext) local_unnamed_addr #1 + + ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) + declare void @llvm.dbg.value(metadata, metadata, metadata) #2 + + attributes #0 = { minsize nounwind optsize "frame-pointer"="all" "min-legal-vector-width"="0" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="cortex-m0" "target-features"="+armv6-m,+soft-float,+strict-align,+thumb-mode,-aes,-bf16,-cdecp0,-cdecp1,-cdecp2,-cdecp3,-cdecp4,-cdecp5,-cdecp6,-cdecp7,-crc,-crypto,-d32,-dotprod,-dsp,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fp64,-fpregs,-fullfp16,-hwdiv,-hwdiv-arm,-i8mm,-lob,-mve,-mve.fp,-neon,-pacbti,-ras,-sb,-sha2,-vfp2,-vfp2sp,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" "use-soft-float"="true" } + attributes #1 = { minsize optsize "frame-pointer"="all" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="cortex-m0" "target-features"="+armv6-m,+soft-float,+strict-align,+thumb-mode,-aes,-bf16,-cdecp0,-cdecp1,-cdecp2,-cdecp3,-cdecp4,-cdecp5,-cdecp6,-cdecp7,-crc,-crypto,-d32,-dotprod,-dsp,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fp64,-fpregs,-fullfp16,-hwdiv,-hwdiv-arm,-i8mm,-lob,-mve,-mve.fp,-neon,-pacbti,-ras,-sb,-sha2,-vfp2,-vfp2sp,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" "use-soft-float"="true" } + attributes #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } + attributes #3 = { minsize nobuiltin nounwind optsize "no-builtins" } + + !llvm.dbg.cu = !{!0} + !llvm.module.flags = !{!307, !308, !309, !310, !311, !312, !313, !314, !315} + !llvm.ident = !{!316} + + !0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "Apple clang version 14.0.3 (clang-1403.0.22.8)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !299, globals: !306, splitDebugInlining: false, nameTableKind: None, sysroot: "thing", sdk: "thing") + !1 = !DIFile(filename: "thing", directory: "thing") + !2 = !{!3, !39, !130, !134, !148, !160, !177, !184, !188, !192, !198} + !3 = !DICompositeType(tag: DW_TAG_enumeration_type, file: !4, line: 272, baseType: !5, size: 8, elements: !6) + !4 = !DIFile(filename: "thing", directory: "thing") + !5 = !DIBasicType(name: "thing", size: 8, encoding: DW_ATE_unsigned_char) + !6 = !{!7, !8, !9, !10, !11, !12, !13, !14, !15, !16, !17, !18, !19, !20, !21, !22, !23, !24, !25, !26, !27, !28, !29, !30, !31, !32, !33, !34, !35, !36, !37, !38} + !7 = !DIEnumerator(name: "thing", value: 0) + !8 = !DIEnumerator(name: "thing", value: 1) + !9 = !DIEnumerator(name: "thing", value: 2) + !10 = !DIEnumerator(name: "thing", value: 3) + !11 = !DIEnumerator(name: "thing", value: 3) + !12 = !DIEnumerator(name: "thing", value: 4) + !13 = !DIEnumerator(name: "thing", value: 5) + !14 = !DIEnumerator(name: "thing", value: 6) + !15 = !DIEnumerator(name: "thing", value: 20) + !16 = !DIEnumerator(name: "thing", value: 21) + !17 = !DIEnumerator(name: "thing", value: 22) + !18 = !DIEnumerator(name: "thing", value: 23) + !19 = !DIEnumerator(name: "thing", value: 24) + !20 = !DIEnumerator(name: "thing", value: 100) + !21 = !DIEnumerator(name: "thing", value: 101) + !22 = !DIEnumerator(name: "thing", value: 102) + !23 = !DIEnumerator(name: "thing", value: 103) + !24 = !DIEnumerator(name: "thing", value: 104) + !25 = !DIEnumerator(name: "thing", value: 105) + !26 = !DIEnumerator(name: "thing", value: 106) + !27 = !DIEnumerator(name: "thing", value: 150) + !28 = !DIEnumerator(name: "thing", value: 151) + !29 = !DIEnumerator(name: "thing", value: 152) + !30 = !DIEnumerator(name: "thing", value: 153) + !31 = !DIEnumerator(name: "thing", value: 170) + !32 = !DIEnumerator(name: "thing", value: 171) + !33 = !DIEnumerator(name: "thing", value: 172) + !34 = !DIEnumerator(name: "thing", value: 173) + !35 = !DIEnumerator(name: "thing", value: 180) + !36 = !DIEnumerator(name: "thing", value: 181) + !37 = !DIEnumerator(name: "thing", value: 190) + !38 = !DIEnumerator(name: "thing", value: 191) + !39 = !DICompositeType(tag: DW_TAG_enumeration_type, file: !4, line: 423, baseType: !5, size: 8, elements: !40) + !40 = !{!41, !42, !43, !44, !45, !46, !47, !48, !49, !50, !51, !52, !53, !54, !55, !56, !57, !58, !59, !60, !61, !62, !63, !64, !65, !66, !67, !68, !69, !70, !71, !72, !73, !74, !75, !76, !77, !78, !79, !80, !81, !82, !83, !84, !85, !86, !87, !88, !89, !90, !91, !92, !93, !94, !95, !96, !97, !98, !99, !100, !101, !102, !103, !104, !105, !106, !107, !108, !109, !110, !111, !112, !113, !114, !115, !116, !117, !118, !119, !120, !121, !122, !123, !124, !125, !126, !127, !128, !129} + !41 = !DIEnumerator(name: "thing", value: 0) + !42 = !DIEnumerator(name: "thing", value: 1) + !43 = !DIEnumerator(name: "thing", value: 2) + !44 = !DIEnumerator(name: "thing", value: 3) + !45 = !DIEnumerator(name: "thing", value: 4) + !46 = !DIEnumerator(name: "thing", value: 5) + !47 = !DIEnumerator(name: "thing", value: 6) + !48 = !DIEnumerator(name: "thing", value: 7) + !49 = !DIEnumerator(name: "thing", value: 8) + !50 = !DIEnumerator(name: "thing", value: 9) + !51 = !DIEnumerator(name: "thing", value: 10) + !52 = !DIEnumerator(name: "thing", value: 11) + !53 = !DIEnumerator(name: "thing", value: 12) + !54 = !DIEnumerator(name: "thing", value: 13) + !55 = !DIEnumerator(name: "thing", value: 14) + !56 = !DIEnumerator(name: "thing", value: 15) + !57 = !DIEnumerator(name: "thing", value: 16) + !58 = !DIEnumerator(name: "thing", value: 17) + !59 = !DIEnumerator(name: "thing", value: 18) + !60 = !DIEnumerator(name: "thing", value: 19) + !61 = !DIEnumerator(name: "thing", value: 20) + !62 = !DIEnumerator(name: "thing", value: 21) + !63 = !DIEnumerator(name: "thing", value: 22) + !64 = !DIEnumerator(name: "thing", value: 23) + !65 = !DIEnumerator(name: "thing", value: 24) + !66 = !DIEnumerator(name: "thing", value: 25) + !67 = !DIEnumerator(name: "thing", value: 26) + !68 = !DIEnumerator(name: "thing", value: 27) + !69 = !DIEnumerator(name: "thing", value: 28) + !70 = !DIEnumerator(name: "thing", value: 29) + !71 = !DIEnumerator(name: "thing", value: 30) + !72 = !DIEnumerator(name: "thing", value: 31) + !73 = !DIEnumerator(name: "thing", value: 32) + !74 = !DIEnumerator(name: "thing", value: 33) + !75 = !DIEnumerator(name: "thing", value: 34) + !76 = !DIEnumerator(name: "thing", value: 35) + !77 = !DIEnumerator(name: "thing", value: 36) + !78 = !DIEnumerator(name: "thing", value: 37) + !79 = !DIEnumerator(name: "thing", value: 38) + !80 = !DIEnumerator(name: "thing", value: 39) + !81 = !DIEnumerator(name: "thing", value: 40) + !82 = !DIEnumerator(name: "thing", value: 41) + !83 = !DIEnumerator(name: "thing", value: 42) + !84 = !DIEnumerator(name: "thing", value: 43) + !85 = !DIEnumerator(name: "thing", value: 44) + !86 = !DIEnumerator(name: "thing", value: 45) + !87 = !DIEnumerator(name: "thing", value: 46) + !88 = !DIEnumerator(name: "thing", value: 47) + !89 = !DIEnumerator(name: "thing", value: 48) + !90 = !DIEnumerator(name: "thing", value: 49) + !91 = !DIEnumerator(name: "thing", value: 50) + !92 = !DIEnumerator(name: "thing", value: 51) + !93 = !DIEnumerator(name: "thing", value: 52) + !94 = !DIEnumerator(name: "thing", value: 53) + !95 = !DIEnumerator(name: "thing", value: 54) + !96 = !DIEnumerator(name: "thing", value: 55) + !97 = !DIEnumerator(name: "thing", value: 56) + !98 = !DIEnumerator(name: "thing", value: 57) + !99 = !DIEnumerator(name: "thing", value: 58) + !100 = !DIEnumerator(name: "thing", value: 59) + !101 = !DIEnumerator(name: "thing", value: 60) + !102 = !DIEnumerator(name: "thing", value: 61) + !103 = !DIEnumerator(name: "thing", value: 62) + !104 = !DIEnumerator(name: "thing", value: 63) + !105 = !DIEnumerator(name: "thing", value: 64) + !106 = !DIEnumerator(name: "thing", value: 65) + !107 = !DIEnumerator(name: "thing", value: 66) + !108 = !DIEnumerator(name: "thing", value: 67) + !109 = !DIEnumerator(name: "thing", value: 68) + !110 = !DIEnumerator(name: "thing", value: 69) + !111 = !DIEnumerator(name: "thing", value: 70) + !112 = !DIEnumerator(name: "thing", value: 71) + !113 = !DIEnumerator(name: "thing", value: 72) + !114 = !DIEnumerator(name: "thing", value: 73) + !115 = !DIEnumerator(name: "thing", value: 74) + !116 = !DIEnumerator(name: "thing", value: 75) + !117 = !DIEnumerator(name: "thing", value: 76) + !118 = !DIEnumerator(name: "thing", value: 77) + !119 = !DIEnumerator(name: "thing", value: 78) + !120 = !DIEnumerator(name: "thing", value: 79) + !121 = !DIEnumerator(name: "thing", value: 80) + !122 = !DIEnumerator(name: "thing", value: 81) + !123 = !DIEnumerator(name: "thing", value: 82) + !124 = !DIEnumerator(name: "thing", value: 83) + !125 = !DIEnumerator(name: "thing", value: 84) + !126 = !DIEnumerator(name: "thing", value: 85) + !127 = !DIEnumerator(name: "thing", value: 86) + !128 = !DIEnumerator(name: "thing", value: 87) + !129 = !DIEnumerator(name: "thing", value: 88) + !130 = !DICompositeType(tag: DW_TAG_enumeration_type, file: !4, line: 517, baseType: !5, size: 8, elements: !131) + !131 = !{!132, !133} + !132 = !DIEnumerator(name: "thing", value: 0) + !133 = !DIEnumerator(name: "thing", value: 1) + !134 = !DICompositeType(tag: DW_TAG_enumeration_type, file: !135, line: 23, baseType: !136, size: 32, elements: !137) + !135 = !DIFile(filename: "thing", directory: "thing") + !136 = !DIBasicType(name: "thing", size: 32, encoding: DW_ATE_unsigned) + !137 = !{!138, !139, !140, !141, !142, !143, !144, !145, !146, !147} + !138 = !DIEnumerator(name: "thing", value: 0) + !139 = !DIEnumerator(name: "thing", value: 1) + !140 = !DIEnumerator(name: "thing", value: 2) + !141 = !DIEnumerator(name: "thing", value: 3) + !142 = !DIEnumerator(name: "thing", value: 4) + !143 = !DIEnumerator(name: "thing", value: 5) + !144 = !DIEnumerator(name: "thing", value: 6) + !145 = !DIEnumerator(name: "thing", value: 7) + !146 = !DIEnumerator(name: "thing", value: 8) + !147 = !DIEnumerator(name: "thing", value: 9) + !148 = !DICompositeType(tag: DW_TAG_enumeration_type, file: !149, line: 4, baseType: !136, size: 32, elements: !150) + !149 = !DIFile(filename: "thing", directory: "thing") + !150 = !{!151, !152, !153, !154, !155, !156, !157, !158, !159} + !151 = !DIEnumerator(name: "thing", value: 0) + !152 = !DIEnumerator(name: "thing", value: 1) + !153 = !DIEnumerator(name: "thing", value: 2) + !154 = !DIEnumerator(name: "thing", value: 3) + !155 = !DIEnumerator(name: "thing", value: 4) + !156 = !DIEnumerator(name: "thing", value: 5) + !157 = !DIEnumerator(name: "thing", value: 6) + !158 = !DIEnumerator(name: "thing", value: 7) + !159 = !DIEnumerator(name: "thing", value: 8) + !160 = !DICompositeType(tag: DW_TAG_enumeration_type, file: !4, line: 1287, baseType: !5, size: 8, align: 8, elements: !161) + !161 = !{!162, !163, !164, !165, !166, !167, !168, !169, !170, !171, !172, !173, !174, !175, !176} + !162 = !DIEnumerator(name: "thing", value: 0) + !163 = !DIEnumerator(name: "thing", value: 1) + !164 = !DIEnumerator(name: "thing", value: 2) + !165 = !DIEnumerator(name: "thing", value: 3) + !166 = !DIEnumerator(name: "thing", value: 4) + !167 = !DIEnumerator(name: "thing", value: 5) + !168 = !DIEnumerator(name: "thing", value: 6) + !169 = !DIEnumerator(name: "thing", value: 7) + !170 = !DIEnumerator(name: "thing", value: 8) + !171 = !DIEnumerator(name: "thing", value: 9) + !172 = !DIEnumerator(name: "thing", value: 10) + !173 = !DIEnumerator(name: "thing", value: 11) + !174 = !DIEnumerator(name: "thing", value: 12) + !175 = !DIEnumerator(name: "thing", value: 13) + !176 = !DIEnumerator(name: "thing", value: 14) + !177 = !DICompositeType(tag: DW_TAG_enumeration_type, file: !178, line: 8, baseType: !136, size: 32, elements: !179) + !178 = !DIFile(filename: "thing", directory: "thing") + !179 = !{!180, !181, !182, !183} + !180 = !DIEnumerator(name: "thing", value: 0) + !181 = !DIEnumerator(name: "thing", value: 1) + !182 = !DIEnumerator(name: "thing", value: 2) + !183 = !DIEnumerator(name: "thing", value: 3) + !184 = !DICompositeType(tag: DW_TAG_enumeration_type, file: !178, line: 22, baseType: !136, size: 32, elements: !185) + !185 = !{!186, !187} + !186 = !DIEnumerator(name: "thing", value: 0) + !187 = !DIEnumerator(name: "thing", value: 1) + !188 = !DICompositeType(tag: DW_TAG_enumeration_type, file: !178, line: 27, baseType: !136, size: 32, elements: !189) + !189 = !{!190, !191} + !190 = !DIEnumerator(name: "thing", value: 21) + !191 = !DIEnumerator(name: "thing", value: 22) + !192 = !DICompositeType(tag: DW_TAG_enumeration_type, file: !178, line: 15, baseType: !136, size: 32, elements: !193) + !193 = !{!194, !195, !196, !197} + !194 = !DIEnumerator(name: "thing", value: 0) + !195 = !DIEnumerator(name: "thing", value: 1) + !196 = !DIEnumerator(name: "thing", value: 2) + !197 = !DIEnumerator(name: "thing", value: 3) + !198 = !DICompositeType(tag: DW_TAG_enumeration_type, file: !4, line: 895, baseType: !136, size: 32, elements: !199) + !199 = !{!200, !201, !202, !203, !204, !205, !206, !207, !208, !209, !210, !211, !212, !213, !214, !215, !216, !217, !218, !219, !220, !221, !222, !223, !224, !225, !226, !227, !228, !229, !230, !231, !232, !233, !234, !235, !236, !237, !238, !239, !240, !241, !242, !243, !244, !245, !246, !247, !248, !249, !250, !251, !252, !253, !254, !255, !256, !257, !258, !259, !260, !261, !262, !263, !264, !265, !266, !267, !268, !269, !270, !271, !272, !273, !274, !275, !276, !277, !278, !279, !280, !281, !282, !283, !284, !285, !286, !287, !288, !289, !290, !291, !292, !293, !294, !295, !296, !297, !298} + !200 = !DIEnumerator(name: "thing", value: 0) + !201 = !DIEnumerator(name: "thing", value: 1) + !202 = !DIEnumerator(name: "thing", value: 2) + !203 = !DIEnumerator(name: "thing", value: 3) + !204 = !DIEnumerator(name: "thing", value: 4) + !205 = !DIEnumerator(name: "thing", value: 5) + !206 = !DIEnumerator(name: "thing", value: 6) + !207 = !DIEnumerator(name: "thing", value: 7) + !208 = !DIEnumerator(name: "thing", value: 8) + !209 = !DIEnumerator(name: "thing", value: 9) + !210 = !DIEnumerator(name: "thing", value: 10) + !211 = !DIEnumerator(name: "thing", value: 11) + !212 = !DIEnumerator(name: "thing", value: 12) + !213 = !DIEnumerator(name: "thing", value: 13) + !214 = !DIEnumerator(name: "thing", value: 14) + !215 = !DIEnumerator(name: "thing", value: 15) + !216 = !DIEnumerator(name: "thing", value: 16) + !217 = !DIEnumerator(name: "thing", value: 17) + !218 = !DIEnumerator(name: "thing", value: 18) + !219 = !DIEnumerator(name: "thing", value: 19) + !220 = !DIEnumerator(name: "thing", value: 20) + !221 = !DIEnumerator(name: "thing", value: 21) + !222 = !DIEnumerator(name: "thing", value: 22) + !223 = !DIEnumerator(name: "thing", value: 23) + !224 = !DIEnumerator(name: "thing", value: 24) + !225 = !DIEnumerator(name: "thing", value: 25) + !226 = !DIEnumerator(name: "thing", value: 26) + !227 = !DIEnumerator(name: "thing", value: 27) + !228 = !DIEnumerator(name: "thing", value: 28) + !229 = !DIEnumerator(name: "thing", value: 29) + !230 = !DIEnumerator(name: "thing", value: 30) + !231 = !DIEnumerator(name: "thing", value: 31) + !232 = !DIEnumerator(name: "thing", value: 32) + !233 = !DIEnumerator(name: "thing", value: 33) + !234 = !DIEnumerator(name: "thing", value: 34) + !235 = !DIEnumerator(name: "thing", value: 35) + !236 = !DIEnumerator(name: "thing", value: 36) + !237 = !DIEnumerator(name: "thing", value: 37) + !238 = !DIEnumerator(name: "thing", value: 38) + !239 = !DIEnumerator(name: "thing", value: 39) + !240 = !DIEnumerator(name: "thing", value: 40) + !241 = !DIEnumerator(name: "thing", value: 41) + !242 = !DIEnumerator(name: "thing", value: 42) + !243 = !DIEnumerator(name: "thing", value: 43) + !244 = !DIEnumerator(name: "thing", value: 44) + !245 = !DIEnumerator(name: "thing", value: 45) + !246 = !DIEnumerator(name: "thing", value: 46) + !247 = !DIEnumerator(name: "thing", value: 47) + !248 = !DIEnumerator(name: "thing", value: 48) + !249 = !DIEnumerator(name: "thing", value: 49) + !250 = !DIEnumerator(name: "thing", value: 50) + !251 = !DIEnumerator(name: "thing", value: 51) + !252 = !DIEnumerator(name: "thing", value: 52) + !253 = !DIEnumerator(name: "thing", value: 53) + !254 = !DIEnumerator(name: "thing", value: 54) + !255 = !DIEnumerator(name: "thing", value: 55) + !256 = !DIEnumerator(name: "thing", value: 56) + !257 = !DIEnumerator(name: "thing", value: 57) + !258 = !DIEnumerator(name: "thing", value: 58) + !259 = !DIEnumerator(name: "thing", value: 59) + !260 = !DIEnumerator(name: "thing", value: 60) + !261 = !DIEnumerator(name: "thing", value: 61) + !262 = !DIEnumerator(name: "thing", value: 62) + !263 = !DIEnumerator(name: "thing", value: 63) + !264 = !DIEnumerator(name: "thing", value: 64) + !265 = !DIEnumerator(name: "thing", value: 65) + !266 = !DIEnumerator(name: "thing", value: 66) + !267 = !DIEnumerator(name: "thing", value: 67) + !268 = !DIEnumerator(name: "thing", value: 68) + !269 = !DIEnumerator(name: "thing", value: 69) + !270 = !DIEnumerator(name: "thing", value: 70) + !271 = !DIEnumerator(name: "thing", value: 71) + !272 = !DIEnumerator(name: "thing", value: 72) + !273 = !DIEnumerator(name: "thing", value: 73) + !274 = !DIEnumerator(name: "thing", value: 74) + !275 = !DIEnumerator(name: "thing", value: 75) + !276 = !DIEnumerator(name: "thing", value: 76) + !277 = !DIEnumerator(name: "thing", value: 77) + !278 = !DIEnumerator(name: "thing", value: 78) + !279 = !DIEnumerator(name: "thing", value: 79) + !280 = !DIEnumerator(name: "thing", value: 80) + !281 = !DIEnumerator(name: "thing", value: 81) + !282 = !DIEnumerator(name: "thing", value: 82) + !283 = !DIEnumerator(name: "thing", value: 83) + !284 = !DIEnumerator(name: "thing", value: 84) + !285 = !DIEnumerator(name: "thing", value: 85) + !286 = !DIEnumerator(name: "thing", value: 86) + !287 = !DIEnumerator(name: "thing", value: 87) + !288 = !DIEnumerator(name: "thing", value: 88) + !289 = !DIEnumerator(name: "thing", value: 89) + !290 = !DIEnumerator(name: "thing", value: 90) + !291 = !DIEnumerator(name: "thing", value: 91) + !292 = !DIEnumerator(name: "thing", value: 92) + !293 = !DIEnumerator(name: "thing", value: 93) + !294 = !DIEnumerator(name: "thing", value: 94) + !295 = !DIEnumerator(name: "thing", value: 95) + !296 = !DIEnumerator(name: "thing", value: 96) + !297 = !DIEnumerator(name: "thing", value: 97) + !298 = !DIEnumerator(name: "thing", value: 65535) + !299 = !{!300, !302, !305} + !300 = !DIDerivedType(tag: DW_TAG_typedef, name: "thing", file: !301, line: 39, baseType: !302) + !301 = !DIFile(filename: "thing", directory: "thing") + !302 = !DIDerivedType(tag: DW_TAG_typedef, name: "thing", file: !303, line: 193, baseType: !304) + !303 = !DIFile(filename: "thing", directory: "thing") + !304 = !DIBasicType(name: "thing", size: 32, encoding: DW_ATE_signed) + !305 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 32) + !306 = !{} + !307 = !{i32 7, !"Dwarf Version", i32 4} + !308 = !{i32 2, !"Debug Info Version", i32 3} + !309 = !{i32 1, !"wchar_size", i32 4} + !310 = !{i32 1, !"min_enum_size", i32 4} + !311 = !{i32 8, !"branch-target-enforcement", i32 0} + !312 = !{i32 8, !"sign-return-address", i32 0} + !313 = !{i32 8, !"sign-return-address-all", i32 0} + !314 = !{i32 8, !"sign-return-address-with-bkey", i32 0} + !315 = !{i32 7, !"frame-pointer", i32 2} + !316 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.8)"} + !317 = distinct !DISubprogram(name: "thing", scope: !1, file: !1, line: 62, type: !318, scopeLine: 62, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !321) + !318 = !DISubroutineType(types: !319) + !319 = !{null, !320} + !320 = !DIDerivedType(tag: DW_TAG_typedef, name: "thing", file: !4, line: 513, baseType: !39) + !321 = !{!322} + !322 = !DILocalVariable(name: "thing", arg: 1, scope: !317, file: !1, line: 62, type: !320) + !323 = !DILocation(line: 0, scope: !317) + !324 = !DILocation(line: 63, column: 5, scope: !317) + !325 = !DILocation(line: 68, column: 13, scope: !326) + !326 = distinct !DILexicalBlock(scope: !317, file: !1, line: 63, column: 20) + !327 = !DILocation(line: 69, column: 13, scope: !326) + !328 = !DILocation(line: 72, column: 13, scope: !326) + !329 = !DILocation(line: 73, column: 13, scope: !326) + !330 = !DILocation(line: 76, column: 13, scope: !326) + !331 = !DILocation(line: 77, column: 13, scope: !326) + !332 = !DILocation(line: 80, column: 13, scope: !326) + !333 = !DILocation(line: 81, column: 13, scope: !326) + !334 = !DILocation(line: 84, column: 13, scope: !326) + !335 = !DILocation(line: 85, column: 13, scope: !326) + !336 = !DILocation(line: 88, column: 13, scope: !326) + !337 = !DILocation(line: 89, column: 13, scope: !326) + !338 = !DILocation(line: 92, column: 13, scope: !326) + !339 = !DILocation(line: 93, column: 13, scope: !326) + !340 = !DILocation(line: 96, column: 13, scope: !326) + !341 = !DILocation(line: 97, column: 13, scope: !326) + !342 = !DILocation(line: 100, column: 13, scope: !326) + !343 = !DILocation(line: 101, column: 13, scope: !326) + !344 = !DILocation(line: 104, column: 13, scope: !326) + !345 = !DILocation(line: 105, column: 13, scope: !326) + !346 = !DILocation(line: 108, column: 13, scope: !326) + !347 = !DILocation(line: 109, column: 13, scope: !326) + !348 = !DILocation(line: 112, column: 13, scope: !326) + !349 = !DILocation(line: 113, column: 13, scope: !326) + !350 = !DILocation(line: 116, column: 13, scope: !326) + !351 = !DILocation(line: 117, column: 13, scope: !326) + !352 = !DILocation(line: 120, column: 13, scope: !326) + !353 = !DILocation(line: 121, column: 13, scope: !326) + !354 = !DILocation(line: 124, column: 13, scope: !326) + !355 = !DILocation(line: 125, column: 13, scope: !326) + !356 = !DILocation(line: 128, column: 13, scope: !326) + !357 = !DILocation(line: 129, column: 13, scope: !326) + !358 = !DILocation(line: 132, column: 13, scope: !326) + !359 = !DILocation(line: 133, column: 13, scope: !326) + !360 = !DILocation(line: 136, column: 13, scope: !326) + !361 = !DILocation(line: 137, column: 13, scope: !326) + !362 = !DILocation(line: 140, column: 13, scope: !326) + !363 = !DILocation(line: 141, column: 13, scope: !326) + !364 = !DILocation(line: 144, column: 13, scope: !326) + !365 = !DILocation(line: 145, column: 13, scope: !326) + !366 = !DILocation(line: 148, column: 13, scope: !326) + !367 = !DILocation(line: 149, column: 13, scope: !326) + !368 = !DILocation(line: 152, column: 13, scope: !326) + !369 = !DILocation(line: 153, column: 13, scope: !326) + !370 = !DILocation(line: 156, column: 13, scope: !326) + !371 = !DILocation(line: 157, column: 13, scope: !326) + !372 = !DILocation(line: 160, column: 13, scope: !326) + !373 = !DILocation(line: 161, column: 13, scope: !326) + !374 = !DILocation(line: 164, column: 13, scope: !326) + !375 = !DILocation(line: 165, column: 13, scope: !326) + !376 = !DILocation(line: 168, column: 13, scope: !326) + !377 = !DILocation(line: 169, column: 13, scope: !326) + !378 = !DILocation(line: 172, column: 13, scope: !326) + !379 = !DILocation(line: 173, column: 13, scope: !326) + !380 = !DILocation(line: 176, column: 13, scope: !326) + !381 = !DILocation(line: 177, column: 13, scope: !326) + !382 = !DILocation(line: 180, column: 13, scope: !326) + !383 = !DILocation(line: 181, column: 13, scope: !326) + !384 = !DILocation(line: 184, column: 13, scope: !326) + !385 = !DILocation(line: 185, column: 13, scope: !326) + !386 = !DILocation(line: 188, column: 13, scope: !326) + !387 = !DILocation(line: 189, column: 13, scope: !326) + !388 = !DILocation(line: 192, column: 13, scope: !389) + !389 = distinct !DILexicalBlock(scope: !390, file: !1, line: 192, column: 13) + !390 = distinct !DILexicalBlock(scope: !391, file: !1, line: 192, column: 13) + !391 = distinct !DILexicalBlock(scope: !326, file: !1, line: 192, column: 13) + !392 = !DILocation(line: 193, column: 5, scope: !326) + !393 = !DILocation(line: 194, column: 1, scope: !317) + !394 = !DISubprogram(name: "thing", scope: !178, file: !178, line: 37, type: !395, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !306) + !395 = !DISubroutineType(types: !396) + !396 = !{null, !397} + !397 = !DIDerivedType(tag: DW_TAG_typedef, name: "thing", file: !303, line: 266, baseType: !5) + !398 = !DISubprogram(name: "thing", scope: !178, file: !178, line: 38, type: !395, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !306) + !399 = !DISubprogram(name: "thing", scope: !178, file: !178, line: 39, type: !395, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !306) + !400 = !DISubprogram(name: "thing", scope: !178, file: !178, line: 40, type: !401, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !306) + !401 = !DISubroutineType(types: !402) + !402 = !{null, !403, !404} + !403 = !DIDerivedType(tag: DW_TAG_typedef, name: "thing", file: !178, line: 13, baseType: !177) + !404 = !DIDerivedType(tag: DW_TAG_typedef, name: "thing", file: !178, line: 25, baseType: !184) + !405 = !DISubprogram(name: "thing", scope: !178, file: !178, line: 41, type: !406, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !306) + !406 = !DISubroutineType(types: !407) + !407 = !{null, !408, !404} + !408 = !DIDerivedType(tag: DW_TAG_typedef, name: "thing", file: !178, line: 30, baseType: !188) + !409 = !DISubprogram(name: "thing", scope: !178, file: !178, line: 42, type: !410, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !306) + !410 = !DISubroutineType(types: !411) + !411 = !{null, !412, !404} + !412 = !DIDerivedType(tag: DW_TAG_typedef, name: "thing", file: !178, line: 20, baseType: !192) + !413 = !DISubprogram(name: "thing", scope: !414, file: !414, line: 29, type: !415, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized, retainedNodes: !306) + !414 = !DIFile(filename: "thing", directory: "thing") + !415 = !DISubroutineType(types: !416) + !416 = !{null, !417} + !417 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !418) + !418 = !DIDerivedType(tag: DW_TAG_typedef, name: "thing", file: !303, line: 243, baseType: !419) + !419 = !DIBasicType(name: "thing", size: 16, encoding: DW_ATE_unsigned) + +... +--- +name: handle_notify_event +alignment: 2 +exposesReturnsTwice: false +legalized: false +regBankSelected: false +selected: false +failedISel: false +tracksRegLiveness: true +hasWinCFI: false +callsEHReturn: false +callsUnwindInit: false +hasEHCatchret: false +hasEHScopes: false +hasEHFunclets: false +failsVerification: false +tracksDebugUserValues: true +registers: [] +liveins: + - { reg: '$r0', virtual-reg: '' } +frameInfo: + isFrameAddressTaken: false + isReturnAddressTaken: false + hasStackMap: false + hasPatchPoint: false + stackSize: 8 + offsetAdjustment: 0 + maxAlignment: 4 + adjustsStack: true + hasCalls: true + stackProtector: '' + functionContext: '' + maxCallFrameSize: 0 + cvBytesOfCalleeSavedRegisters: 0 + hasOpaqueSPAdjustment: false + hasVAStart: false + hasMustTailInVarArgFunc: false + hasTailCall: false + localFrameSize: 0 + savePoint: '' + restorePoint: '' +fixedStack: [] +stack: + - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, + stack-id: default, callee-saved-register: '$lr', callee-saved-restored: false, + debug-info-variable: '', debug-info-expression: '', debug-info-location: '' } + - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4, + stack-id: default, callee-saved-register: '$r7', callee-saved-restored: true, + debug-info-variable: '', debug-info-expression: '', debug-info-location: '' } +callSites: [] +debugValueSubstitutions: [] +constants: [] +machineFunctionInfo: {} +jumpTable: + kind: inline + entries: + - id: 0 + blocks: [ '%bb.37', '%bb.5', '%bb.36', '%bb.38', '%bb.40', + '%bb.41', '%bb.42', '%bb.43', '%bb.36', '%bb.36', + '%bb.36', '%bb.36', '%bb.36', '%bb.36', '%bb.36', + '%bb.36', '%bb.36', '%bb.36', '%bb.36', '%bb.44', + '%bb.46', '%bb.47', '%bb.48', '%bb.49' ] + - id: 1 + blocks: [ '%bb.2', '%bb.6', '%bb.7', '%bb.8', '%bb.36', + '%bb.10', '%bb.11', '%bb.14', '%bb.15', '%bb.17', + '%bb.18', '%bb.21', '%bb.22', '%bb.24', '%bb.25', + '%bb.26', '%bb.27', '%bb.29', '%bb.30', '%bb.33', + '%bb.34' ] +body: | + bb.0 (%ir-block.1): + successors: %bb.3(0x307c1f08), %bb.1(0x4f83e0f8) + liveins: $r0, $lr + + DBG_VALUE $r0, $noreg, !322, !DIExpression(), debug-location !323 + frame-setup tPUSH 14 /* CC::al */, $noreg, killed $r7, killed $lr, implicit-def $sp, implicit $sp + frame-setup CFI_INSTRUCTION def_cfa_offset 8 + frame-setup CFI_INSTRUCTION offset $lr, -4 + frame-setup CFI_INSTRUCTION offset $r7, -8 + $r7 = frame-setup tADDrSPi $sp, 0, 14 /* CC::al */, $noreg + frame-setup CFI_INSTRUCTION def_cfa_register $r7 + $r1 = tMOVr $r0, 14 /* CC::al */, $noreg, debug-location !324 + renamable $r1, dead $cpsr = tSUBi8 killed renamable $r1, 68, 14 /* CC::al */, $noreg, debug-location !324 + tCMPi8 renamable $r1, 20, 14 /* CC::al */, $noreg, implicit-def $cpsr, debug-location !324 + tBcc %bb.3, 8 /* CC::hi */, killed $cpsr, debug-location !324 + + bb.1 (%ir-block.1): + successors: %bb.2(0x064cbe24), %bb.6(0x064cbe24), %bb.7(0x064cbe24), %bb.8(0x064cbe24), %bb.36(0x0201253a), %bb.10(0x064cbe24), %bb.11(0x064cbe24), %bb.14(0x064cbe24), %bb.15(0x064cbe24), %bb.17(0x064cbe24), %bb.18(0x064cbe24), %bb.21(0x064cbe24), %bb.22(0x064cbe24), %bb.24(0x064cbe24), %bb.25(0x064cbe24), %bb.26(0x064cbe24), %bb.27(0x064cbe24), %bb.29(0x064cbe24), %bb.30(0x064cbe24), %bb.33(0x064cbe24), %bb.34(0x064cbe24) + liveins: $r1 + + DBG_VALUE $r0, $noreg, !322, !DIExpression(), debug-location !323 + renamable $r0, dead $cpsr = tLSLri killed renamable $r1, 2, 14 /* CC::al */, $noreg + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r1 = tLEApcrelJT %jump-table.1, 14 /* CC::al */, $noreg + renamable $r0 = tLDRr renamable $r1, killed renamable $r0, 14 /* CC::al */, $noreg :: (load (s32) from jump-table) + renamable $r0, dead $cpsr = tADDrr killed renamable $r1, killed renamable $r0, 14 /* CC::al */, $noreg + tBR_JTr killed renamable $r0, %jump-table.1 + ; CHECK: tTBB_JT $pc, killed $r1, %jump-table.1, 0 + + bb.2 (%ir-block.14): + successors: %bb.12(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg + tB %bb.12, 14 /* CC::al */, $noreg + + bb.3 (%ir-block.1): + successors: %bb.36(0x04ec4ec5), %bb.4(0x7b13b13b) + liveins: $r0 + + DBG_VALUE $r0, $noreg, !322, !DIExpression(), debug-location !323 + tCMPi8 renamable $r0, 23, 14 /* CC::al */, $noreg, implicit-def $cpsr + tBcc %bb.36, 8 /* CC::hi */, killed $cpsr + + bb.4 (%ir-block.1): + successors: %bb.37(0x0a7e91a6), %bb.5(0x0a7e91a6), %bb.36(0x02112c34), %bb.38(0x0a7e91a6), %bb.40(0x0a7e91a6), %bb.41(0x0a7e91a6), %bb.42(0x0a7e91a6), %bb.43(0x0a7e91a6), %bb.44(0x0a7e91a6), %bb.46(0x0a7e91a6), %bb.47(0x0a7e91a6), %bb.48(0x0a7e91a6), %bb.49(0x0a7e91a6) + liveins: $r0 + + DBG_VALUE $r0, $noreg, !322, !DIExpression(), debug-location !323 + renamable $r0, dead $cpsr = tLSLri killed renamable $r0, 2, 14 /* CC::al */, $noreg + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r1 = tLEApcrelJT %jump-table.0, 14 /* CC::al */, $noreg + renamable $r0 = tLDRr renamable $r1, killed renamable $r0, 14 /* CC::al */, $noreg :: (load (s32) from jump-table) + renamable $r0, dead $cpsr = tADDrr killed renamable $r1, killed renamable $r0, 14 /* CC::al */, $noreg + tBR_JTr killed renamable $r0, %jump-table.0 + ; CHECK: tTBB_JT $pc, killed $r0, %jump-table.0, 1 + + bb.5 (%ir-block.3): + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg + tBL 14 /* CC::al */, $noreg, @system_set_spmi_event_low, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit $r0, implicit-def $sp, debug-location !325 + frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit-def $sp, implicit $sp, debug-location !393 + + bb.6 (%ir-block.15): + successors: %bb.9(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg + tB %bb.9, 14 /* CC::al */, $noreg + + bb.7 (%ir-block.16): + successors: %bb.9(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 2, 14 /* CC::al */, $noreg + tB %bb.9, 14 /* CC::al */, $noreg + + bb.8 (%ir-block.17): + successors: %bb.9(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 3, 14 /* CC::al */, $noreg + + bb.9 (%ir-block.35): + successors: %bb.13(0x80000000) + liveins: $r0 + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r1, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg + tB %bb.13, 14 /* CC::al */, $noreg + + bb.10 (%ir-block.18): + successors: %bb.16(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg + tB %bb.16, 14 /* CC::al */, $noreg + + bb.11 (%ir-block.19): + successors: %bb.12(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg + + bb.12 (%ir-block.35): + successors: %bb.13(0x80000000) + liveins: $r0 + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + $r1 = tMOVr $r0, 14 /* CC::al */, $noreg, debug-location !DILocation(line: 0, scope: !326) + tB %bb.13, 14 /* CC::al */, $noreg + + bb.14 (%ir-block.20): + successors: %bb.16(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 2, 14 /* CC::al */, $noreg + tB %bb.16, 14 /* CC::al */, $noreg + + bb.15 (%ir-block.21): + successors: %bb.16(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 3, 14 /* CC::al */, $noreg + + bb.16 (%ir-block.35): + successors: %bb.13(0x80000000) + liveins: $r0 + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r1, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg + + bb.13 (%ir-block.35): + liveins: $r0, $r1 + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + tBL 14 /* CC::al */, $noreg, @system_change_cpu_gpu_trigger_state, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit $r0, implicit $r1, implicit-def $sp, debug-location !DILocation(line: 0, scope: !326) + frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit-def $sp, implicit $sp, debug-location !393 + + bb.17 (%ir-block.22): + successors: %bb.19(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 21, 14 /* CC::al */, $noreg + tB %bb.19, 14 /* CC::al */, $noreg + + bb.18 (%ir-block.23): + successors: %bb.19(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 22, 14 /* CC::al */, $noreg + + bb.19 (%ir-block.35): + successors: %bb.20(0x80000000) + liveins: $r0 + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r1, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg + tB %bb.20, 14 /* CC::al */, $noreg + + bb.21 (%ir-block.24): + successors: %bb.23(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 21, 14 /* CC::al */, $noreg + tB %bb.23, 14 /* CC::al */, $noreg + + bb.22 (%ir-block.25): + successors: %bb.23(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 22, 14 /* CC::al */, $noreg + + bb.23 (%ir-block.35): + successors: %bb.20(0x80000000) + liveins: $r0 + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r1, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg + + bb.20 (%ir-block.35): + liveins: $r0, $r1 + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + tBL 14 /* CC::al */, $noreg, @system_change_gpio_trigger_state, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit $r0, implicit $r1, implicit-def $sp, debug-location !DILocation(line: 0, scope: !326) + frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit-def $sp, implicit $sp, debug-location !393 + + bb.24 (%ir-block.26): + successors: %bb.31(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg + tB %bb.31, 14 /* CC::al */, $noreg + + bb.25 (%ir-block.27): + successors: %bb.28(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg + tB %bb.28, 14 /* CC::al */, $noreg + + bb.26 (%ir-block.28): + successors: %bb.28(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 2, 14 /* CC::al */, $noreg + tB %bb.28, 14 /* CC::al */, $noreg + + bb.27 (%ir-block.29): + successors: %bb.28(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 3, 14 /* CC::al */, $noreg + + bb.28 (%ir-block.35): + successors: %bb.32(0x80000000) + liveins: $r0 + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r1, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg + tB %bb.32, 14 /* CC::al */, $noreg + + bb.29 (%ir-block.30): + successors: %bb.35(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg + tB %bb.35, 14 /* CC::al */, $noreg + + bb.30 (%ir-block.31): + successors: %bb.31(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg + + bb.31 (%ir-block.35): + successors: %bb.32(0x80000000) + liveins: $r0 + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + $r1 = tMOVr $r0, 14 /* CC::al */, $noreg, debug-location !DILocation(line: 0, scope: !326) + tB %bb.32, 14 /* CC::al */, $noreg + + bb.33 (%ir-block.32): + successors: %bb.35(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 2, 14 /* CC::al */, $noreg + tB %bb.35, 14 /* CC::al */, $noreg + + bb.34 (%ir-block.33): + successors: %bb.35(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 3, 14 /* CC::al */, $noreg + + bb.35 (%ir-block.35): + successors: %bb.32(0x80000000) + liveins: $r0 + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r1, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg + + bb.32 (%ir-block.35): + liveins: $r0, $r1 + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + tBL 14 /* CC::al */, $noreg, @system_change_throttle_trigger_state, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit $r0, implicit $r1, implicit-def $sp, debug-location !DILocation(line: 0, scope: !326) + frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit-def $sp, implicit $sp, debug-location !393 + + bb.36 (%ir-block.34): + successors: %bb.37(0x80000000) + + renamable $r0, dead $cpsr = tMOVi8 11, 14 /* CC::al */, $noreg + tBL 14 /* CC::al */, $noreg, @assert_handler, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit $r0, implicit-def $sp, debug-location !388 + + bb.37 (%ir-block.35): + frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit-def $sp, implicit $sp, debug-location !393 + + bb.38 (%ir-block.4): + successors: %bb.39(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg + tB %bb.39, 14 /* CC::al */, $noreg + + bb.40 (%ir-block.5): + successors: %bb.39(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg + tB %bb.39, 14 /* CC::al */, $noreg + + bb.41 (%ir-block.6): + successors: %bb.39(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 2, 14 /* CC::al */, $noreg + tB %bb.39, 14 /* CC::al */, $noreg + + bb.42 (%ir-block.7): + successors: %bb.39(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 3, 14 /* CC::al */, $noreg + tB %bb.39, 14 /* CC::al */, $noreg + + bb.43 (%ir-block.8): + successors: %bb.39(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 4, 14 /* CC::al */, $noreg + + bb.39 (%ir-block.4): + liveins: $r0 + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + tBL 14 /* CC::al */, $noreg, @system_assert_virtual_wire, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit $r0, implicit-def $sp, debug-location !DILocation(line: 0, scope: !326) + frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit-def $sp, implicit $sp, debug-location !393 + + bb.44 (%ir-block.9): + successors: %bb.45(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 0, 14 /* CC::al */, $noreg + tB %bb.45, 14 /* CC::al */, $noreg + + bb.46 (%ir-block.10): + successors: %bb.45(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg + tB %bb.45, 14 /* CC::al */, $noreg + + bb.47 (%ir-block.11): + successors: %bb.45(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 2, 14 /* CC::al */, $noreg + tB %bb.45, 14 /* CC::al */, $noreg + + bb.48 (%ir-block.12): + successors: %bb.45(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 3, 14 /* CC::al */, $noreg + tB %bb.45, 14 /* CC::al */, $noreg + + bb.49 (%ir-block.13): + successors: %bb.45(0x80000000) + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + renamable $r0, dead $cpsr = tMOVi8 4, 14 /* CC::al */, $noreg + + bb.45 (%ir-block.9): + liveins: $r0 + + DBG_VALUE $r0, $noreg, !322, !DIExpression(DW_OP_LLVM_entry_value, 1), debug-location !323 + tBL 14 /* CC::al */, $noreg, @system_deassert_virtual_wire, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit $r0, implicit-def $sp, debug-location !DILocation(line: 0, scope: !326) + frame-destroy tPOP_RET 14 /* CC::al */, $noreg, def $r7, def $pc, implicit-def $sp, implicit $sp, debug-location !393 + +...