]> git.proxmox.com Git - rustc.git/blame - src/llvm/lib/Target/AArch64/AArch64.h
Imported Upstream version 1.0.0+dfsg1
[rustc.git] / src / llvm / lib / Target / AArch64 / AArch64.h
CommitLineData
1a4d82fc 1//==-- AArch64.h - Top-level interface for AArch64 --------------*- C++ -*-==//
970d7e83
LB
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
1a4d82fc
JJ
15#ifndef LLVM_LIB_TARGET_AARCH64_AARCH64_H
16#define LLVM_LIB_TARGET_AARCH64_AARCH64_H
970d7e83
LB
17
18#include "MCTargetDesc/AArch64MCTargetDesc.h"
1a4d82fc
JJ
19#include "Utils/AArch64BaseInfo.h"
20#include "llvm/Support/DataTypes.h"
970d7e83
LB
21#include "llvm/Target/TargetMachine.h"
22
23namespace llvm {
24
970d7e83 25class AArch64TargetMachine;
1a4d82fc
JJ
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 *createAArch64ConditionOptimizerPass();
40FunctionPass *createAArch64AddressTypePromotionPass();
41FunctionPass *createAArch64A57FPLoadBalancing();
85aaf69f 42FunctionPass *createAArch64A53Fix835769();
1a4d82fc
JJ
43/// \brief Creates an ARM-specific Target Transformation Info pass.
44ImmutablePass *
45createAArch64TargetTransformInfoPass(const AArch64TargetMachine *TM);
970d7e83
LB
46
47FunctionPass *createAArch64CleanupLocalDynamicTLSPass();
48
1a4d82fc
JJ
49FunctionPass *createAArch64CollectLOHPass();
50} // end namespace llvm
970d7e83
LB
51
52#endif