AArch64.h revision 8a1773694c6d9b1277647440583811ad3d85c6a4
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