<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/85828>85828</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Crash during stackmap generation
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          Il-Capitano
      </td>
    </tr>
</table>

<pre>
    The following IR crashes the code generator when generating the `LiveOuts` entries for the stackmap:
```llvm
target triple = "aarch64-unknown-linux-gnu"

define double @f(i32 %0) {
 call anyregcc void (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.void(i64 0, i32 0, ptr null, i32 0)
  %2 = sitofp i32 %0 to double
  ret double %2
}

declare void @llvm.experimental.patchpoint.void(i64, i32, ptr, i32, ...)
```

Stack dump of `llc input.ll`:
```
llc: /path/to/llvm-project/llvm/lib/CodeGen/StackMaps.cpp:203: unsigned int getDwarfRegNum(unsigned int, const TargetRegisterInfo *): Assertion `RegNum >= 0 && isUInt<16>(RegNum) && "Invalid Dwarf register number."' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: build-19-debug/bin/llc liveouts-bug.ll
1.      Running pass 'Function Pass Manager' on module 'liveouts-bug.ll'.
2.      Running pass 'AArch64 Assembly Printer' on function '@f'
 #0 0x00007fba05da1c0d llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /path/to/llvm-project/llvm/lib/Support/Unix/Signals.inc:723:11
 #1 0x00007fba05da20fb PrintStackTraceSignalHandler(void*) /path/to/llvm-project/llvm/lib/Support/Unix/Signals.inc:798:1
 #2 0x00007fba05da0186 llvm::sys::RunSignalHandlers() /path/to/llvm-project/llvm/lib/Support/Signals.cpp:105:5
 #3 0x00007fba05da2885 SignalHandler(int) /path/to/llvm-project/llvm/lib/Support/Unix/Signals.inc:413:1
 #4 0x00007fba01a03420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #5 0x00007fba014f400b raise /build/glibc-wuryBv/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #6 0x00007fba014d3859 abort /build/glibc-wuryBv/glibc-2.31/stdlib/abort.c:81:7
 #7 0x00007fba014d3729 get_sysdep_segment_value /build/glibc-wuryBv/glibc-2.31/intl/loadmsgcat.c:509:8
 #8 0x00007fba014d3729 _nl_load_domain /build/glibc-wuryBv/glibc-2.31/intl/loadmsgcat.c:970:34
 #9 0x00007fba014e4fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#10 0x00007fba06ac3557 getDwarfRegNum(unsigned int, llvm::TargetRegisterInfo const*) /path/to/llvm-project/llvm/lib/CodeGen/StackMaps.cpp:204:20
