class AsmPrinter

Declaration

class AsmPrinter : public MachineFunctionPass { /* full declaration omitted */ };

Description

This class is intended to be used as a driving class for all asm writers.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:80

Inherits from: MachineFunctionPass

Member Variables

public llvm::TargetMachine& TM
Target machine description.
public const llvm::MCAsmInfo* MAI
Target Asm Printer information.
public llvm::MCContext& OutContext
This is the context for the output file that we are streaming. This owns all of the global MC-related objects for the generated translation unit.
public std::unique_ptr<MCStreamer> OutStreamer
This is the MCStreamer object for the file we are generating. This contains the transient state for the current translation unit that we are generating (such as the current section etc).
public llvm::MachineFunction* MF = nullptr
The current machine function.
public llvm::MachineModuleInfo* MMI = nullptr
This is a pointer to the current MachineModuleInfo.
public llvm::MachineDominatorTree* MDT = nullptr
This is a pointer to the current MachineLoopInfo.
public llvm::MachineLoopInfo* MLI = nullptr
This is a pointer to the current MachineLoopInfo.
public llvm::MachineOptimizationRemarkEmitter* ORE
Optimization remark emitter.
public llvm::MachineBlockFrequencyInfo* MBFI
public llvm::ProfileSummaryInfo* PSI
public llvm::MCSymbol* CurrentPatchableFunctionEntrySym = nullptr
The symbol for the entry in __patchable_function_entires.
public llvm::MCSymbol* CurrentFnSym = nullptr
The symbol for the current function. This is recalculated at the beginning of each call to runOnMachineFunction().
public llvm::MCSymbol* CurrentFnDescSym = nullptr
The symbol for the current function descriptor on AIX. This is created at the beginning of each call to SetupMachineFunction().
public llvm::MCSymbol* CurrentFnSymForSize = nullptr
The symbol used to represent the start of the current function for the purpose of calculating its size (e.g. using the .size directive). By default, this is equal to CurrentFnSym.
public MapVector<const llvm::MCSymbol*, llvm::AsmPrinter::GOTEquivUsePair> GlobalGOTEquivs
protected llvm::MCSymbol* CurrentFnBegin = nullptr
protected SmallVector<llvm::AsmPrinter::HandlerInfo, 1> Handlers
A vector of all debug/EH info emitters we should use. This vector maintains ownership of the emitters.
public SmallVector<llvm::AsmPrinter::XRayFunctionEntry, 4> Sleds
public unsigned int XRayFnUniqueID = 0
public DenseMap<const llvm::MCSection*, unsigned int> PatchableFunctionEntryID

Method Overview

Inherited from MachineFunctionPass:

Inherited from FunctionPass:

Inherited from Pass:

Methods

AsmPrinter(llvm::TargetMachine& TM,
           std::unique_ptr<MCStreamer> Streamer)

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:199

Parameters

llvm::TargetMachine& TM
std::unique_ptr<MCStreamer> Streamer

void EmitAlignment(
    llvm::Align Alignment,
    const llvm::GlobalObject* GV = nullptr) const

Description

Emit an alignment directive to the specified power of two boundary. If a global value is specified, and if that global has an explicit alignment requested, it will override the alignment request if required for correctness.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:366

Parameters

llvm::Align Alignment
const llvm::GlobalObject* GV = nullptr

virtual void EmitBasicBlockEnd(
    const llvm::MachineBasicBlock& MBB)

Description

Targets can override this to emit stuff at the end of a basic block.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:422

Parameters

const llvm::MachineBasicBlock& MBB

virtual void EmitBasicBlockStart(
    const llvm::MachineBasicBlock& MBB)

Description

Targets can override this to emit stuff at the start of a basic block. By default, this method prints the label for the specified MachineBasicBlock, an alignment (if present) and a comment describing it if appropriate.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:419

Parameters

const llvm::MachineBasicBlock& MBB

void EmitCallSiteOffset(
    const llvm::MCSymbol* Hi,
    const llvm::MCSymbol* Lo,
    unsigned int Encoding) const

