9#ifndef LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZASMPRINTER_H
10#define LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZASMPRINTER_H
34 assert(TS &&
"do not have a target streamer");
53 class AssociatedDataAreaTable {
55 using DisplacementTable =
62 DisplacementTable Displacements;
69 AssociatedDataAreaTable(
uint64_t PointerSize) : PointerSize(PointerSize) {}
86 const DisplacementTable &getTable()
const {
return Displacements; }
88 uint32_t getNextDisplacement()
const {
return NextDisplacement; }
91 AssociatedDataAreaTable ADATable;
95 void emitADASection();
96 void emitIDRLSection(
Module &M);
101 CurrentFnEPMarkerSym(nullptr), PPA2Sym(nullptr),
108 void emitEndOfAsmFile(
Module &M)
override;
116 return AsmPrinter::doInitialization(M);
118 void emitFunctionEntryLabel()
override;
119 void emitFunctionBodyEnd()
override;
120 void emitStartOfAsmFile(
Module &M)
override;
123 void emitCallInformation(CallType CT);
127 void emitAttributes(
Module &M);
#define LLVM_LIBRARY_VISIBILITY
static std::optional< TypeSize > getPointerSize(const Value *V, const DataLayout &DL, const TargetLibraryInfo &TLI, const Function *F)
Machine Check Debug Module
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
This class is intended to be used as a driving class for all asm writers.
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
Target specific streamer interface.
Abstract base class for all machine specific constantpool value subclasses.
Representation of each machine instruction.
MachineOperand class - Representation of each machine instruction operand.
This class implements a map that also provides access to all stored values in a deterministic order.
A Module instance is used to store all the information related to an LLVM module.
StringRef - Represent a constant reference to a string, i.e.
StringRef getPassName() const override
getPassName - Return a nice clean name for a pass.
SystemZAsmPrinter(TargetMachine &TM, std::unique_ptr< MCStreamer > Streamer)
bool doInitialization(Module &M) override
Set up the AsmPrinter when we are working on a new module.
Primary interface to the complete machine description for the target machine.
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
Implement std::hash so that hash_code can be used in STL containers.