[PATCH] D60887: [AsmPrinter] refactor to support %c w/ GlobalAddress'

Nick Desaulniers via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 18 13:37:09 PDT 2019


nickdesaulniers created this revision.
nickdesaulniers added a reviewer: echristo.
Herald added subscribers: llvm-commits, jsji, atanasyan, jrtc27, fedor.sergeev, kbarton, aheejin, hiraditya, kristof.beyls, eraman, jgravelle-google, sbc100, javed.absar, nemanjai, sdardis, dylanmckay, jyknight, dschuff, jholewinski.
Herald added a project: LLVM.

Targets like ARM, MSP430, PPC, and SystemZ have complex behavior when
printing the address of a MachineOperand::MO_GlobalAddress. Move that
handling into a new overriden method in each base class. A virtual
method was added to the base class for handling the generic case.

Refactors a few subclasses to support the target independent %a, %c, and
%n.

The patch also contains small cleanups for AVRAsmPrinter and
SystemZAsmPrinter.

It seems that NVPTXTargetLowering is possibly missing some logic to
transform GlobalAddressSDNodes for
TargetLowering::LowerAsmOperandForConstraint to handle with "i" extended
inline assembly asm constraints.

Fixes:

- https://bugs.llvm.org/show_bug.cgi?id=41402
- https://github.com/ClangBuiltLinux/linux/issues/449


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D60887

Files:
  llvm/include/llvm/CodeGen/AsmPrinter.h
  llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
  llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
  llvm/lib/Target/ARM/ARMAsmPrinter.cpp
  llvm/lib/Target/ARM/ARMAsmPrinter.h
  llvm/lib/Target/AVR/AVRAsmPrinter.cpp
  llvm/lib/Target/BPF/BPFAsmPrinter.cpp
  llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp
  llvm/lib/Target/Lanai/LanaiAsmPrinter.cpp
  llvm/lib/Target/MSP430/MSP430AsmPrinter.cpp
  llvm/lib/Target/Mips/MipsAsmPrinter.cpp
  llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
  llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
  llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
  llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp
  llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
  llvm/lib/Target/X86/X86AsmPrinter.cpp
  llvm/lib/Target/X86/X86AsmPrinter.h
  llvm/lib/Target/XCore/XCoreAsmPrinter.cpp
  llvm/test/CodeGen/AArch64/inlineasm-output-template.ll
  llvm/test/CodeGen/ARM/inlineasm-output-template.ll
  llvm/test/CodeGen/BPF/inlineasm-output-template.ll
  llvm/test/CodeGen/Hexagon/inlineasm-output-template.ll
  llvm/test/CodeGen/Lanai/inlineasm-output-template.ll
  llvm/test/CodeGen/MSP430/inlineasm-output-template.ll
  llvm/test/CodeGen/Mips/inlineasm-output-template.ll
  llvm/test/CodeGen/NVPTX/inlineasm-output-template.ll
  llvm/test/CodeGen/PowerPC/inlineasm-output-template.ll
  llvm/test/CodeGen/SPARC/inlineasm-output-template.ll
  llvm/test/CodeGen/SystemZ/inlineasm-output-template.ll
  llvm/test/CodeGen/WebAssembly/inlineasm-output-template.ll
  llvm/test/CodeGen/X86/inline-asm-modifier-c.ll
  llvm/test/CodeGen/XCore/inlineasm-output-template.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D60887.195809.patch
Type: text/x-patch
Size: 31213 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190418/ff4ea4fd/attachment.bin>


More information about the llvm-commits mailing list