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 23namespace llvm { 24 25class AArch64TargetMachine; 26class FunctionPass; 27class MachineFunctionPass; 28 29FunctionPass *createAArch64DeadRegisterDefinitions(); 30FunctionPass *createAArch64ConditionalCompares(); 31FunctionPass *createAArch64AdvSIMDScalar(); 32FunctionPass *createAArch64BranchRelaxation(); 33FunctionPass *createAArch64ISelDag(AArch64TargetMachine &TM, 34 CodeGenOpt::Level OptLevel); 35FunctionPass *createAArch64StorePairSuppressPass(); 36FunctionPass *createAArch64ExpandPseudoPass(); 37FunctionPass *createAArch64LoadStoreOptimizationPass(); 38ModulePass *createAArch64PromoteConstantPass(); 39FunctionPass *createAArch64AddressTypePromotionPass(); 40FunctionPass *createAArch64A57FPLoadBalancing(); 41FunctionPass *createAArch64A53Fix835769(); 42/// \brief Creates an ARM-specific Target Transformation Info pass. 43ImmutablePass * 44createAArch64TargetTransformInfoPass(const AArch64TargetMachine *TM); 45 46FunctionPass *createAArch64CleanupLocalDynamicTLSPass(); 47 48FunctionPass *createAArch64CollectLOHPass(); 49} // end namespace llvm 50 51#endif 52