blob: f722388a5b16ae6f997d834cfd682fd4b71c3321 [file] [log] [blame]
Akira Hatanakae2489122011-04-15 21:51:11 +00001//===-- Mips.h - Top-level interface for Mips representation ----*- C++ -*-===//
Bruno Cardoso Lopes35e43c42007-06-06 07:42:06 +00002//
3// The LLVM Compiler Infrastructure
4//
Chris Lattnerf3ebc3f2007-12-29 20:36:04 +00005// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
Bruno Cardoso Lopes35e43c42007-06-06 07:42:06 +00007//
Akira Hatanakae2489122011-04-15 21:51:11 +00008//===----------------------------------------------------------------------===//
Bruno Cardoso Lopes35e43c42007-06-06 07:42:06 +00009//
Bruno Cardoso Lopesed874ef2011-03-04 17:51:39 +000010// This file contains the entry points for global functions defined in
Bruno Cardoso Lopes35e43c42007-06-06 07:42:06 +000011// the LLVM Mips back-end.
12//
Akira Hatanakae2489122011-04-15 21:51:11 +000013//===----------------------------------------------------------------------===//
Bruno Cardoso Lopes35e43c42007-06-06 07:42:06 +000014
Benjamin Kramera7c40ef2014-08-13 16:26:38 +000015#ifndef LLVM_LIB_TARGET_MIPS_MIPS_H
16#define LLVM_LIB_TARGET_MIPS_MIPS_H
Bruno Cardoso Lopes35e43c42007-06-06 07:42:06 +000017
Evan Chengbc153d42011-07-14 20:59:42 +000018#include "MCTargetDesc/MipsMCTargetDesc.h"
Bill Wendling026e5d72009-04-29 23:29:43 +000019#include "llvm/Target/TargetMachine.h"
20
Bruno Cardoso Lopes35e43c42007-06-06 07:42:06 +000021namespace llvm {
22 class MipsTargetMachine;
Vasileios Kalintiris6312f512015-03-14 08:34:25 +000023 class ModulePass;
Bruno Cardoso Lopes35e43c42007-06-06 07:42:06 +000024 class FunctionPass;
Petar Jovanovicfac93e22018-02-23 11:06:40 +000025 class MipsRegisterBankInfo;
26 class MipsSubtarget;
27 class MipsTargetMachine;
28 class InstructionSelector;
Bruno Cardoso Lopes35e43c42007-06-06 07:42:06 +000029
Francis Visoiu Mistrih8b617642017-05-18 17:21:13 +000030 ModulePass *createMipsOs16Pass();
31 ModulePass *createMips16HardFloatPass();
Vasileios Kalintiris6312f512015-03-14 08:34:25 +000032
Francis Visoiu Mistrih8b617642017-05-18 17:21:13 +000033 FunctionPass *createMipsModuleISelDagPass();
34 FunctionPass *createMipsOptimizePICCallPass();
35 FunctionPass *createMipsDelaySlotFillerPass();
Chad Rosier7a21bb12016-03-14 18:10:20 +000036 FunctionPass *createMipsHazardSchedule();
Francis Visoiu Mistrih8b617642017-05-18 17:21:13 +000037 FunctionPass *createMipsLongBranchPass();
Rafael Espindola6f7c2802016-06-28 14:26:39 +000038 FunctionPass *createMipsConstantIslandPass();
Zoran Jovanovicffef3e32017-04-27 13:10:48 +000039 FunctionPass *createMicroMipsSizeReductionPass();
Petar Jovanovicfac93e22018-02-23 11:06:40 +000040
41 InstructionSelector *createMipsInstructionSelector(const MipsTargetMachine &,
42 MipsSubtarget &,
43 MipsRegisterBankInfo &);
Alexander Kornienkof00654e2015-06-23 09:49:53 +000044} // end namespace llvm;
Bruno Cardoso Lopes35e43c42007-06-06 07:42:06 +000045
Bruno Cardoso Lopes35e43c42007-06-06 07:42:06 +000046#endif