Description

Emit reference to a call site with a specified encoding

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:570

Parameters

const llvm::MCSymbol* Hi
const llvm::MCSymbol* Lo
unsigned int Encoding

void EmitCallSiteValue(
    uint64_t Value,
    unsigned int Encoding) const

Description

Emit an integer value corresponding to the call site encoding

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:573

Parameters

uint64_t Value
unsigned int Encoding

virtual void EmitConstantPool()

Description

Print to the current output stream assembly representations of the constants in the constant pool MCP. This is used to print out constants which have been "spilled to memory" by the code generator.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:349

virtual void EmitDebugValue(
    const llvm::MCExpr* Value,
    unsigned int Size) const

Description

Emit the directive and value for debug thread local expression \p Value - The value to emit.\p Size - The size of the integer (in bytes) to emit.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:582

Parameters

const llvm::MCExpr* Value
unsigned int Size

void EmitDwarfOffset(const llvm::MCSymbol* Label,
                     uint64_t Offset) const

Description

Emit something like ".long Label + Offset".

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:528

Parameters

const llvm::MCSymbol* Label
uint64_t Offset

void EmitEncodingByte(
    unsigned int Val,
    const char* Desc = nullptr) const

Description

Emit a .byte 42 directive that corresponds to an encoding. If verbose assembly output is enabled, we output comments describing the encoding. Desc is a string saying what the encoding is specifying (e.g. "LSDA").

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:543

Parameters

unsigned int Val
const char* Desc = nullptr

virtual void EmitEndOfAsmFile(llvm::Module&)

Description

This virtual method can be overridden by targets that want to emit something at the end of their file.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:405

Parameters

llvm::Module&

void EmitFunctionBody()

Description

This method emits the body and trailer for a function.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:327

virtual void EmitFunctionBodyEnd()

Description

Targets can override this to emit stuff after the last basic block in the function.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:413

virtual void EmitFunctionBodyStart()

Description

Targets can override this to emit stuff before the first basic block in the function.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:409

virtual void EmitFunctionDescriptor()

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:434

virtual void EmitFunctionEntryLabel()

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:432

void EmitGlobalConstant(
    const llvm::DataLayout& DL,
    const llvm::Constant* CV)

Description

Print a general LLVM constant to the .s file.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:372

Parameters

const llvm::DataLayout& DL
const llvm::Constant* CV

virtual void EmitGlobalVariable(
    const llvm::GlobalVariable* GV)

Description

Emit the specified global variable to the .s file.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:356

Parameters

const llvm::GlobalVariable* GV

virtual void EmitInstruction(
    const llvm::MachineInstr*)

Description

Targets should implement this to emit instructions.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:425

Parameters

const llvm::MachineInstr*

virtual void EmitJumpTableInfo()

Description

Print assembly representations of the jump tables used by the current function to the current output stream.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:353

void EmitLabelDifference(const llvm::MCSymbol* Hi,
                         const llvm::MCSymbol* Lo,
                         unsigned int Size) const

Description

Emit something like ".long Hi-Lo" where the size in bytes of the directive is specified by Size and Hi/Lo specify the labels. This implicitly uses .set if it is available.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:507

Parameters

const llvm::MCSymbol* Hi
const llvm::MCSymbol* Lo
unsigned int Size

void EmitLabelDifferenceAsULEB128(
    const llvm::MCSymbol* Hi,
    const llvm::MCSymbol* Lo) const

Description

Emit something like ".uleb128 Hi-Lo".

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:511

Parameters

const llvm::MCSymbol* Hi
const llvm::MCSymbol* Lo

void EmitLabelPlusOffset(
    const llvm::MCSymbol* Label,
    uint64_t Offset,
    unsigned int Size,
    bool IsSectionRelative = false) const

Description

Emit something like ".long Label+Offset" where the size in bytes of the directive is specified by Size and Label specifies the label. This implicitly uses .set if it is available.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:517

Parameters

const llvm::MCSymbol* Label
uint64_t Offset
unsigned int Size
bool IsSectionRelative = false

