LLVM 20.0.0git
Mips.h
Go to the documentation of this file.
1//===-- Mips.h - Top-level interface for Mips representation ----*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file contains the entry points for global functions defined in
10// the LLVM Mips back-end.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef LLVM_LIB_TARGET_MIPS_MIPS_H
15#define LLVM_LIB_TARGET_MIPS_MIPS_H
16
19
20#define IsMFLOMFHI(instr) \
21 (instr == Mips::MFLO || instr == Mips::MFLO64 || instr == Mips::MFHI || \
22 instr == Mips::MFHI64)
23#define IsDIVMULT(instr) \
24 (instr == Mips::SDIV || instr == Mips::PseudoSDIV || instr == Mips::DSDIV || \
25 instr == Mips::PseudoDSDIV || instr == Mips::UDIV || \
26 instr == Mips::PseudoUDIV || instr == Mips::DUDIV || \
27 instr == Mips::PseudoDUDIV || instr == Mips::MULT || \
28 instr == Mips::PseudoMULT || instr == Mips::DMULT || \
29 instr == Mips::PseudoDMULT)
30
31namespace llvm {
32class FunctionPass;
33class InstructionSelector;
34class MipsRegisterBankInfo;
35class MipsSubtarget;
36class MipsTargetMachine;
37class MipsTargetMachine;
38class ModulePass;
39class PassRegistry;
40
41ModulePass *createMipsOs16Pass();
42ModulePass *createMips16HardFloatPass();
43
44FunctionPass *createMipsModuleISelDagPass();
45FunctionPass *createMipsOptimizePICCallPass();
46FunctionPass *createMipsDelaySlotFillerPass();
54
57 const MipsRegisterBankInfo &);
58
66} // namespace llvm
67
68#endif
FunctionPass class - This class is used to implement most global optimizations.
Definition: Pass.h:310
This class provides the information for the target register banks.
PassRegistry - This class manages the registration and intitialization of the pass subsystem as appli...
Definition: PassRegistry.h:37
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
FunctionPass * createMipsConstantIslandPass()
Returns a pass that converts branches to long branches.
void initializeMipsPreLegalizerCombinerPass(PassRegistry &)
void initializeMipsBranchExpansionPass(PassRegistry &)
void initializeMipsDelaySlotFillerPass(PassRegistry &)
void initializeMipsMulMulBugFixPass(PassRegistry &)
FunctionPass * createMipsOptimizePICCallPass()
Return an OptimizeCall object.
void initializeMipsDAGToDAGISelLegacyPass(PassRegistry &)
FunctionPass * createMipsModuleISelDagPass()
InstructionSelector * createMipsInstructionSelector(const MipsTargetMachine &, const MipsSubtarget &, const MipsRegisterBankInfo &)
FunctionPass * createMipsPreLegalizeCombiner()
void initializeMipsPostLegalizerCombinerPass(PassRegistry &)
FunctionPass * createMicroMipsSizeReducePass()
Returns an instance of the MicroMips size reduction pass.
FunctionPass * createMipsBranchExpansion()
FunctionPass * createMipsMulMulBugPass()
void initializeMicroMipsSizeReducePass(PassRegistry &)
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()
Definition: MipsOs16.cpp:160
FunctionPass * createMipsPostLegalizeCombiner(bool IsOptNone)