9#ifndef LLVM_LIB_TARGET_ARM_ARMASMPRINTER_H
10#define LLVM_LIB_TARGET_ARM_ARMASMPRINTER_H
20class MachineConstantPool;
56 int OptimizationGoals;
70 std::unique_ptr<MCStreamer> Streamer);
73 return "ARM Assembly Printer";
89 void emitJumpTableTBInst(
const MachineInstr *
MI,
unsigned OffsetWidth);
94 getCodeViewJumpTableInfo(
int JTI,
const MachineInstr *BranchInstr,
95 const MCSymbol *BranchLabel)
const override;
100 void emitFunctionBodyEnd()
override;
101 void emitFunctionEntryLabel()
override;
102 void emitStartOfAsmFile(
Module &M)
override;
103 void emitEndOfAsmFile(
Module &M)
override;
107 MCSymbol *GetCPISymbol(
unsigned CPID)
const override;
125 void emitAttributes();
135 const Triple &TT = TM.getTargetTriple();
136 if (!TT.isOSBinFormatMachO())
139 TT.getSubArch() == Triple::ARMSubArch_v7m ||
140 TT.getSubArch() == Triple::ARMSubArch_v6m;
141 return isThumb ? ARM::DW_ISA_ARM_thumb : ARM::DW_ISA_ARM_arm;
146 MCSymbol *GetARMJTIPICJumpTableLabel(
unsigned uid)
const;
static bool isThumb(const MCSubtargetInfo &STI)
MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL
#define LLVM_LIBRARY_VISIBILITY
static MCOperand GetSymbolRef(const MachineOperand &MO, const MCSymbol *Symbol, HexagonAsmPrinter &Printer, bool MustExtend)
static bool printOperand(raw_ostream &OS, const SelectionDAG *G, const SDValue Value)
void emitConstantPool() override
Print to the current output stream assembly representations of the constants in the constant pool MCP...
unsigned getISAEncoding() override
Get the value for DW_AT_APPLE_isa. Zero if no isa encoding specified.
StringRef getPassName() const override
getPassName - Return a nice clean name for a pass.
ARMFunctionInfo - This class is derived from MachineFunctionInfo and contains private ARM-specific in...
This class is intended to be used as a driving class for all asm writers.
This is an important base class in LLVM.
A parsed version of the target data layout string in and methods for querying it.
Instances of this class represent a single low-level machine instruction.
Instances of this class represent operands of the MCInst class.
Generic base class for all target subtargets.
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
Abstract base class for all machine specific constantpool value subclasses.
The MachineConstantPool class keeps track of constants referenced by a function which must be spilled...
Representation of each machine instruction.
MachineOperand class - Representation of each machine instruction operand.
A Module instance is used to store all the information related to an LLVM module.
SmallPtrSet - This class implements a set which is optimized for holding SmallSize or less elements.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
StringRef - Represent a constant reference to a string, i.e.
Primary interface to the complete machine description for the target machine.
Triple - Helper class for working with autoconf configuration names.
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.