Go to the documentation of this file.
13 #ifndef LLVM_LIB_TARGET_MIPS_MIPSASMPRINTER_H
14 #define LLVM_LIB_TARGET_MIPS_MIPSASMPRINTER_H
29 class MCSubtargetInfo;
31 class MachineBasicBlock;
32 class MachineConstantPool;
33 class MachineFunction;
36 class MipsFunctionInfo;
37 class MipsTargetStreamer;
64 bool InConstantPool =
false;
66 std::map<const char *, const Mips16HardFloatInfo::FuncSignature *>
72 bool emitPseudoExpansionLowering(
MCStreamer &OutStreamer,
78 void emitPseudoIndirectBranch(
MCStreamer &OutStreamer,
84 void emitInlineAsmStart()
const override;
94 unsigned Reg1,
unsigned Reg2);
97 unsigned Reg1,
unsigned Reg2,
unsigned Reg3);
100 unsigned Reg1,
unsigned Reg2,
unsigned FPReg1,
101 unsigned FPReg2,
bool LE);
114 bool isLongBranchPseudo(
int Opcode)
const;
122 std::unique_ptr<MCStreamer> Streamer)
130 bool UsingConstantPools =
132 if (!UsingConstantPools)
138 void printSavedRegsBitmask();
139 void emitFrameDirective();
140 const char *getCurrentABIString()
const;
141 void emitFunctionEntryLabel()
override;
142 void emitFunctionBodyStart()
override;
143 void emitFunctionBodyEnd()
override;
145 bool isBlockOnlyReachableByFallthrough(
149 bool PrintAsmMemoryOperand(
const MachineInstr *
MI,
unsigned OpNum,
155 const char *Modifier =
nullptr);
157 void emitStartOfAsmFile(
Module &M)
override;
158 void emitEndOfAsmFile(
Module &M)
override;
160 void emitDebugValue(
const MCExpr *
Value,
unsigned Size)
const override;
165 #endif // LLVM_LIB_TARGET_MIPS_MIPSASMPRINTER_H
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 ...
Reg
All possible values of the reg field in the ModR/M byte.
const MipsFunctionInfo * MipsFI
static bool printOperand(raw_ostream &OS, const SelectionDAG *G, const SDValue Value)
MipsMCInstLower MCInstLowering
static bool useConstantIslands()
MipsFunctionInfo - This class is derived from MachineFunction private Mips target-specific informatio...
MipsAsmPrinter(TargetMachine &TM, std::unique_ptr< MCStreamer > Streamer)
Streaming machine code generation interface.
bool inMips16Mode() const
MachineOperand class - Representation of each machine instruction operand.
This class implements an extremely fast bulk output stream that can only output to a stream.
const MipsSubtarget * Subtarget
Representation of each machine instruction.
MipsMCInstLower - This class is used to lower an MachineInstr into an MCInst.
The MachineConstantPool class keeps track of constants referenced by a function which must be spilled...
static void printMemOperand(raw_ostream &OS, const MachineMemOperand &MMO, const MachineFunction *MF, const Module *M, const MachineFrameInfo *MFI, const TargetInstrInfo *TII, LLVMContext &Ctx)
Primary interface to the complete machine description for the target machine.
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
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.
Analysis the ScalarEvolution expression for r is this
#define LLVM_LIBRARY_VISIBILITY
LLVM_LIBRARY_VISIBILITY - If a class marked with this attribute is linked into a shared library,...
Machine Check Debug Module
This class is intended to be used as a driving class for all asm writers.
void emitConstantPool() override
Print to the current output stream assembly representations of the constants in the constant pool MCP...
const char LLVMTargetMachineRef TM
Instances of this class represent operands of the MCInst class.
Generic base class for all target subtargets.
LLVM Value Representation.
Base class for the full range of assembler expressions which are needed for parsing.
virtual void emitConstantPool()
Print to the current output stream assembly representations of the constants in the constant pool MCP...