LLVM API Documentation
00001 //==-- AArch64.h - Top-level interface for AArch64 --------------*- C++ -*-==// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file is distributed under the University of Illinois Open Source 00006 // License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 // 00010 // This file contains the entry points for global functions defined in the LLVM 00011 // AArch64 back-end. 00012 // 00013 //===----------------------------------------------------------------------===// 00014 00015 #ifndef LLVM_LIB_TARGET_AARCH64_AARCH64_H 00016 #define LLVM_LIB_TARGET_AARCH64_AARCH64_H 00017 00018 #include "MCTargetDesc/AArch64MCTargetDesc.h" 00019 #include "Utils/AArch64BaseInfo.h" 00020 #include "llvm/Support/DataTypes.h" 00021 #include "llvm/Target/TargetMachine.h" 00022 00023 namespace llvm { 00024 00025 class AArch64TargetMachine; 00026 class FunctionPass; 00027 class MachineFunctionPass; 00028 00029 FunctionPass *createAArch64DeadRegisterDefinitions(); 00030 FunctionPass *createAArch64ConditionalCompares(); 00031 FunctionPass *createAArch64AdvSIMDScalar(); 00032 FunctionPass *createAArch64BranchRelaxation(); 00033 FunctionPass *createAArch64ISelDag(AArch64TargetMachine &TM, 00034 CodeGenOpt::Level OptLevel); 00035 FunctionPass *createAArch64StorePairSuppressPass(); 00036 FunctionPass *createAArch64ExpandPseudoPass(); 00037 FunctionPass *createAArch64LoadStoreOptimizationPass(); 00038 ModulePass *createAArch64PromoteConstantPass(); 00039 FunctionPass *createAArch64ConditionOptimizerPass(); 00040 FunctionPass *createAArch64AddressTypePromotionPass(); 00041 FunctionPass *createAArch64A57FPLoadBalancing(); 00042 FunctionPass *createAArch64A57PBQPRegAlloc(); 00043 /// \brief Creates an ARM-specific Target Transformation Info pass. 00044 ImmutablePass * 00045 createAArch64TargetTransformInfoPass(const AArch64TargetMachine *TM); 00046 00047 FunctionPass *createAArch64CleanupLocalDynamicTLSPass(); 00048 00049 FunctionPass *createAArch64CollectLOHPass(); 00050 } // end namespace llvm 00051 00052 #endif