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 17 #include "MCTargetDesc/MipsMCTargetDesc.h" 18 #include "llvm/Target/TargetMachine.h" 19 20 namespace llvm { 21 class MipsTargetMachine; 22 class ModulePass; 23 class FunctionPass; 24 class MipsRegisterBankInfo; 25 class MipsSubtarget; 26 class MipsTargetMachine; 27 class InstructionSelector; 28 class PassRegistry; 29 30 ModulePass *createMipsOs16Pass(); 31 ModulePass *createMips16HardFloatPass(); 32 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 *createMipsMulMulBugPass(); 42 43 InstructionSelector *createMipsInstructionSelector(const MipsTargetMachine &, 44 MipsSubtarget &, 45 MipsRegisterBankInfo &); 46 47 void initializeMipsDelaySlotFillerPass(PassRegistry &); 48 void initializeMipsBranchExpansionPass(PassRegistry &); 49 void initializeMicroMipsSizeReducePass(PassRegistry &); 50 void initializeMipsPreLegalizerCombinerPass(PassRegistry&); 51 void initializeMipsMulMulBugFixPass(PassRegistry&); 52 } // end namespace llvm; 53 54 #endif 55