[llvm] 6e520fc - Revert "ARM: skip debug instructions when matching jump-table patterns."

Tim Northover via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 26 05:26:45 PST 2023


Author: Tim Northover
Date: 2023-01-26T13:26:10Z
New Revision: 6e520fcf451ad66578192ec6cdd4f3515ecbec52

URL: https://github.com/llvm/llvm-project/commit/6e520fcf451ad66578192ec6cdd4f3515ecbec52
DIFF: https://github.com/llvm/llvm-project/commit/6e520fcf451ad66578192ec6cdd4f3515ecbec52.diff

LOG: Revert "ARM: skip debug instructions when matching jump-table patterns."

This reverts commit ce4fcea59e1d5829b4355b6401d7265be23f617a.

I committed it accidentally.

Added: 
    

Modified: 
    llvm/lib/Target/ARM/ARMConstantIslandPass.cpp

Removed: 
    llvm/test/CodeGen/ARM/jump-table-dbg-value.mir


################################################################################
diff  --git a/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp b/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp
index 0fa7258ad1edf..386a74877bc17 100644
--- a/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp
+++ b/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp
@@ -2278,12 +2278,9 @@ bool ARMConstantIslands::optimizeThumb2JumpTables() {
       //   %t = tLDRr %base, %idx
       Register BaseReg = User.MI->getOperand(0).getReg();
 
-      MachineBasicBlock *UserMBB = User.MI->getParent();
-      MachineBasicBlock::iterator Shift = User.MI->getIterator();
-      if (Shift == UserMBB->begin())
+      if (User.MI->getIterator() == User.MI->getParent()->begin())
         continue;
-
-      Shift = prev_nodbg(Shift, UserMBB->begin());
+      MachineInstr *Shift = User.MI->getPrevNode();
       if (Shift->getOpcode() != ARM::tLSLri ||
           Shift->getOperand(3).getImm() != 2 ||
           !Shift->getOperand(2).isKill())

diff  --git a/llvm/test/CodeGen/ARM/jump-table-dbg-value.mir b/llvm/test/CodeGen/ARM/jump-table-dbg-value.mir
deleted file mode 100644
index 1eda8a1e13dc1..0000000000000
--- a/llvm/test/CodeGen/ARM/jump-table-dbg-value.mir
+++ /dev/null
@@ -1,1064 +0,0 @@
-# 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
-
-...


        


More information about the llvm-commits mailing list