1 //==-- AArch64.h - Top-level interface for AArch64 --------------*- C++ -*-==// 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 15 #ifndef TARGET_AArch64_H 16 #define TARGET_AArch64_H 17 18 #include "Utils/AArch64BaseInfo.h" 19 #include "MCTargetDesc/AArch64MCTargetDesc.h" 20 #include "llvm/Target/TargetMachine.h" 21 #include "llvm/Support/DataTypes.h" 22 23 namespace llvm { 24 25 class AArch64TargetMachine; 26 class FunctionPass; 27 class MachineFunctionPass; 28 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 FunctionPass *createAArch64A57FPLoadBalancing(); 41 FunctionPass *createAArch64A53Fix835769(); 42 /// \brief Creates an ARM-specific Target Transformation Info pass. 43 ImmutablePass * 44 createAArch64TargetTransformInfoPass(const AArch64TargetMachine *TM); 45 46 FunctionPass *createAArch64CleanupLocalDynamicTLSPass(); 47 48 FunctionPass *createAArch64CollectLOHPass(); 49 } // end namespace llvm 50 51 #endif 52