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

    <tr>
        <th>Summary</th>
        <td>
            [llvm16] LLVM ERROR: Could not match memory address.  Inline asm failure!
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          xiaer1921
      </td>
    </tr>
</table>

<pre>
    a llvm error  when I make linux ebpf test code.

``` c
#include <linux/netdevice.h>
#include <uapi/linux/bpf.h>
#include <linux/version.h>
#include <bpf/bpf_helpers.h>
#include <bpf/bpf_tracing.h>
#include <linux/sched.h>

static struct task_struct *p;

SEC("tracepoint/syscalls/sys_enter_execve")
int bpf_prog(void *ctx) {
  char msg[] = "pid filter! pid is %d, tgid is %d\n";
  //u32 pid = bpf_get_current_pid_tgid() & 0xFFFF;
  //u32 tgid = bpf_get_current_pid_tgid() >>32;
  p = current;
  u32 pid = p->pid;
  u32 tgid = p->tgid;
  bpf_trace_printk(msg, sizeof(msg), pid, tgid);
  return 0;
}
```

The version of llvm and clang:

``` shell
✗ llc -version
LLVM (http://llvm.org/):
  LLVM version 16.0.0git
  DEBUG build with assertions.
  Default target: x86_64-unknown-linux-gnu
  Host CPU: skylake

  Registered Targets:
    bpf    - BPF (host endian)
    bpfeb  - BPF (big endian)
    bpfel  - BPF (little endian)
    x86    - 32-bit X86: Pentium-Pro and above
    x86-64 - 64-bit X86: EM64T and AMD64

 ✗ clang -v   
clang version 16.0.0
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/local/bin
Found candidate GCC installation: /usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/12.0.1
Found candidate GCC installation: /usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/6.5.0
Selected GCC installation: /usr/local/bin/../lib/gcc/x86_64-pc-linux-gnu/6.5.0
Candidate multilib: .;@m64
Selected multilib: .;@m64
```

crash backtrace:

