14#ifndef LLVM_LIB_TARGET_MIPS_MIPS_H
15#define LLVM_LIB_TARGET_MIPS_MIPS_H
22#define IsMFLOMFHI(instr) \
23 (instr == Mips::MFLO || instr == Mips::MFLO64 || instr == Mips::MFHI || \
24 instr == Mips::MFHI64)
25#define IsDIVMULT(instr) \
26 (instr == Mips::SDIV || instr == Mips::PseudoSDIV || instr == Mips::DSDIV || \
27 instr == Mips::PseudoDSDIV || instr == Mips::UDIV || \
28 instr == Mips::PseudoUDIV || instr == Mips::DUDIV || \
29 instr == Mips::PseudoDUDIV || instr == Mips::MULT || \
30 instr == Mips::PseudoMULT || instr == Mips::DMULT || \
31 instr == Mips::PseudoDMULT)
35class InstructionSelector;
36class MipsRegisterBankInfo;
38class MipsTargetMachine;
39class MipsTargetMachine;
50 auto PassName = MapClassName2PassName(ClassName);
56 CodeGenOptLevel OptLevel);
67 auto PassName = MapClassName2PassName(ClassName);
73 CodeGenOptLevel OptLevel);
static const char PassName[]
FunctionPass class - This class is used to implement most global optimizations.
void printPipeline(raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName)
Mips16ISelDAGPass(MipsTargetMachine &TM, CodeGenOptLevel OptLevel)
This class provides the information for the target register banks.
MipsSEISelDAGPass(MipsTargetMachine &TM, CodeGenOptLevel OptLevel)
void printPipeline(raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName)
PassRegistry - This class manages the registration and intitialization of the pass subsystem as appli...
SelectionDAGISelPass(std::unique_ptr< SelectionDAGISel > Selector)
Represent a constant reference to a string, i.e.
An efficient, type-erasing, non-owning reference to a callable.
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.
FunctionPass * createMipsPreLegalizeCombiner()
FunctionPass * createMipsSEISelDAGLegacyPass(MipsTargetMachine &TM, CodeGenOptLevel OptLevel)
FunctionPass * createMipsConstantIslandPass()
Returns a pass that converts branches to long branches.
void initializeMipsPreLegalizerCombinerPass(PassRegistry &)
void initializeMipsBranchExpansionPass(PassRegistry &)
void initializeMipsDelaySlotFillerPass(PassRegistry &)
void initializeMipsAsmPrinterPass(PassRegistry &)
void initializeMipsMulMulBugFixPass(PassRegistry &)
FunctionPass * createMipsOptimizePICCallPass()
Return an OptimizeCall object.
void initializeMipsDAGToDAGISelLegacyPass(PassRegistry &)
InstructionSelector * createMipsInstructionSelector(const MipsTargetMachine &, const MipsSubtarget &, const MipsRegisterBankInfo &)
FunctionPass * createMips16ISelDAGLegacyPass(MipsTargetMachine &TM, CodeGenOptLevel OptLevel)
void initializeMipsPostLegalizerCombinerPass(PassRegistry &)
FunctionPass * createMicroMipsSizeReducePass()
Returns an instance of the MicroMips size reduction pass.
CodeGenOptLevel
Code generation optimization level.
FunctionPass * createMipsBranchExpansion()
FunctionPass * createMipsMulMulBugPass()
void initializeMicroMipsSizeReducePass(PassRegistry &)
FunctionPass * createMipsPostLegalizeCombiner(bool IsOptNone)
ModulePass * createMips16HardFloatPass()
FunctionPass * createMipsExpandPseudoPass()
createMipsExpandPseudoPass - returns an instance of the pseudo instruction expansion pass.
FunctionPass * createMipsDelaySlotFillerPass()
createMipsDelaySlotFillerPass - Returns a pass that fills in delay slots in Mips MachineFunctions
ModulePass * createMipsOs16Pass()