[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