14#ifndef LLVM_LIB_TARGET_MIPS_MIPS_H
15#define LLVM_LIB_TARGET_MIPS_MIPS_H
26#define IsMFLOMFHI(instr) \
27 (instr == Mips::MFLO || instr == Mips::MFLO64 || instr == Mips::MFHI || \
28 instr == Mips::MFHI64)
29#define IsDIVMULT(instr) \
30 (instr == Mips::SDIV || instr == Mips::PseudoSDIV || instr == Mips::DSDIV || \
31 instr == Mips::PseudoDSDIV || instr == Mips::UDIV || \
32 instr == Mips::PseudoUDIV || instr == Mips::DUDIV || \
33 instr == Mips::PseudoDUDIV || instr == Mips::MULT || \
34 instr == Mips::PseudoMULT || instr == Mips::DMULT || \
35 instr == Mips::PseudoDMULT)
39class InstructionSelector;
40class MipsRegisterBankInfo;
42class MipsTargetMachine;
43class MipsTargetMachine;
54 auto PassName = MapClassName2PassName(ClassName);
60 CodeGenOptLevel OptLevel);
86 auto PassName = MapClassName2PassName(ClassName);
92 CodeGenOptLevel OptLevel);
This header defines various interfaces for pass management in LLVM.
ModuleAnalysisManager MAM
static const char PassName[]
FunctionPass class - This class is used to implement most global optimizations.
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
Mips16HardFloatPass(MipsTargetMachine &TM)
PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM)
void printPipeline(raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName)
Mips16ISelDAGPass(MipsTargetMachine &TM, CodeGenOptLevel OptLevel)
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM)
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)
ModulePass class - This class is used to implement unstructured interprocedural optimizations and ana...
A Module instance is used to store all the information related to an LLVM module.
PassRegistry - This class manages the registration and intitialization of the pass subsystem as appli...
A set of analyses that are preserved following a run of a transformation pass.
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.
Pass manager infrastructure for declaring and invalidating analyses.
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 initializeMicroMipsSizeReduceLegacyPass(PassRegistry &)
AnalysisManager< MachineFunction > MachineFunctionAnalysisManager
void initializeMipsDAGToDAGISelLegacyPass(PassRegistry &)
FunctionPass * createMipsExpandPseudoLegacyPass()
createMipsExpandPseudoPass - returns an instance of the pseudo instruction expansion pass.
InstructionSelector * createMipsInstructionSelector(const MipsTargetMachine &, const MipsSubtarget &, const MipsRegisterBankInfo &)
ModulePass * createMipsOs16LegacyPass()
FunctionPass * createMips16ISelDAGLegacyPass(MipsTargetMachine &TM, CodeGenOptLevel OptLevel)
void initializeMipsMulMulBugFixLegacyPass(PassRegistry &)
FunctionPass * createMipsOptimizePICCallLegacyPass()
Return an OptimizeCall object.
void initializeMipsPostLegalizerCombinerPass(PassRegistry &)
CodeGenOptLevel
Code generation optimization level.
FunctionPass * createMipsBranchExpansion()
ModulePass * createMips16HardFloatLegacyPass()
FunctionPass * createMipsPostLegalizeCombiner(bool IsOptNone)
FunctionPass * createMicroMipsSizeReduceLegacyPass()
Returns an instance of the MicroMips size reduction pass.
FunctionPass * createMipsDelaySlotFillerPass()
createMipsDelaySlotFillerPass - Returns a pass that fills in delay slots in Mips MachineFunctions
FunctionPass * createMipsMulMulBugFixLegacyPass()
AnalysisManager< Module > ModuleAnalysisManager
Convenience typedef for the Module analysis manager.
A CRTP mix-in for passes that should not be skipped.