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 {
21class FunctionPass;
22class InstructionSelector;
23class MipsRegisterBankInfo;
24class MipsSubtarget;
25class MipsTargetMachine;
26class MipsTargetMachine;
27class ModulePass;
28class PassRegistry;
29
30ModulePass *createMipsOs16Pass();
31ModulePass *createMips16HardFloatPass();
32
33FunctionPass *createMipsModuleISelDagPass();
34FunctionPass *createMipsOptimizePICCallPass();
35FunctionPass *createMipsDelaySlotFillerPass();
36FunctionPass *createMipsBranchExpansion();
37FunctionPass *createMipsConstantIslandPass();
38FunctionPass *createMicroMipsSizeReducePass();
39FunctionPass *createMipsExpandPseudoPass();
40FunctionPass *createMipsPreLegalizeCombiner();
41FunctionPass *createMipsPostLegalizeCombiner(bool IsOptNone);
42FunctionPass *createMipsMulMulBugPass();
43
44InstructionSelector *
45createMipsInstructionSelector(const MipsTargetMachine &, const MipsSubtarget &,
46 const MipsRegisterBankInfo &);
47
48void initializeMicroMipsSizeReducePass(PassRegistry &);
49void initializeMipsBranchExpansionPass(PassRegistry &);
50void initializeMipsDAGToDAGISelLegacyPass(PassRegistry &);
51void initializeMipsDelaySlotFillerPass(PassRegistry &);
52void initializeMipsMulMulBugFixPass(PassRegistry &);
53void initializeMipsPostLegalizerCombinerPass(PassRegistry &);
54void initializeMipsPreLegalizerCombinerPass(PassRegistry &);
55} // namespace llvm
56
57#endif
58