#11 0x00007fba06ac3fbf llvm::StackMaps::createLiveOutReg(unsigned int, llvm::TargetRegisterInfo const*) const /path/to/llvm-project/llvm/lib/CodeGen/StackMaps.cpp:375:12
#12 0x00007fba06ac3677 llvm::StackMaps::parseRegisterLiveOutMask(unsigned int const*) const /path/to/llvm-project/llvm/lib/CodeGen/StackMaps.cpp:391:26
#13 0x00007fba06ac33a8 llvm::StackMaps::parseOperand(llvm::MachineOperand const*, llvm::MachineOperand const*, llvm::SmallVector<llvm::StackMaps::Location, 8u>&, llvm::SmallVector<llvm::StackMaps::LiveOutReg, 8u>&) /path/to/llvm-project/llvm/lib/CodeGen/StackMaps.cpp:296:5
#14 0x00007fba06ac4a57 llvm::StackMaps::recordStackMapOpers(llvm::MCSymbol const&, llvm::MachineInstr const&, unsigned long, llvm::MachineOperand const*, llvm::MachineOperand const*, bool) /path/to/llvm-project/llvm/lib/CodeGen/StackMaps.cpp:513:11
#15 0x00007fba06ac4f28 llvm::StackMaps::recordPatchPoint(llvm::MCSymbol const&, llvm::MachineInstr const&) /path/to/llvm-project/llvm/lib/CodeGen/StackMaps.cpp:554:3
#16 0x00007fba0a1803eb (anonymous namespace)::AArch64AsmPrinter::LowerPATCHPOINT(llvm::MCStreamer&, llvm::StackMaps&, llvm::MachineInstr const&) /path/to/llvm-project/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp:1312:26
#17 0x00007fba0a179fd0 (anonymous namespace)::AArch64AsmPrinter::emitInstruction(llvm::MachineInstr const*) /path/to/llvm-project/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp:1732:5
#18 0x00007fba070a385e llvm::AsmPrinter::emitFunctionBody() /path/to/llvm-project/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:1847:13
#19 0x00007fba0a177dba (anonymous namespace)::AArch64AsmPrinter::runOnMachineFunction(llvm::MachineFunction&) /path/to/llvm-project/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp:161:5
#20 0x00007fba066d6a06 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /path/to/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:93:8
#21 0x00007fba060e7a2a llvm::FPPassManager::runOnFunction(llvm::Function&) /path/to/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1445:23
#22 0x00007fba060ec8a2 llvm::FPPassManager::runOnModule(llvm::Module&) /path/to/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1491:16
#23 0x00007fba060e833b (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /path/to/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1560:23
#24 0x00007fba060e7eaf llvm::legacy::PassManagerImpl::run(llvm::Module&) /path/to/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:542:16
#25 0x00007fba060ecb81 llvm::legacy::PassManager::run(llvm::Module&) /path/to/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1687:3
#26 0x000055baceb7ffcf compileModule(char**, llvm::LLVMContext&) /path/to/llvm-project/llvm/tools/llc/llc.cpp:741:9
#27 0x000055baceb7e105 main /path/to/llvm-project/llvm/tools/llc/llc.cpp:408:13
#28 0x00007fba014d5083 __libc_start_main /build/glibc-wuryBv/glibc-2.31/csu/../csu/libc-start.c:342:3
#29 0x000055baceb7d87e _start (build-19-debug/bin/llc+0x4687e)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzEWd1u27rSfRrmhohBkfq98IXr1N8OkOwGafe-NSiJkvmVIgWSSuK3PyBlWT9N2yRNzgECx5Ko4VprhjNDmhrDa8nYGkSfQHR1QTt7UHp9LS63tOWWSnWRq_K4_nZgsFJCqEcua3h9DwtNzYEZaA8MFqpksGaSaWqVho8HJodLN9oNATG64Q_sS2cNiBFk0mrODKyU9o-NpcX3hraAbAC6AmgDYtT_CfHQ9Lcs1TWz0GreCgYBuYIAY0p1cYjDy05-l-pRXgouu6fLWnYA45Ml_1myiksGS9Xl7uUQVQCnnGAIcIQAziBIPvUjYUGFgFQeNauLAj4oXkI3Ng4B3kJOsPvXWj25Wq1W3kTo0a7YU8s0b5i0VKxaaotDq7i0K2eqtwTR6e3-S2s1lJ0Qk5vZCYzDhz1Zw62qWjhghlad2AwjNbNnfjga2CdXcxkKQTU7sXox3t8wX7hsOuFX51hYdk0LVQW9PwvIZdvZlRBu7A8O7y-FKADZQIB3LbUHgHdWAbxzcC9brf6fFfZ06f7xHODdVpXs_5gEeOfnvKWtWRWtiyiMiLPVSR_qJeTSwprZq0eqq3tW_901AKfTp45ZoaSx8JuPuXtWc2OZvpaVggBvHGWygRtjmLZcScerNwQB-eychSDAMcAx5Oafa2kB2Qaxe4TTYcJsGAEwvpYPVPASekRQn2aDsmtyplcuknECK8oFK1e9PHc3nzdfP0PT5Q23kMK8q6FmrdLWxcXB2tY4ZfEO4F3N7aHLV4VqJpLNheTGdMwAvINUOgUK0ZWsX9pumcOcFt-tpgVbLb169h9aAZTdaVVr2kCq687FkwMB846L8jLILkuWdzXAu5xLD6GAgj8w1VlzmXe1iwdvKXCW7jspXe5oqTEQ4GTXycJLfedu3FJJa6adLErCRpWdD_pkaQ8nJ8D4OZubjc8d3o9NLo7wTnNpz2arYUqAkz5hJKelBjBBED0hhFBS5RRFJQ0KVEIvLtkAsjFH03_xJr1c35x-AKfjIE0f98pYzWjjY2Hbx172mqj_2rXO6wDv_pH8yd3gtaTCrLh0CyjBLvSDYAQeLIBjVOVwgbK38ReVpXBqpH0i2LwztCx10EZkeIEMBWn8nKT3nZwBNACnb4Y2YOozRYAiQDbRiIks1UrTCC7leXevhQGZSxNOYQQUkRAjuN9rZqzSbK8t9BqcrD-l8T4Op6XQPWjtQTNaroxaIYA_oacgDPGk0gBMotk0YRUilENNuXGLa-fXscsngufF5WOnj58ezpd4RQKAd8bzAHjn6sLOHE3JWpdXup6mOZoHj0Z27tKbXjnGUTAnHM-RlCSNMkhz5Zm-DIktezX8W36S1E0yWcPJcpIEZ64w7Hvce8Nql8T2D1R0L1aAS-v4C0XLxtQF7aeOkKsY6Th3-tzceyn27sV9qRrK5Z9NmSWuuJJwnDObz8nCqoxfEDiFC5nYhwwhVRmPBR-TYJYHY1qQKEp-X1zHVf1MgfWV9_Xp5lf1P_SfI-pgibrKqwmos4H-stCMWnZqX-9Z_SeE-rbiXWiRxCWrAI-08JJWnCQ_p9VSbdgA9MTulprvC3ofBj9zyxHHI3yyhE9o-hv4X1qmqSxnZfWWFgcuh0cT-FM3vWjQ14YK8S8rrNKAbH-K5EYV1DUK7uW0821e_DZDkxCbmnqvdZDFY3VzgocLwUMa_SJeNCuULoebTjkz13379djkSgxixs8qfi2N1bMh52ATStZv8NIvBuVKiXeTLwqmvZTTL1rqV-FfBGyv353bX90pnzf-WLz3Yha5BElGYrPyS4MUEZa7SkGlksdGdQZK2jDT-o426yGeuumNaYY2-rQ4Hpm-23zb_nX35frvb0vSvvt1XdRyxZy1-wgp-iQN8O4Eevw2wh9aQhLgRZ5K5uokWVWiN6rDGm49k67oM8iPeWxG9LVF8TVEE4Ln6WHWoySIkjRiE0c8x2XYpn1S5fH1bfkYoRPb04sBahom3jUj1mzhk6TM6Rt9ojv5RZ7EH_g855jx2UeGXxzMnILnDVdcxhTFP66OAZvbLU9YPUvn7TxGfz0z7YlARsbG1-Gft16IJRTTCf7dnXt32N9_GPLre4B3N6ymxXEy36B5GLrOCo_hhfECdZFS_ALUt_5kYh48p1vvjNg3U8GYpDBZIE4J-W0Kv_1f04j8geBU-HAZLoxOO3XhLZ2OWkZ7100rzvg_HncU4oX60TJe8jT4Pez_IuQgTpNZzcdDzY-inBYsT6qqqGChmpYLdg6A4kC1r0KLHuzm5t_brZKWPb2qGlulhOnPAvvPE7okdOE8bjNxsgDHAhTBYY_89nlClM7rCF7uyyOUErjfu23w3liq7f41O_PCdMNZSP_VP_R2_B6d-MCZTJ8teJZpwmA_sVu8Pz9K9dvzME4T9uN5_EW5JmVGMnrB1kESoDROswBdHNZxWtCIBUWYoTgPshijFIcBjkpGI5IH0QVfY4RDRIIsSHAQZiuUp3nByigtclIykoMQsYZysfI_JChdX_ij5HUapTi9EDRnwvifljCW7BH6hwBjEF1d6LX3Vd7VBoRIcGPNaMVyK9h66w-fy05zWZ9_Ijr_sqTkRafF-u2H3R7kfwIAAP__sydKOg">