void EmitLabelReference(
    const llvm::MCSymbol* Label,
    unsigned int Size,
    bool IsSectionRelative = false) const

Description

Emit something like ".long Label" where the size in bytes of the directive is specified by Size and Label specifies the label.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:522

Parameters

const llvm::MCSymbol* Label
unsigned int Size
bool IsSectionRelative = false

void EmitLinkage(const llvm::GlobalValue* GV,
                 llvm::MCSymbol* GVSym) const

Description

This emits linkage information about \p GVSym based on \p GV, if this is supported by the target.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:659

Parameters

const llvm::GlobalValue* GV
llvm::MCSymbol* GVSym

virtual void EmitMachineConstantPoolValue(
    llvm::MachineConstantPoolValue* MCPV)

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:438

Parameters

llvm::MachineConstantPoolValue* MCPV

void EmitSLEB128(int64_t Value,
                 const char* Desc = nullptr) const

Description

Emit the specified signed leb128 value.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:535

Parameters

int64_t Value
const char* Desc = nullptr

bool EmitSpecialLLVMGlobal(
    const llvm::GlobalVariable* GV)

Description

Check to see if the specified global is a special global used by LLVM. If so, emit it and return true, otherwise do nothing and return false.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:360

Parameters

const llvm::GlobalVariable* GV

virtual void EmitStartOfAsmFile(llvm::Module&)

Description

This virtual method can be overridden by targets that want to emit something at the start of their file.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:401

Parameters

llvm::Module&

void EmitTTypeReference(
    const llvm::GlobalValue* GV,
    unsigned int Encoding) const

Description

Emit reference to a ttype global with a specified encoding.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:549

Parameters

const llvm::GlobalValue* GV
unsigned int Encoding

void EmitToStreamer(llvm::MCStreamer& S,
                    const llvm::MCInst& Inst)

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:238

Parameters

llvm::MCStreamer& S
const llvm::MCInst& Inst

void EmitULEB128(uint64_t Value,
                 const char* Desc = nullptr,
                 unsigned int PadTo = 0) const

Description

Emit the specified unsigned leb128 value.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:538

Parameters

uint64_t Value
const char* Desc = nullptr
unsigned int PadTo = 0

void EmitVisibility(
    llvm::MCSymbol* Sym,
    unsigned int Visibility,
    bool IsDefinition = true) const

Description

This emits visibility information about symbol, if this is supported by the target.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:654

Parameters

llvm::MCSymbol* Sym
unsigned int Visibility
bool IsDefinition = true

virtual void EmitXXStructor(
    const llvm::DataLayout& DL,
    const llvm::Constant* CV)

Description

Targets can override this to change how global constants that are part of a C++ static/global constructor list are emitted.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:442

Parameters

const llvm::DataLayout& DL
const llvm::Constant* CV

llvm::MCSymbol* GetBlockAddressSymbol(
    const llvm::BlockAddress* BA) const

Description

Return the MCSymbol used to satisfy BlockAddress uses of the specified basic block.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:482

Parameters

const llvm::BlockAddress* BA

llvm::MCSymbol* GetBlockAddressSymbol(
    const llvm::BasicBlock* BB) const

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:483

Parameters

const llvm::BasicBlock* BB

virtual llvm::MCSymbol* GetCPISymbol(
    unsigned int CPID) const

Description

Return the symbol for the specified constant pool entry.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:430

Parameters

unsigned int CPID

llvm::MCSymbol* GetExternalSymbolSymbol(
    llvm::StringRef Sym) const

Description

Return the MCSymbol for the specified ExternalSymbol.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:471

Parameters

llvm::StringRef Sym

llvm::MCSymbol* GetJTISymbol(
    unsigned int JTID,
    bool isLinkerPrivate = false) const

Description

Return the symbol for the specified jump table entry.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:474

Parameters

unsigned int JTID
bool isLinkerPrivate = false

llvm::MCSymbol* GetJTSetSymbol(
    unsigned int UID,
    unsigned int MBBID) const

Description

