Home | History | Annotate | Download | only in AArch64
      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