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

Nick Desaulniers via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 6 13:05:36 PST 2023


nickdesaulniers added inline comments.


================
Comment at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:11600-11601
+
+// Consider the following MIR after SelectionDAG, which produces output in
+// phyregs in the first case or virtregs in the second case.
+//
----------------
nickdesaulniers wrote:
> nickdesaulniers wrote:
> > Ok so given `"=@cc"` sort of constraints, we get:
> > ```
> >   INLINEASM_BR &"" [maystore] [attdialect], $0:[regdef:GR32], def %1:gr32, $1:[imm], %bb.2
> >   %2:gr8 = SETCCr 4, implicit $eflags
> >   %3:gr32 = MOVZX32rr8 killed %2:gr8
> >   %0:gr64 = SUBREG_TO_REG 0, killed %3:gr32, %subreg.sub_32bit
> > ```
> Looking at https://reviews.llvm.org/D57393,
> it looks like I'm handling:
> ```
>       case TargetLowering::C_Register:
>       case TargetLowering::C_RegisterClass:
> ```
> but not
> ```
>       case TargetLowering::C_Other:
> ```
> I may need to rethink this approach.
I have something hacked up locally using `TLI.ComputeConstraintToUse` that seems to work. That said, `machine-cse` is doing some wacky things with the results that looks like yet another bug.


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