``` shell
LLVM ERROR: Could not match memory address.  Inline asm failure!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: llc -march=bpf -filetype=obj -o /github/linux/samples/bpf/pid_filter_kern.o
1.      Running pass 'Function Pass Manager' on module '<stdin>'.
2.      Running pass 'BPF DAG->DAG Pattern Instruction Selection' on function '@bpf_prog'
 #0 0x00000000035e2e57 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/local/bin/llc+0x35e2e57)
 #1 0x00000000035e2f0e PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
 #2 0x00000000035e0a57 llvm::sys::RunSignalHandlers() (/usr/local/bin/llc+0x35e0a57)
 #3 0x00000000035e27b5 SignalHandler(int) Signals.cpp:0:0
 #4 0x00007f348fe11390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
 #5 0x00007f348e235438 raise /build/glibc-S7Ft5T/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
 #6 0x00007f348e23703a abort /build/glibc-S7Ft5T/glibc-2.23/stdlib/abort.c:91:0
 #7 0x0000000003519e6a llvm::report_fatal_error(llvm::Twine const&, bool) (/usr/local/bin/llc+0x3519e6a)
 #8 0x0000000003519c58 llvm::report_fatal_error(llvm::StringRef, bool) (/usr/local/bin/llc+0x3519c58)
 #9 0x00000000033ab99a llvm::SelectionDAGISel::SelectInlineAsmMemoryOperands(std::vector<llvm::SDValue, std::allocator<llvm::SDValue>>&, llvm::SDLoc const&) (/usr/local/bin/llc+0x33ab99a)
#10 0x00000000033ac203 llvm::SelectionDAGISel::Select_INLINEASM(llvm::SDNode*) (/usr/local/bin/llc+0x33ac203)
#11 0x00000000033b006f llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int) (/usr/local/bin/llc+0x33b006f)
#12 0x000000000183550a (anonymous namespace)::BPFDAGToDAGISel::SelectCode(llvm::SDNode*) BPFISelDAGToDAG.cpp:0:0
#13 0x0000000001836cea (anonymous namespace)::BPFDAGToDAGISel::Select(llvm::SDNode*) BPFISelDAGToDAG.cpp:0:0
#14 0x00000000033a6a77 llvm::SelectionDAGISel::DoInstructionSelection() (/usr/local/bin/llc+0x33a6a77)
#15 0x00000000033a5d4c llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/usr/local/bin/llc+0x33a5d4c)
#16 0x00000000033a4411 llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, true>, llvm::ilist_iterator<llvm::ilis$
_detail::node_options<llvm::Instruction, false, false, void>, false, true>, bool&) (/usr/local/bin/llc+0x33a4411)
#17 0x00000000033a9255 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/usr/local/bin/llc+0x33a9255)
#18 0x00000000033a2f11 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/usr/local/bin/llc+0x33a2f11)
#19 0x00000000018354db (anonymous namespace)::BPFDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) BPFISelDAGToDAG.cpp:0:0
#20 0x0000000002465cfb llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/usr/local/bin/llc+0x2465cfb)
#21 0x0000000002b57048 llvm::FPPassManager::runOnFunction(llvm::Function&) (/usr/local/bin/llc+0x2b57048)
#22 0x0000000002b572f1 llvm::FPPassManager::runOnModule(llvm::Module&) (/usr/local/bin/llc+0x2b572f1)
#23 0x0000000002b57719 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) LegacyPassManager.cpp:0:0
#24 0x0000000002b526a9 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/usr/local/bin/llc+0x2b526a9)
#25 0x0000000002b57fa3 llvm::legacy::PassManager::run(llvm::Module&) (/usr/local/bin/llc+0x2b57fa3)
#26 0x0000000001758cce compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#27 0x0000000001755973 main (/usr/local/bin/llc+0x1755973)
#28 0x00007f348e220840 __libc_start_main /build/glibc-S7Ft5T/glibc-2.23/csu/../csu/libc-start.c:325:0
#29 0x0000000001750219 _start (/usr/local/bin/llc+0x1750219)
/bin/sh: 行 12: 14751 已完成               clang -nostdinc -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -$
./include/generated/uapi -include ./include/linux/compiler-version.h -include ./include/linux/kconfig.h -fno-stack-protector -g -I/github/linux/samples/bpf -I./tools/testing/selftests/bpf/ -I/github/linu$
/samples/bpf/libbpf/include -D__KERNEL__ -D__BPF_TRACING__ -Wno-unused-value -Wno-pointer-sign -D__TARGET_ARCH_x86 -Wno-compare-distinct-pointer-types -Wno-gnu-variable-sized-type-not-at-end -Wno-address$
of-packed-member -Wno-tautological-compare -Wno-unknown-warning-option -fno-asynchronous-unwind-tables -I./samples/bpf/ -include asm_goto_workaround.h -O2 -emit-llvm -Xclang -disable-llvm-passes -c /gith$
b/linux/samples/bpf/pid_filter_kern.c -o -
     14752                       | opt -O2 -mtriple=bpf-pc-linux
     14753                       | llvm-dis
     14754 已放弃               | llc -march=bpf -filetype=obj -o /github/linux/samples/bpf/pid_filter_kern.o
/github/linux/samples/bpf/Makefile:445: recipe for target '/github/linux/samples/bpf/pid_filter_kern.o' failed
make[2]: *** [/github/linux/samples/bpf/pid_filter_kern.o] Error 134
Makefile:1834: recipe for target '/github/linux/samples/bpf' failed
make[1]: *** [/github/linux/samples/bpf] Error 2
make[1]: Leaving directory '/github/linux'
Makefile:281: recipe for target 'all' failed
make: *** [all] Error 2

```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy9Wltzo7gS_jXkRYULi5t5yINjO7Opk8ykkuyefaNkIWzWXFwgcjm__nRLQICxJ0xmd12JA1Kr--tWq7slZVtEb5eMpOlzRkRZFiUhL3uRkxuSsYMgaZLXr0RsjzGRopKEF5GYGdbasJbNt2fpH8KbBmonOU_rSBDDXqnxBr3OhYzEc8LFbG_Ym1OUNTsmQNgOAIlnSVuaZ1FWSZGfpQMemlO4F-kRiCdQypLxJN99KLviexH1qdR3JZlMOKlkWXNJJKsOYfNs0OXRsK_6xI-blUEXBqUoUxyLJJfI-K3iLE0r_RiKXIoyFK-CPwsgNWigBwMxQbzHstgBl-ciiVAGlwAuIIbfSCKE71lJsmpnuFeGuwYV4JfSI5DHSQq8DTon-JZU0O5GBl0Rueu9u6sc5dodQwAGP7VN1TDkhzh2Qoa8LkvAG0J7iDyUdgCGesR6vYbPSS5K2hQ2YGp7Y_ehHNW4hr7X3gd3NGEUvIy6O6mqX4l5J2gdQYB5wdAHQIAWBNNUyf9EEbfvATYh78Zo2PLOpRSyLnNivU-7vx4tmr47PO0FaTyaFLFekSyPCE9ZvjPs5elVV4Frp03jhhrBygh8GMuJ2fDSfbe3f9yBzRd7KY_IS1kfRcyKcqfegk4EIYq6xTL3ZtbM2iWy7V1vrn7_QrZ1kkbkJZF7wqpKlBJoq1lHI2JWp7gESphSYE1eF17oOWadH_LiJTfVOjJ3ed2O-K2A8LK6_x1pq8NbCtGnrzEhD2KXVOCwIiJPimvVQ6zmDP-Y5Or-WmmK_EQeJSzvFk1DJ7Y9um2yO0eW9sjSRMpUnKIExbRgm5rbRJI_Fx7qcA8umdSZeV8WahrZtngWg1Gm58AosElv1ObOc54U_fJu7TkDC7zPr3IJmGHgo_t0w3DGGq-aOAFP-1KwiGQQ31OkPhZV8qq7bnIIa2kqonVSYheu26pE_ykgUmHcTBovuy5qdFiAn0RMCvJltSKJHs3QP86OptezmQr-W_jecQ7fDdwj7yGl13MKqs3_LWnezG3t-ChSwSX43j8qZdUpk8HqSXAssJ9hBHGsrPWHDsuPiE7GGF6yak-2jB9UeJsSVVQs2Dw8fHtAKauihlWfFxLKA8n3JBNZUb4RFkWlqKoZITc5qCYgJGQkZklal5C1mvm6v91AziNVvc3A4RlEkB3EyGNRQpgoCEamqgtNEG729XbGi6yJU80fE_LdX6A8vCZVVQtMk2q5tClaQhQdadkEpUcJDSSqs2OntjUj6gNrdFcyCLflrs5g3SIOHUQzVnJI8muMLiYkTCHfjmC2dbH9i5gF6ZD2KpeKZcdUAdNVBaYxnWrDgyjzWaFlzxvZD3WeQ8FBjhBFgZ9_Xecc_YrcY8Mdy9kOk7RPoAlWZw1BCN6gEqlkBF4GSZH6jYb0DEsMYevlF0x08AcYSwADJV6uaxMUpl0K3VlLilsUKMux3isNvw1G1LYgq1vtx3YFFa6v0hba115C9aIf7jGHKus_KaeDYNoRlewlhEANsQdm2MM8qqogLBoWZ1YVzItBr6zXRuJ7LAZI8zGk2BJkJP8x2eUs_Q2cJkXDqtIJKicUqruqGT-ij1jqt-NNR7wtdlpdsP5ARNWVQRM0QqYDjeyxRv7WJWMVGpv9EL7TMPJj21nEYj63A4uEISxbWZQiLGUDUMerJlL1wxR0HKXKErOqgICFiBWXAV63L0bAu2MvSMmSCt32WhUNuGiAGTcf_WvpPnWvdEZtXD9KizZ8glkjccTVVOfJq2547q02xXrGQVfXGSrsjZD4ls0wCytNpyGRkbaGGqWEBPOhEH84PfNAeKznFDq8hTGDdBGq7dXA-59eMFZyKJxk4_3bokinOosSNjD-YoyGu4vpaB4lLJTdg4h_HgjIGQAJBkBstg2Cvlm6aAPh6OZRFRxdq04gyyq7U6nlG-zbwM9xEcF0aMJnIAPssBl757j-g6W1UCV6SwYZGgCfo1S7icbq_d7bgvdmZJIBtH6dATAOWSMDcGrZEw0Q3ny9vfkKqfJuODvrr1CbNYFqEiiUOQA1jI721rK8eCKoFcheFVmGCeI0qBWpc1y6UJaoLWdjw2HP9OCu0Q3gDwLwfGG7rsWQFcuL_C0r6orkLBPVUeWYQAOE1AfaPBVnVDpvYRiIA9rB38dURGSPEHlc_AqiX0TjjHzOY77_4fSui14Z0KsCpqYsLWYwT-4Ihxs5_EMcOBtfRL7Mow1Uh9D1MxBQwgCCN4LgOOD80zz9ilUJvwJRh8F0QJldyTCBwum7iKK7IiGh3tUtOSgTFke1JR6Q9myN6yKGbC0GD6oYwbjUa4MRommbjMegzTbg38Gls8X0eInzMZgwfzRhAXXdiRO2TNP3OasGk9bV0j8d0FH-AOBiBJDGEzyqrPNv-R3je8hoLZYBwO_6piNEAAOEwTg8OtH2U8Hok6inxCg6yIvU8Vweb8lZzrgF6mE6CeanbddI7duODjIj3bq-5fQLp-t7RNLuxf52QFreABAdA4LpngDoTm0Qh5PVNP0EGJA1AGOPwfjz4CPPuvskwluxY_ytN_a0HzkjSNRjQc8-qeKin3u8bmBn3mH5RSuhxIGV3LGVYmZ_DOnvgoPSBnAGKXDuuwvOcauRHZNUdJOAlZoqMZbD7IKHPqsil-K1jZog6vRM-CM5buDbJGNJPgF3Qz7AvRhu26i1cHCfivuysJIM9i8N80lbOF7V7U5SP6pOxUft52DahuoEI3UsCr6uBU9TCAf0FGoIqr2B54SbhbGcG4sVmVN8nzu-O4dW17jyjSuKD8sNdBsbz1gsDNigDz_NuW9eqLMfTswbVEwdUaktO56KNedg57vQRCLHugEKck02aRBe0E1kO6Qes-hqk9kHo1tYQ7p259_4cml214AfjThAGRAnOySM8wK9gB_wQFGq_SQxwbQ3xkcneo1SEioebMFbUdg1I5VIY3x7P_k7wa7TfcxWu6Z-6KZjHYb_2Tx83dyGoXqBFBs-PSxXN1-_YMt_QYk6rysRmc-4p9Ut6iIRzIJbLjXqafnwZfMULh9Wv4V4WaGo0HqsFGaUIH4uu2F4wFlpml1eA-MyYdtUmHjzFale8D9pMmmKPNJ0zelvp1sRm5ALDkCeiWwrSk0lWS2LtNglsHBa8a0O-krihZV4bmnqClVPEqvecr4vixzSDBC-JDmAQEBVMxFjK747AauycFfIInwpygMr8bYAp_4bJaaAPYapbtjMP5tFBYZQeupTZrzSAgm8PeHtdPuZk16OR8Tm-52PWu-UnP4Y_oqA4hpfJssEWOuD5-6-YMTJ_gEnpQWoNBri9IONZwSOcbVRLStjMWan2fyjZ-BTht6xg0ChEC8dB4M1KQVPjoLEsGT19aI6pP4UCsheeEsBMUfhwX95MFywjbtW4brJjPDkXn1OgLsmG_VfFXO7caCePlCkO7-i0Enw88-B74DSk9xuBXvGK4UoKVWwfDsD0f9OSbqYn9WRpelJLcbwkW4McHRldSEu5543p7YXONZFdGlHgR2wC5nIVFwCC1wQcw-5_B0XWhd1mV5-_sYKSuxgfrG_tFybLbhHYz-OHFcELPbFAjZJMWUe9d3oImVbkVaXagZpLl6IYoH_j-GuL5JLamF9RG3Lc-h8MbMXQnicR3Fk2xZTFzcCiqV01l70X5SXCtK23lXQiUcI1XsnxDw8pVPmQv4Qr_dFefmaMFHOA1BaCb9U4P8PDl25Hg">