70 lines · c
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-exception6//7//===----------------------------------------------------------------------===//8//9// This file contains the entry points for global functions defined in10// the LLVM Mips back-end.11//12//===----------------------------------------------------------------------===//13 14#ifndef LLVM_LIB_TARGET_MIPS_MIPS_H15#define LLVM_LIB_TARGET_MIPS_MIPS_H16 17#include "MCTargetDesc/MipsMCTargetDesc.h"18#include "llvm/Target/TargetMachine.h"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();47FunctionPass *createMipsBranchExpansion();48FunctionPass *createMipsConstantIslandPass();49FunctionPass *createMicroMipsSizeReducePass();50FunctionPass *createMipsExpandPseudoPass();51FunctionPass *createMipsPreLegalizeCombiner();52FunctionPass *createMipsPostLegalizeCombiner(bool IsOptNone);53FunctionPass *createMipsMulMulBugPass();54 55InstructionSelector *56createMipsInstructionSelector(const MipsTargetMachine &, const MipsSubtarget &,57 const MipsRegisterBankInfo &);58 59void initializeMicroMipsSizeReducePass(PassRegistry &);60void initializeMipsAsmPrinterPass(PassRegistry &);61void initializeMipsBranchExpansionPass(PassRegistry &);62void initializeMipsDAGToDAGISelLegacyPass(PassRegistry &);63void initializeMipsDelaySlotFillerPass(PassRegistry &);64void initializeMipsMulMulBugFixPass(PassRegistry &);65void initializeMipsPostLegalizerCombinerPass(PassRegistry &);66void initializeMipsPreLegalizerCombinerPass(PassRegistry &);67} // namespace llvm68 69#endif70