32 #define DEBUG_TYPE "asm-printer" 56 OutStreamer->emitAbsoluteSymbolDiffAsULEB128(Hi, Lo);
80 return "pcrel udata4";
82 return "pcrel sdata4";
84 return "pcrel udata8";
86 return "pcrel sdata8";
89 return "indirect pcrel udata4";
92 return "indirect pcrel sdata4";
95 return "indirect pcrel udata8";
98 return "indirect pcrel sdata8";
101 return "<unknown encoding>";
125 switch (Encoding & 0x07) {
140 unsigned Encoding)
const {
152 bool ForceOffset)
const {
243 for (
const auto &V : Die.
values()) {
245 assert(V.getForm() &&
"Too many attributes for DIE (check abbreviation)");
249 if (Attr == dwarf::DW_AT_accessibility)
const TargetLoweringObjectFile & getObjFileLowering() const
Return information about object file lowering.
std::unique_ptr< MCStreamer > OutStreamer
This is the MCStreamer object for the file we are generating.
This class represents lattice values for constants.
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
bool needsDwarfSectionOffsetDirective() const
void emitDwarfSymbolReference(const MCSymbol *Label, bool ForceOffset=false) const
Emit a reference to a symbol for use in dwarf.
MachineFunction * MF
The current machine function.
void emitDwarfDIE(const DIE &Die) const
Recursively emit Dwarf DIE tree.
Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
Base class for the full range of assembler expressions which are needed for parsing.
StringRef AttributeString(unsigned Attribute)
bool doesDwarfUseRelocationsAcrossSections() const
bool isVerbose() const
Return true if assembly output should contain comments.
Data for a string pool entry.
void EmitLabelDifferenceAsULEB128(const MCSymbol *Hi, const MCSymbol *Lo) const
Emit something like ".uleb128 Hi-Lo".
MachineModuleInfo * MMI
This is a pointer to the current MachineModuleInfo.
const DataLayout & getDataLayout() const
Return the DataLayout attached to the Module associated to this MF.
void EmitLabelPlusOffset(const MCSymbol *Label, uint64_t Offset, unsigned Size, bool IsSectionRelative=false) const
Emit something like ".long Label+Offset" where the size in bytes of the directive is specified by Siz...
void Emit(const AsmPrinter *AP) const
Print the abbreviation using the specified asm printer.
StringRef AccessibilityString(unsigned Access)
unsigned getRegister2() const
const MCAsmInfo * MAI
Target Asm Printer information.
unsigned getPointerSize(unsigned AS=0) const
Layout pointer size FIXME: The defaults need to be removed once all of the backends/clients are updat...
A structured debug information entry.
void EmitEncodingByte(unsigned Val, const char *Desc=nullptr) const
Emit a .byte 42 directive that corresponds to an encoding.
TargetMachine & TM
Target machine description.
OpType getOperation() 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...
StringRef getValues() const
unsigned GetSizeOfEncodedValue(unsigned Encoding) const
Return the size of the encoding in bytes.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
unsigned getRegister() const
void emitCFIInstruction(const MachineInstr &MI)
void EmitSLEB128(int64_t Value, const char *Desc=nullptr) const
Emit the specified signed leb128 value.
void emitDwarfStringOffset(DwarfStringPoolEntry S) const
Emit the 4-byte offset of a string from the start of its section.
static Twine utohexstr(const uint64_t &Val)
MCSymbol * getBeginSymbol()
void EmitTTypeReference(const GlobalValue *GV, unsigned Encoding) const
Emit reference to a ttype global with a specified encoding.
void emitInt32(int Value) const
Emit a long directive and value.
static const char * DecodeDWARFEncoding(unsigned Encoding)
This file contains constants used for implementing Dwarf debug support.
MCSection & getSection() const
Get the section associated with a defined, non-absolute symbol.
void emitDwarfAbbrev(const DIEAbbrev &Abbrev) const
dwarf::Tag getTag() const
Dwarf abbreviation, describes the organization of a debug information object.
StringRef TagString(unsigned Tag)
void EmitDwarfOffset(const MCSymbol *Label, uint64_t Offset) const
Emit something like ".long Label + Offset".
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...
unsigned getCodePointerSize() const
Get the code pointer size in bytes.
unsigned getAbbrevNumber() const
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
void emitInt8(int Value) const
Emit a byte directive and value.
LLVM Value Representation.
unsigned getNumber() const
void EmitULEB128(uint64_t Value, const char *Desc=nullptr) const
Emit the specified unsigned leb128 value.
unsigned getOffset() const
Get the compile/type unit relative offset of this DIE.