Return the symbol for the specified jump table .set FIXME: privatize to AsmPrinter.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:478

Parameters

unsigned int UID
unsigned int MBBID

unsigned int GetSizeOfEncodedValue(
    unsigned int Encoding) const

Description

Return the size of the encoding in bytes.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:546

Parameters

unsigned int Encoding

virtual bool PrintAsmMemoryOperand(
    const llvm::MachineInstr* MI,
    unsigned int OpNo,
    const char* ExtraCode,
    llvm::raw_ostream& OS)

Description

Print the specified operand of MI, an INLINEASM instruction, using the specified assembler variant as an address. Targets should override this to format as appropriate. This method can return true if the operand is erroneous.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:636

Parameters

const llvm::MachineInstr* MI
unsigned int OpNo
const char* ExtraCode
llvm::raw_ostream& OS

virtual bool PrintAsmOperand(
    const llvm::MachineInstr* MI,
    unsigned int OpNo,
    const char* ExtraCode,
    llvm::raw_ostream& OS)

Description

Print the specified operand of MI, an INLINEASM instruction, using the specified assembler variant. Targets should override this to format as appropriate. This method can return true if the operand is erroneous.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:629

Parameters

const llvm::MachineInstr* MI
unsigned int OpNo
const char* ExtraCode
llvm::raw_ostream& OS

virtual void PrintSpecial(
    const llvm::MachineInstr* MI,
    llvm::raw_ostream& OS,
    const char* Code) const

Description

Print information related to the specified machine instr that is independent of the operand, and may be independent of the instr itself. This can be useful for portably encoding the comment character or other bits of target-specific knowledge into the asmstrings. The syntax used is ${:comment}. Targets can override this to add support for their own strange codes.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:619

Parameters

const llvm::MachineInstr* MI
llvm::raw_ostream& OS
const char* Code

virtual void PrintSymbolOperand(
    const llvm::MachineOperand& MO,
    llvm::raw_ostream& OS)

Description

Print the MachineOperand as a symbol. Targets with complex handling of symbol references should override the base implementation.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:624

Parameters

const llvm::MachineOperand& MO
llvm::raw_ostream& OS

virtual void SetupMachineFunction(
    llvm::MachineFunction& MF)

Description

This should be called when a new MachineFunction is being processed from runOnMachineFunction.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:324

Parameters

llvm::MachineFunction& MF

void computeGlobalGOTEquivs(llvm::Module& M)

Description

Unnamed constant global variables solely contaning a pointer to another globals variable act like a global variable "proxy", or GOT equivalents, i.e., it's only used to hold the address of the latter. One optimization is to replace accesses to these proxies by using the GOT entry for the final global instead. Hence, we select GOT equivalent candidates among all the module global variables, avoid emitting them unnecessarily and finally replace references to them by pc relative accesses to GOT entries.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:382

Parameters

llvm::Module& M

llvm::MCSymbol* createTempSymbol(
    const llvm::Twine& Name) const

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:463

Parameters

const llvm::Twine& Name

bool doFinalization(llvm::Module& M)

Description

Shut down the asmprinter. If you override this in your pass, you must make sure to call it explicitly.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:309

Parameters

llvm::Module& M

bool doInitialization(llvm::Module& M)

Description

Set up the AsmPrinter when we are working on a new module. If your pass overrides this, it must make sure to explicitly call this implementation.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:305

Parameters

llvm::Module& M

void emitCFIInstruction(
    const llvm::MachineInstr& MI)

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:329

Parameters

const llvm::MachineInstr& MI

void emitCFIInstruction(
    const llvm::MCCFIInstruction& Inst) const

Description

Emit frame instruction to describe the layout of the frame.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:589

Parameters

const llvm::MCCFIInstruction& Inst

void emitDwarfAbbrev(
    const llvm::DIEAbbrev& Abbrev) const

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:601

Parameters

const llvm::DIEAbbrev& Abbrev

template <typename T>
void emitDwarfAbbrevs(const T& Abbrevs) const

Description

Emit Dwarf abbreviation table.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:592

Templates

T

Parameters

