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
20namespace 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
42  InstructionSelector *createMipsInstructionSelector(const MipsTargetMachine &,
43                                                     MipsSubtarget &,
44                                                     MipsRegisterBankInfo &);
45
46  void initializeMipsDelaySlotFillerPass(PassRegistry &);
47  void initializeMipsBranchExpansionPass(PassRegistry &);
48  void initializeMicroMipsSizeReducePass(PassRegistry &);
49  void initializeMipsPreLegalizerCombinerPass(PassRegistry&);
50} // end namespace llvm;
51
52#endif
53