[llvm] [SystemZ] Implement A, O and R inline assembly format flags (PR #80685)

Ulrich Weigand via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 7 01:35:43 PST 2024


================
@@ -946,6 +950,21 @@ bool SystemZAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
                                               unsigned OpNo,
                                               const char *ExtraCode,
                                               raw_ostream &OS) {
+  if (ExtraCode && ExtraCode[0] && !ExtraCode[1]) {
+    switch (ExtraCode[0]) {
+    case 'A':
+      // Unlike EmitMachineNode(), EmitSpecialNode(INLINEASM) does not call
+      // setMemRefs(), so MI->memoperands() is empty and the alignment
+      // information is not available.
----------------
uweigand wrote:

Hmm.  This is unfortunate, as it will lead to less efficient code being emitted without any indication to the user ...

I guess this is OK for now (probably still better than an error) - but can we look into actually fixing the underlying problem as well?

https://github.com/llvm/llvm-project/pull/80685


More information about the llvm-commits mailing list