const T& Abbrevs

void emitDwarfDIE(const llvm::DIE& Die) const

Description

Recursively emit Dwarf DIE tree.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:604

Parameters

const llvm::DIE& Die

void emitDwarfStringOffset(
    llvm::DwarfStringPoolEntryRef S) const

Description

Emit the 4-byte offset of a string from the start of its section.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:565

Parameters

llvm::DwarfStringPoolEntryRef S

void emitDwarfStringOffset(
    llvm::DwarfStringPoolEntry S) const

Description

Emit the 4-byte offset of a string from the start of its section. When possible, emit a DwarfStringPool section offset without any relocations, and without using the symbol. Otherwise, defers to \a emitDwarfSymbolReference().

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:562

Parameters

llvm::DwarfStringPoolEntry S

void emitDwarfSymbolReference(
    const llvm::MCSymbol* Label,
    bool ForceOffset = false) const

Description

Emit a reference to a symbol for use in dwarf. Different object formats represent this in different ways. Some use a relocation others encode the label offset in its section.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:554

Parameters

const llvm::MCSymbol* Label
bool ForceOffset = false

void emitFrameAlloc(const llvm::MachineInstr& MI)

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:331

Parameters

const llvm::MachineInstr& MI

void emitGlobalGOTEquivs()

Description

Constant expressions using GOT equivalent globals may not be eligible for PC relative GOT entry conversion, in such cases we need to emit the proxies we previously omitted in EmitGlobalVariable.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:387

virtual void emitImplicitDef(
    const llvm::MachineInstr* MI) const

Description

Targets can override this to customize the output of IMPLICIT_DEF instructions in verbose mode.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:454

Parameters

const llvm::MachineInstr* MI

void emitInitialRawDwarfLocDirective(
    const llvm::MachineFunction& MF)

Description

Emits inital debug location directive.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:241

Parameters

const llvm::MachineFunction& MF

virtual void emitInlineAsmEnd(
    const llvm::MCSubtargetInfo& StartInfo,
    const llvm::MCSubtargetInfo* EndInfo) const

Description

Let the target do anything it needs to do after emitting inlineasm. This callback can be used restore the original mode in case the inlineasm contains directives to switch modes.\p StartInfo - the original subtarget info before inline asm\p EndInfo - the final subtarget info after parsing the inline asm, or NULL if the value is unknown.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:649

Parameters

const llvm::MCSubtargetInfo& StartInfo
const llvm::MCSubtargetInfo* EndInfo

virtual void emitInlineAsmStart() const

Description

Let the target do anything it needs to do before emitting inlineasm.\p StartInfo - the subtarget info before parsing inline asm

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:641

void emitInt16(int Value) const

Description

Emit a short directive and value.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:496

Parameters

int Value

void emitInt32(int Value) const

Description

Emit a long directive and value.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:499

Parameters

int Value

void emitInt64(uint64_t Value) const

Description

Emit a long long directive and value.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:502

Parameters

uint64_t Value

void emitInt8(int Value) const

Description

Emit a byte directive and value.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:493

Parameters

int Value

void emitNops(unsigned int N)

Description

Emit N NOP instructions.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:457

Parameters

unsigned int N

void emitPatchableFunctionEntries()

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:294

void emitRemarksSection(llvm::RemarkStreamer& RS)

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:335

Parameters

llvm::RemarkStreamer& RS

void emitStackMaps(llvm::StackMaps& SM)

Description

Emit the stack maps.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:390

Parameters

llvm::StackMaps& SM

void emitStackSizeSection(
    const llvm::MachineFunction& MF)

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:333

Parameters

const llvm::MachineFunction& MF

void emitXRayTable()

Description

Emit a table with all XRay instrumentation points.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:291

void getAnalysisUsage(
    llvm::AnalysisUsage& AU) const

Description

Record analysis usage.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:301

Parameters

llvm::AnalysisUsage& AU

llvm::MCSymbol* getCurExceptionSym()

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:224

const llvm::MCSection* getCurrentSection() const

Description

Return the current section we are emitting to.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:244

