brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.7 KiB · 60d5114 Raw
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