36 #define DEBUG_TYPE "asm-printer"
52 unsigned PadTo)
const {
76 return "pcrel udata4";
78 return "pcrel sdata4";
80 return "pcrel udata8";
82 return "pcrel sdata8";
85 return "indirect pcrel udata4";
88 return "indirect pcrel sdata4";
91 return "indirect pcrel udata8";
94 return "indirect pcrel sdata8";
97 return "<unknown encoding>";
121 switch (Encoding & 0x07) {
136 unsigned Encoding)
const {
148 bool ForceOffset)
const {
228 for (
const auto &V : Die.
values()) {
230 assert(V.getForm() &&
"Too many attributes for DIE (check abbreviation)");
234 if (Attr == dwarf::DW_AT_accessibility)
std::unique_ptr< MCStreamer > OutStreamer
This is the MCStreamer object for the file we are generating.
void emitDwarfAbbrev(const DIEAbbrev &Abbrev) const
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
void EmitInt8(int Value) const
Emit a byte directive and value.
MachineInstrBuilder MachineInstrBuilder &DefMI const MCInstrDesc & Desc
void EmitLabelDifference(const MCSymbol *Hi, const MCSymbol *Lo, unsigned Size) const
Emit something like ".long Hi-Lo" where the size in bytes of the directive is specified by Size and H...
const MachineFunction * MF
The current machine function.
void EmitInt32(int Value) const
Emit a long directive and value.
unsigned getRegister() const
Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
void emitDwarfDIE(const DIE &Die) const
Recursively emit Dwarf DIE tree.
String pool entry reference.
Base class for the full range of assembler expressions which are needed for parsing.
void EmitEncodingByte(unsigned Val, const char *Desc=nullptr) const
Emit a .byte 42 directive that corresponds to an encoding.
StringRef getValues() const
StringRef AttributeString(unsigned Attribute)
void emitDwarfSymbolReference(const MCSymbol *Label, bool ForceOffset=false) const
Emit a reference to a symbol for use in dwarf.
const DataLayout & getDataLayout() const
Return the DataLayout attached to the Module associated to this MF.
dwarf::Tag getTag() const
MachineModuleInfo * MMI
This is a pointer to the current MachineModuleInfo.
bool needsDwarfSectionOffsetDirective() const
StringRef AccessibilityString(unsigned Access)
const MCAsmInfo * MAI
Target Asm Printer information.
unsigned getAbbrevNumber() const
unsigned GetSizeOfEncodedValue(unsigned Encoding) const
Return the size of the encoding in bytes.
void EmitULEB128(uint64_t Value, const char *Desc=nullptr, unsigned PadTo=0) const
Emit the specified unsigned leb128 value.
A structured debug information entry.
TargetMachine & TM
Target machine description.
unsigned getOffset() const
virtual const MCExpr * getTTypeGlobalReference(const GlobalValue *GV, unsigned Encoding, const TargetMachine &TM, MachineModuleInfo *MMI, MCStreamer &Streamer) const
Return an MCExpr to use for a reference to the specified global variable from exception handling info...
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
OpType getOperation() const
void emitCFIInstruction(const MachineInstr &MI)
unsigned getOffset() const
Get the compile/type unit relative offset of this DIE.
static Twine utohexstr(const uint64_t &Val)
MCSymbol * getBeginSymbol()
unsigned getRegister2() const
void EmitTTypeReference(const GlobalValue *GV, unsigned Encoding) const
Emit reference to a ttype global with a specified encoding.
static const char * DecodeDWARFEncoding(unsigned Encoding)
MCSection & getSection(bool SetUsed=true) const
Get the section associated with a defined, non-absolute symbol.
Dwarf abbreviation, describes the organization of a debug information object.
StringRef TagString(unsigned Tag)
void EmitSLEB128(int64_t Value, const char *Desc=nullptr) const
Emit the specified signed leb128 value.
void emitDwarfStringOffset(DwarfStringPoolEntryRef S) const
Emit the 4-byte offset of a string from the start of its section.
const TargetLoweringObjectFile & getObjFileLowering() const
Return information about object file lowering.
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
MCSymbol * getSymbol() const
LLVM Value Representation.
void Emit(const AsmPrinter *AP) const
Print the abbreviation using the specified asm printer.
unsigned getPointerSize(unsigned AS=0) const
Layout pointer size FIXME: The defaults need to be removed once all of the backends/clients are updat...
bool isVerbose() const
Return true if assembly output should contain comments.
bool doesDwarfUseRelocationsAcrossSections() const
unsigned getNumber() const