1 | //==-- AArch64.h - Top-level interface for AArch64 --------------*- C++ -*-==// |
---|---|
2 | // |
3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 | // See https://llvm.org/LICENSE.txt for license information. |
5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 | // |
7 | //===----------------------------------------------------------------------===// |
8 | // |
9 | // This file contains the entry points for global functions defined in the LLVM |
10 | // AArch64 back-end. |
11 | // |
12 | //===----------------------------------------------------------------------===// |
13 | |
14 | #ifndef LLVM_LIB_TARGET_AARCH64_AARCH64_H |
15 | #define LLVM_LIB_TARGET_AARCH64_AARCH64_H |
16 | |
17 | #include "MCTargetDesc/AArch64MCTargetDesc.h" |
18 | #include "Utils/AArch64BaseInfo.h" |
19 | #include "llvm/Pass.h" |
20 | #include "llvm/PassRegistry.h" |
21 | #include "llvm/Support/DataTypes.h" |
22 | #include "llvm/Target/TargetMachine.h" |
23 | |
24 | namespace llvm { |
25 | |
26 | class AArch64RegisterBankInfo; |
27 | class AArch64Subtarget; |
28 | class AArch64TargetMachine; |
29 | class FunctionPass; |
30 | class InstructionSelector; |
31 | |
32 | FunctionPass *createAArch64DeadRegisterDefinitions(); |
33 | FunctionPass *createAArch64RedundantCopyEliminationPass(); |
34 | FunctionPass *createAArch64CondBrTuning(); |
35 | FunctionPass *createAArch64CompressJumpTablesPass(); |
36 | FunctionPass *createAArch64ConditionalCompares(); |
37 | FunctionPass *createAArch64AdvSIMDScalar(); |
38 | FunctionPass *createAArch64ISelDag(AArch64TargetMachine &TM, |
39 | CodeGenOptLevel OptLevel); |
40 | FunctionPass *createAArch64StorePairSuppressPass(); |
41 | FunctionPass *createAArch64ExpandPseudoPass(); |
42 | FunctionPass *createAArch64SLSHardeningPass(); |
43 | FunctionPass *createAArch64SpeculationHardeningPass(); |
44 | FunctionPass *createAArch64LoadStoreOptimizationPass(); |
45 | ModulePass *createAArch64LowerHomogeneousPrologEpilogPass(); |
46 | FunctionPass *createAArch64SIMDInstrOptPass(); |
47 | ModulePass *createAArch64PromoteConstantPass(); |
48 | FunctionPass *createAArch64ConditionOptimizerPass(); |
49 | FunctionPass *createAArch64A57FPLoadBalancing(); |
50 | FunctionPass *createAArch64A53Fix835769(); |
51 | FunctionPass *createFalkorHWPFFixPass(); |
52 | FunctionPass *createFalkorMarkStridedAccessesPass(); |
53 | FunctionPass *createAArch64PointerAuthPass(); |
54 | FunctionPass *createAArch64BranchTargetsPass(); |
55 | FunctionPass *createAArch64MIPeepholeOptPass(); |
56 | FunctionPass *createAArch64PostCoalescerPass(); |
57 | |
58 | FunctionPass *createAArch64CleanupLocalDynamicTLSPass(); |
59 | |
60 | FunctionPass *createAArch64CollectLOHPass(); |
61 | FunctionPass *createSMEABIPass(); |
62 | ModulePass *createSVEIntrinsicOptsPass(); |
63 | InstructionSelector * |
64 | createAArch64InstructionSelector(const AArch64TargetMachine &, |
65 | const AArch64Subtarget &, |
66 | const AArch64RegisterBankInfo &); |
67 | FunctionPass *createAArch64O0PreLegalizerCombiner(); |
68 | FunctionPass *createAArch64PreLegalizerCombiner(); |
69 | FunctionPass *createAArch64PostLegalizerCombiner(bool IsOptNone); |
70 | FunctionPass *createAArch64PostLegalizerLowering(); |
71 | FunctionPass *createAArch64PostSelectOptimize(); |
72 | FunctionPass *createAArch64StackTaggingPass(bool IsOptNone); |
73 | FunctionPass *createAArch64StackTaggingPreRAPass(); |
74 | ModulePass *createAArch64GlobalsTaggingPass(); |
75 | ModulePass *createAArch64Arm64ECCallLoweringPass(); |
76 | |
77 | void initializeAArch64A53Fix835769Pass(PassRegistry&); |
78 | void initializeAArch64A57FPLoadBalancingPass(PassRegistry&); |
79 | void initializeAArch64AdvSIMDScalarPass(PassRegistry&); |
80 | void initializeAArch64PointerAuthPass(PassRegistry&); |
81 | void initializeAArch64BranchTargetsPass(PassRegistry&); |
82 | void initializeAArch64CFIFixupPass(PassRegistry&); |
83 | void initializeAArch64CollectLOHPass(PassRegistry &); |
84 | void initializeAArch64CompressJumpTablesPass(PassRegistry&); |
85 | void initializeAArch64CondBrTuningPass(PassRegistry &); |
86 | void initializeAArch64ConditionOptimizerPass(PassRegistry&); |
87 | void initializeAArch64ConditionalComparesPass(PassRegistry &); |
88 | void initializeAArch64DAGToDAGISelLegacyPass(PassRegistry &); |
89 | void initializeAArch64DeadRegisterDefinitionsPass(PassRegistry&); |
90 | void initializeAArch64ExpandPseudoPass(PassRegistry &); |
91 | void initializeAArch64GlobalsTaggingPass(PassRegistry &); |
92 | void initializeAArch64LoadStoreOptPass(PassRegistry&); |
93 | void initializeAArch64LowerHomogeneousPrologEpilogPass(PassRegistry &); |
94 | void initializeAArch64MIPeepholeOptPass(PassRegistry &); |
95 | void initializeAArch64O0PreLegalizerCombinerPass(PassRegistry &); |
96 | void initializeAArch64PostCoalescerPass(PassRegistry &); |
97 | void initializeAArch64PostLegalizerCombinerPass(PassRegistry &); |
98 | void initializeAArch64PostLegalizerLoweringPass(PassRegistry &); |
99 | void initializeAArch64PostSelectOptimizePass(PassRegistry &); |
100 | void initializeAArch64PreLegalizerCombinerPass(PassRegistry &); |
101 | void initializeAArch64PromoteConstantPass(PassRegistry&); |
102 | void initializeAArch64RedundantCopyEliminationPass(PassRegistry&); |
103 | void initializeAArch64SIMDInstrOptPass(PassRegistry &); |
104 | void initializeAArch64SLSHardeningPass(PassRegistry &); |
105 | void initializeAArch64SpeculationHardeningPass(PassRegistry &); |
106 | void initializeAArch64StackTaggingPass(PassRegistry &); |
107 | void initializeAArch64StackTaggingPreRAPass(PassRegistry &); |
108 | void initializeAArch64StorePairSuppressPass(PassRegistry&); |
109 | void initializeFalkorHWPFFixPass(PassRegistry&); |
110 | void initializeFalkorMarkStridedAccessesLegacyPass(PassRegistry&); |
111 | void initializeLDTLSCleanupPass(PassRegistry&); |
112 | void initializeSMEABIPass(PassRegistry &); |
113 | void initializeSVEIntrinsicOptsPass(PassRegistry &); |
114 | void initializeAArch64Arm64ECCallLoweringPass(PassRegistry &); |
115 | } // end namespace llvm |
116 | |
117 | #endif |
118 |