Go to the documentation of this file.
9 #ifndef LLVM_LIB_TARGET_ARM_ARMASMPRINTER_H
10 #define LLVM_LIB_TARGET_ARM_ARMASMPRINTER_H
18 class ARMFunctionInfo;
20 class MachineConstantPool;
56 int OptimizationGoals;
70 std::unique_ptr<MCStreamer> Streamer);
73 return "ARM Assembly Printer";
89 void emitJumpTableTBInst(
const MachineInstr *
MI,
unsigned OffsetWidth);
96 void emitFunctionBodyEnd()
override;
97 void emitFunctionEntryLabel()
override;
98 void emitStartOfAsmFile(
Module &M)
override;
99 void emitEndOfAsmFile(
Module &M)
override;
103 MCSymbol *GetCPISymbol(
unsigned CPID)
const override;
121 void emitAttributes();
124 void EmitPatchedInstruction(
const MachineInstr *
MI,
unsigned TargetOpc);
129 bool emitPseudoExpansionLowering(
MCStreamer &OutStreamer,
135 const Triple &TT =
TM.getTargetTriple();
136 if (!TT.isOSBinFormatMachO())
146 MCSymbol *GetARMJTIPICJumpTableLabel(
unsigned uid)
const;
ARMFunctionInfo - This class is derived from MachineFunctionInfo and contains private ARM-specific in...
This is an optimization pass for GlobalISel generic memory operations.
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
A parsed version of the target data layout string in and methods for querying it.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
Triple - Helper class for working with autoconf configuration names.
Abstract base class for all machine specific constantpool value subclasses.
static bool printOperand(raw_ostream &OS, const SelectionDAG *G, const SDValue Value)
SmallPtrSet - This class implements a set which is optimized for holding SmallSize or less elements.
Streaming machine code generation interface.
MachineOperand class - Representation of each machine instruction operand.
This class implements an extremely fast bulk output stream that can only output to a stream.
static bool isThumb(const MCSubtargetInfo &STI)
void emitConstantPool() override
Print to the current output stream assembly representations of the constants in the constant pool MCP...
This is an important base class in LLVM.
Representation of each machine instruction.
The MachineConstantPool class keeps track of constants referenced by a function which must be spilled...
Primary interface to the complete machine description for the target machine.
StringRef getPassName() const override
getPassName - Return a nice clean name for a pass.
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.
static MCOperand GetSymbolRef(const MachineOperand &MO, const MCSymbol *Symbol, HexagonAsmPrinter &Printer, bool MustExtend)
MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL
#define LLVM_LIBRARY_VISIBILITY
LLVM_LIBRARY_VISIBILITY - If a class marked with this attribute is linked into a shared library,...
unsigned getISAEncoding() override
Get the value for DW_AT_APPLE_isa. Zero if no isa encoding specified.
This class is intended to be used as a driving class for all asm writers.
const char LLVMTargetMachineRef TM
Instances of this class represent operands of the MCInst class.
Generic base class for all target subtargets.