[PATCH] D79955: [GlobalISel][InlineAsm] Add early return for memory inputs that need to be indirectified

Konstantin Schwarz via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu May 14 12:31:12 PDT 2020


kschwarz created this revision.
kschwarz added reviewers: arsenm, paquette.
Herald added subscribers: hiraditya, rovka, wdng.
Herald added a project: LLVM.

D78319 <https://reviews.llvm.org/D78319> introduced basic support for inline asm input operands in GlobalISel.
However, that patch did not handle the case where a memory input operand still needs to
be indirectified. Later code asserts that the memory operand is already indirect.

This patch adds an early return false to trigger the SelectionDAG fallback for now.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D79955

Files:
  llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp


Index: llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp
===================================================================
--- llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp
+++ llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp
@@ -306,6 +306,12 @@
     // Compute the constraint code and ConstraintType to use.
     computeConstraintToUse(TLI, OpInfo);
 
+    if (OpInfo.ConstraintType == TargetLowering::C_Memory &&
+        !OpInfo.isIndirect) {
+      LLVM_DEBUG(dbgs() << "Cannot indirectify memory input operands yet\n");
+      return false;
+    }
+
     // The selected constraint type might expose new sideeffects
     ExtraInfo.update(OpInfo);
   }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D79955.264052.patch
Type: text/x-patch
Size: 665 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200514/79609673/attachment.bin>


More information about the llvm-commits mailing list