| Stephen Hines | dce4a40 | 2014-05-29 02:49:00 -0700 | [diff] [blame^] | 1 | //==-- AArch64.h - Top-level interface for AArch64  --------------*- C++ -*-==// | 
| Tim Northover | 72062f5 | 2013-01-31 12:12:40 +0000 | [diff] [blame] | 2 | // | 
 | 3 | //                     The LLVM Compiler Infrastructure | 
 | 4 | // | 
 | 5 | // This file is distributed under the University of Illinois Open Source | 
 | 6 | // License. See LICENSE.TXT for details. | 
 | 7 | // | 
 | 8 | //===----------------------------------------------------------------------===// | 
 | 9 | // | 
 | 10 | // This file contains the entry points for global functions defined in the LLVM | 
 | 11 | // AArch64 back-end. | 
 | 12 | // | 
 | 13 | //===----------------------------------------------------------------------===// | 
 | 14 |  | 
| Stephen Hines | dce4a40 | 2014-05-29 02:49:00 -0700 | [diff] [blame^] | 15 | #ifndef TARGET_AArch64_H | 
 | 16 | #define TARGET_AArch64_H | 
| Tim Northover | 72062f5 | 2013-01-31 12:12:40 +0000 | [diff] [blame] | 17 |  | 
| Stephen Hines | dce4a40 | 2014-05-29 02:49:00 -0700 | [diff] [blame^] | 18 | #include "Utils/AArch64BaseInfo.h" | 
| Tim Northover | 72062f5 | 2013-01-31 12:12:40 +0000 | [diff] [blame] | 19 | #include "MCTargetDesc/AArch64MCTargetDesc.h" | 
 | 20 | #include "llvm/Target/TargetMachine.h" | 
| Stephen Hines | dce4a40 | 2014-05-29 02:49:00 -0700 | [diff] [blame^] | 21 | #include "llvm/Support/DataTypes.h" | 
| Tim Northover | 72062f5 | 2013-01-31 12:12:40 +0000 | [diff] [blame] | 22 |  | 
 | 23 | namespace llvm { | 
 | 24 |  | 
| Tim Northover | 72062f5 | 2013-01-31 12:12:40 +0000 | [diff] [blame] | 25 | class AArch64TargetMachine; | 
| Stephen Hines | dce4a40 | 2014-05-29 02:49:00 -0700 | [diff] [blame^] | 26 | class FunctionPass; | 
 | 27 | class MachineFunctionPass; | 
| Tim Northover | 72062f5 | 2013-01-31 12:12:40 +0000 | [diff] [blame] | 28 |  | 
| Stephen Hines | dce4a40 | 2014-05-29 02:49:00 -0700 | [diff] [blame^] | 29 | FunctionPass *createAArch64DeadRegisterDefinitions(); | 
 | 30 | FunctionPass *createAArch64ConditionalCompares(); | 
 | 31 | FunctionPass *createAArch64AdvSIMDScalar(); | 
 | 32 | FunctionPass *createAArch64BranchRelaxation(); | 
 | 33 | FunctionPass *createAArch64ISelDag(AArch64TargetMachine &TM, | 
 | 34 |                                  CodeGenOpt::Level OptLevel); | 
 | 35 | FunctionPass *createAArch64StorePairSuppressPass(); | 
 | 36 | FunctionPass *createAArch64ExpandPseudoPass(); | 
 | 37 | FunctionPass *createAArch64LoadStoreOptimizationPass(); | 
 | 38 | ModulePass *createAArch64PromoteConstantPass(); | 
 | 39 | FunctionPass *createAArch64AddressTypePromotionPass(); | 
 | 40 | /// \brief Creates an ARM-specific Target Transformation Info pass. | 
 | 41 | ImmutablePass * | 
 | 42 | createAArch64TargetTransformInfoPass(const AArch64TargetMachine *TM); | 
| Tim Northover | 72062f5 | 2013-01-31 12:12:40 +0000 | [diff] [blame] | 43 |  | 
| Tim Northover | 72062f5 | 2013-01-31 12:12:40 +0000 | [diff] [blame] | 44 | FunctionPass *createAArch64CleanupLocalDynamicTLSPass(); | 
 | 45 |  | 
| Stephen Hines | dce4a40 | 2014-05-29 02:49:00 -0700 | [diff] [blame^] | 46 | FunctionPass *createAArch64CollectLOHPass(); | 
 | 47 | } // end namespace llvm | 
| Tim Northover | 72062f5 | 2013-01-31 12:12:40 +0000 | [diff] [blame] | 48 |  | 
 | 49 | #endif |