const llvm::DataLayout& getDataLayout() const

Description

Return information about data layout.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:230

llvm::DwarfDebug* getDwarfDebug()

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:204

llvm::DwarfDebug* getDwarfDebug() const

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:205

uint16_t getDwarfVersion() const

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:207

llvm::MCSymbol* getFunctionBegin() const

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:222

llvm::MCSymbol* getFunctionEnd() const

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:223

virtual const llvm::MCSymbol*
getFunctionFrameSymbol() const

Description

Return symbol for the function pseudo stack if the stack frame is not a register based.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:220

unsigned int getFunctionNumber() const

Description

Return a unique ID for the current function.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:216

static llvm::Align getGVAlignment(
    const llvm::GlobalValue* GV,
    const llvm::DataLayout& DL,
    llvm::Align InAlign = Align::None())

Description

Return the alignment for the specified \p GV.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:662

Parameters

const llvm::GlobalValue* GV
const llvm::DataLayout& DL
llvm::Align InAlign = Align::None()

virtual unsigned int getISAEncoding()

Description

Get the value for DW_AT_APPLE_isa. Zero if no isa encoding specified.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:576

void getNameWithPrefix(
    SmallVectorImpl<char>& Name,
    const llvm::GlobalValue* GV) const

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:246

Parameters

SmallVectorImpl<char>& Name
const llvm::GlobalValue* GV

const llvm::TargetLoweringObjectFile&
getObjFileLowering() const

Description

Return information about object file lowering.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:227

unsigned int getPointerSize() const

Description

Return the pointer size from the TargetMachine

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:233

const llvm::MCSubtargetInfo& getSubtargetInfo()
    const

Description

Return information about subtarget.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:236

llvm::MCSymbol* getSymbol(
    const llvm::GlobalValue* GV) const

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:249

Parameters

const llvm::GlobalValue* GV

llvm::MCSymbol* getSymbolWithGlobalValueBase(
    const llvm::GlobalValue* GV,
    llvm::StringRef Suffix) const

Description

Return the MCSymbol for a private symbol with global value name as its base, with the specified suffix.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:467

Parameters

const llvm::GlobalValue* GV
llvm::StringRef Suffix

virtual bool isBlockOnlyReachableByFallthrough(
    const llvm::MachineBasicBlock* MBB) const

Description

Return true if the basic block has exactly one predecessor and the control transfer mechanism between the predecessor and this block is a fall-through.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:450

Parameters

const llvm::MachineBasicBlock* MBB

bool isPositionIndependent() const

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:210

bool isVerbose() const

Description

Return true if assembly output should contain comments.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:213

virtual const llvm::MCExpr* lowerConstant(
    const llvm::Constant* CV)

Description

Lower the specified LLVM Constant to an MCExpr.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:369

Parameters

const llvm::Constant* CV

llvm::AsmPrinter::CFIMoveType needsCFIMoves()
    const

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:338

bool needsOnlyDebugCFIMoves() const

Description

Returns false if needsCFIMoves() == CFI_M_EH for any function in the module.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:342

bool needsSEHMoves()

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:344

void printOffset(int64_t Offset,
                 llvm::raw_ostream& OS) const

Description

This is just convenient handler for printing offsets.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:490

Parameters

int64_t Offset
llvm::raw_ostream& OS

void recordSled(llvm::MCSymbol* Sled,
                const llvm::MachineInstr& MI,
                llvm::AsmPrinter::SledKind Kind,
                uint8_t Version = 0)

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:287

Parameters

llvm::MCSymbol* Sled
const llvm::MachineInstr& MI
llvm::AsmPrinter::SledKind Kind
uint8_t Version = 0

bool runOnMachineFunction(
    llvm::MachineFunction& MF)

Description

Emit the specified function out to the OutStreamer.

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:312

Parameters

llvm::MachineFunction& MF

void setDwarfVersion(uint16_t Version)

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:208

Parameters

uint16_t Version

~AsmPrinter()

Declared at: llvm/include/llvm/CodeGen/AsmPrinter.h:202