1 //===-- Mips.h - Top-level interface for Mips representation ----*- C++ -*-===//
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
7 //===----------------------------------------------------------------------===//
9 // This file contains the entry points for global functions defined in
10 // the LLVM Mips back-end.
12 //===----------------------------------------------------------------------===//
14 #ifndef LLVM_LIB_TARGET_MIPS_MIPS_H
15 #define LLVM_LIB_TARGET_MIPS_MIPS_H
17 #include "MCTargetDesc/MipsMCTargetDesc.h"
18 #include "llvm/Target/TargetMachine.h"
22 class InstructionSelector
;
23 class MipsRegisterBankInfo
;
25 class MipsTargetMachine
;
26 class MipsTargetMachine
;
30 ModulePass
*createMipsOs16Pass();
31 ModulePass
*createMips16HardFloatPass();
33 FunctionPass
*createMipsModuleISelDagPass();
34 FunctionPass
*createMipsOptimizePICCallPass();
35 FunctionPass
*createMipsDelaySlotFillerPass();
36 FunctionPass
*createMipsBranchExpansion();
37 FunctionPass
*createMipsConstantIslandPass();
38 FunctionPass
*createMicroMipsSizeReducePass();
39 FunctionPass
*createMipsExpandPseudoPass();
40 FunctionPass
*createMipsPreLegalizeCombiner();
41 FunctionPass
*createMipsPostLegalizeCombiner(bool IsOptNone
);
42 FunctionPass
*createMipsMulMulBugPass();
45 createMipsInstructionSelector(const MipsTargetMachine
&, const MipsSubtarget
&,
46 const MipsRegisterBankInfo
&);
48 void initializeMicroMipsSizeReducePass(PassRegistry
&);
49 void initializeMipsBranchExpansionPass(PassRegistry
&);
50 void initializeMipsDAGToDAGISelLegacyPass(PassRegistry
&);
51 void initializeMipsDelaySlotFillerPass(PassRegistry
&);
52 void initializeMipsMulMulBugFixPass(PassRegistry
&);
53 void initializeMipsPostLegalizerCombinerPass(PassRegistry
&);
54 void initializeMipsPreLegalizerCombinerPass(PassRegistry
&);