[PATCH] D140160: [llvm][SelectionDAGBuilder] codegen callbr.landingpad intrinsic

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 13 14:25:56 PST 2023


efriedma added inline comments.


================
Comment at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:11680
+
+    SDValue V = DAG.getCopyFromReg(Chain, getCurSDLoc(), Output, ResultVTs[i]);
+    ResultValues.push_back(V);
----------------
efriedma wrote:
> nickdesaulniers wrote:
> > Another issue I'm hitting in real world kernel code is that this MVT is potentially not legal.
> > 
> > ```
> > void strncpy_from_kernel_nofault_count() {
> >   asm goto("" : "=r"(*(char *)0) : : : Efault);
> > Efault:
> > }
> > ```
> > when target powerpc64le-linux-gnu, the MVT here is i8, but the first legal MVT for the constraint's register class is i32.
> Is that the only problem here?  Consider:
> 
> ```
> void test(int *x) {
>   asm goto("mov $0, %0" : "=r"(*x) : : : X);
> X:;
> }
> ```
Err, nevermind, got confused.

You might need to look at the logic we use to compute the types of inline asm calls.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D140160/new/

https://reviews.llvm.org/D140160



More information about the llvm-commits mailing list