| Akira Hatanaka | e248912 | 2011-04-15 21:51:11 +0000 | [diff] [blame] | 1 | //===-- Mips.h - Top-level interface for Mips representation ----*- C++ -*-===// |
| Bruno Cardoso Lopes | 35e43c4 | 2007-06-06 07:42:06 +0000 | [diff] [blame] | 2 | // |
| Chandler Carruth | 2946cd7 | 2019-01-19 08:50:56 +0000 | [diff] [blame] | 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 |
| Bruno Cardoso Lopes | 35e43c4 | 2007-06-06 07:42:06 +0000 | [diff] [blame] | 6 | // |
| Akira Hatanaka | e248912 | 2011-04-15 21:51:11 +0000 | [diff] [blame] | 7 | //===----------------------------------------------------------------------===// |
| Bruno Cardoso Lopes | 35e43c4 | 2007-06-06 07:42:06 +0000 | [diff] [blame] | 8 | // |
| Bruno Cardoso Lopes | ed874ef | 2011-03-04 17:51:39 +0000 | [diff] [blame] | 9 | // This file contains the entry points for global functions defined in |
| Bruno Cardoso Lopes | 35e43c4 | 2007-06-06 07:42:06 +0000 | [diff] [blame] | 10 | // the LLVM Mips back-end. |
| 11 | // |
| Akira Hatanaka | e248912 | 2011-04-15 21:51:11 +0000 | [diff] [blame] | 12 | //===----------------------------------------------------------------------===// |
| Bruno Cardoso Lopes | 35e43c4 | 2007-06-06 07:42:06 +0000 | [diff] [blame] | 13 | |
| Benjamin Kramer | a7c40ef | 2014-08-13 16:26:38 +0000 | [diff] [blame] | 14 | #ifndef LLVM_LIB_TARGET_MIPS_MIPS_H |
| 15 | #define LLVM_LIB_TARGET_MIPS_MIPS_H |
| Bruno Cardoso Lopes | 35e43c4 | 2007-06-06 07:42:06 +0000 | [diff] [blame] | 16 | |
| Evan Cheng | bc153d4 | 2011-07-14 20:59:42 +0000 | [diff] [blame] | 17 | #include "MCTargetDesc/MipsMCTargetDesc.h" |
| Bill Wendling | 026e5d7 | 2009-04-29 23:29:43 +0000 | [diff] [blame] | 18 | #include "llvm/Target/TargetMachine.h" |
| 19 | |
| Bruno Cardoso Lopes | 35e43c4 | 2007-06-06 07:42:06 +0000 | [diff] [blame] | 20 | namespace llvm { |
| 21 | class MipsTargetMachine; |
| Vasileios Kalintiris | 6312f51 | 2015-03-14 08:34:25 +0000 | [diff] [blame] | 22 | class ModulePass; |
| Bruno Cardoso Lopes | 35e43c4 | 2007-06-06 07:42:06 +0000 | [diff] [blame] | 23 | class FunctionPass; |
| Petar Jovanovic | fac93e2 | 2018-02-23 11:06:40 +0000 | [diff] [blame] | 24 | class MipsRegisterBankInfo; |
| 25 | class MipsSubtarget; |
| 26 | class MipsTargetMachine; |
| 27 | class InstructionSelector; |
| Zoran Jovanovic | 3a7654c | 2018-06-13 12:51:37 +0000 | [diff] [blame] | 28 | class PassRegistry; |
| Bruno Cardoso Lopes | 35e43c4 | 2007-06-06 07:42:06 +0000 | [diff] [blame] | 29 | |
| Francis Visoiu Mistrih | 8b61764 | 2017-05-18 17:21:13 +0000 | [diff] [blame] | 30 | ModulePass *createMipsOs16Pass(); |
| 31 | ModulePass *createMips16HardFloatPass(); |
| Vasileios Kalintiris | 6312f51 | 2015-03-14 08:34:25 +0000 | [diff] [blame] | 32 | |
| Francis Visoiu Mistrih | 8b61764 | 2017-05-18 17:21:13 +0000 | [diff] [blame] | 33 | FunctionPass *createMipsModuleISelDagPass(); |
| 34 | FunctionPass *createMipsOptimizePICCallPass(); |
| 35 | FunctionPass *createMipsDelaySlotFillerPass(); |
| Aleksandar Beserminji | a5f7551 | 2018-05-22 13:24:38 +0000 | [diff] [blame] | 36 | FunctionPass *createMipsBranchExpansion(); |
| Rafael Espindola | 6f7c280 | 2016-06-28 14:26:39 +0000 | [diff] [blame] | 37 | FunctionPass *createMipsConstantIslandPass(); |
| Zoran Jovanovic | 3a7654c | 2018-06-13 12:51:37 +0000 | [diff] [blame] | 38 | FunctionPass *createMicroMipsSizeReducePass(); |
| Aleksandar Beserminji | 3239ba8 | 2018-07-05 09:27:05 +0000 | [diff] [blame] | 39 | FunctionPass *createMipsExpandPseudoPass(); |
| Petar Avramovic | 7d370a3 | 2019-01-14 10:27:05 +0000 | [diff] [blame] | 40 | FunctionPass *createMipsPreLegalizeCombiner(); |
| Petar Jovanovic | fac93e2 | 2018-02-23 11:06:40 +0000 | [diff] [blame] | 41 | |
| 42 | InstructionSelector *createMipsInstructionSelector(const MipsTargetMachine &, |
| 43 | MipsSubtarget &, |
| 44 | MipsRegisterBankInfo &); |
| Simon Dardis | ae20108 | 2018-05-11 16:13:53 +0000 | [diff] [blame] | 45 | |
| 46 | void initializeMipsDelaySlotFillerPass(PassRegistry &); |
| Aleksandar Beserminji | a5f7551 | 2018-05-22 13:24:38 +0000 | [diff] [blame] | 47 | void initializeMipsBranchExpansionPass(PassRegistry &); |
| Zoran Jovanovic | 3a7654c | 2018-06-13 12:51:37 +0000 | [diff] [blame] | 48 | void initializeMicroMipsSizeReducePass(PassRegistry &); |
| Petar Avramovic | 7d370a3 | 2019-01-14 10:27:05 +0000 | [diff] [blame] | 49 | void initializeMipsPreLegalizerCombinerPass(PassRegistry&); |
| Alexander Kornienko | f00654e | 2015-06-23 09:49:53 +0000 | [diff] [blame] | 50 | } // end namespace llvm; |
| Bruno Cardoso Lopes | 35e43c4 | 2007-06-06 07:42:06 +0000 | [diff] [blame] | 51 | |
| Bruno Cardoso Lopes | 35e43c4 | 2007-06-06 07:42:06 +0000 | [diff] [blame] | 52 | #endif |