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;
115 AsmPrinter::runOnMachineFunction(MF);
125 return AsmPrinter::doInitialization(M);
127 void emitFunctionEntryLabel()
override;
128 void emitFunctionBodyEnd()
override;
129 void emitStartOfAsmFile(
Module &M)
override;
132 void emitCallInformation(CallType CT);
139 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.
bool runOnMachineFunction(MachineFunction &MF) override
Emit the specified function out to the OutStreamer.
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.