1 | //=-- Hexagon.h - Top-level interface for Hexagon representation --*- 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 | // Hexagon back-end. |
11 | // |
12 | //===----------------------------------------------------------------------===// |
13 | |
14 | #ifndef LLVM_LIB_TARGET_HEXAGON_HEXAGON_H |
15 | #define LLVM_LIB_TARGET_HEXAGON_HEXAGON_H |
16 | |
17 | #include "llvm/Support/CodeGen.h" |
18 | |
19 | namespace llvm { |
20 | class HexagonTargetMachine; |
21 | class ImmutablePass; |
22 | class PassRegistry; |
23 | class FunctionPass; |
24 | class Pass; |
25 | |
26 | extern char &HexagonCopyHoistingID; |
27 | extern char &HexagonExpandCondsetsID; |
28 | extern char &HexagonTfrCleanupID; |
29 | void initializeHexagonAsmPrinterPass(PassRegistry &); |
30 | void initializeHexagonBitSimplifyPass(PassRegistry &); |
31 | void initializeHexagonBranchRelaxationPass(PassRegistry &); |
32 | void initializeHexagonCFGOptimizerPass(PassRegistry &); |
33 | void initializeHexagonCommonGEPPass(PassRegistry &); |
34 | void initializeHexagonCopyHoistingPass(PassRegistry &); |
35 | void initializeHexagonConstExtendersPass(PassRegistry &); |
36 | void initializeHexagonConstPropagationPass(PassRegistry &); |
37 | void initializeHexagonCopyToCombinePass(PassRegistry &); |
38 | void initializeHexagonDAGToDAGISelLegacyPass(PassRegistry &); |
39 | void initializeHexagonEarlyIfConversionPass(PassRegistry &); |
40 | void initializeHexagonExpandCondsetsPass(PassRegistry &); |
41 | void initializeHexagonGenMemAbsolutePass(PassRegistry &); |
42 | void initializeHexagonGenMuxPass(PassRegistry &); |
43 | void initializeHexagonHardwareLoopsPass(PassRegistry &); |
44 | void initializeHexagonLoopIdiomRecognizeLegacyPassPass(PassRegistry &); |
45 | void initializeHexagonLoopAlignPass(PassRegistry &); |
46 | void initializeHexagonLoopReschedulingPass(PassRegistry &); |
47 | void initializeHexagonMaskPass(PassRegistry &); |
48 | void initializeHexagonMergeActivateWeightPass(PassRegistry &); |
49 | void initializeHexagonNewValueJumpPass(PassRegistry &); |
50 | void initializeHexagonOptAddrModePass(PassRegistry &); |
51 | void initializeHexagonPacketizerPass(PassRegistry &); |
52 | void initializeHexagonRDFOptPass(PassRegistry &); |
53 | void initializeHexagonSplitDoubleRegsPass(PassRegistry &); |
54 | void initializeHexagonTfrCleanupPass(PassRegistry &); |
55 | void initializeHexagonVExtractPass(PassRegistry &); |
56 | void initializeHexagonVectorCombineLegacyPass(PassRegistry &); |
57 | void initializeHexagonVectorLoopCarriedReuseLegacyPassPass(PassRegistry &); |
58 | void initializeHexagonFixupHwLoopsPass(PassRegistry &); |
59 | void initializeHexagonCallFrameInformationPass(PassRegistry &); |
60 | void initializeHexagonGenExtractPass(PassRegistry &); |
61 | void initializeHexagonGenInsertPass(PassRegistry &); |
62 | void initializeHexagonGenPredicatePass(PassRegistry &); |
63 | void initializeHexagonLoadWideningPass(PassRegistry &); |
64 | void initializeHexagonStoreWideningPass(PassRegistry &); |
65 | void initializeHexagonOptimizeSZextendsPass(PassRegistry &); |
66 | void initializeHexagonPeepholePass(PassRegistry &); |
67 | void initializeHexagonSplitConst32AndConst64Pass(PassRegistry &); |
68 | void initializeHexagonVectorPrintPass(PassRegistry &); |
69 | |
70 | Pass *createHexagonLoopIdiomPass(); |
71 | Pass *createHexagonVectorLoopCarriedReuseLegacyPass(); |
72 | |
73 | /// Creates a Hexagon-specific Target Transformation Info pass. |
74 | ImmutablePass * |
75 | createHexagonTargetTransformInfoPass(const HexagonTargetMachine *TM); |
76 | |
77 | FunctionPass *createHexagonBitSimplify(); |
78 | FunctionPass *createHexagonBranchRelaxation(); |
79 | FunctionPass *createHexagonCallFrameInformation(); |
80 | FunctionPass *createHexagonCFGOptimizer(); |
81 | FunctionPass *createHexagonCommonGEP(); |
82 | FunctionPass *createHexagonConstExtenders(); |
83 | FunctionPass *createHexagonConstPropagationPass(); |
84 | FunctionPass *createHexagonCopyHoisting(); |
85 | FunctionPass *createHexagonCopyToCombine(); |
86 | FunctionPass *createHexagonEarlyIfConversion(); |
87 | FunctionPass *createHexagonFixupHwLoops(); |
88 | FunctionPass *createHexagonGenExtract(); |
89 | FunctionPass *createHexagonGenInsert(); |
90 | FunctionPass *createHexagonGenMemAbsolute(); |
91 | FunctionPass *createHexagonGenMux(); |
92 | FunctionPass *createHexagonGenPredicate(); |
93 | FunctionPass *createHexagonHardwareLoops(); |
94 | FunctionPass *createHexagonISelDag(HexagonTargetMachine &TM, |
95 | CodeGenOptLevel OptLevel); |
96 | FunctionPass *createHexagonLoopAlign(); |
97 | FunctionPass *createHexagonLoopRescheduling(); |
98 | FunctionPass *createHexagonMask(); |
99 | FunctionPass *createHexagonMergeActivateWeight(); |
100 | FunctionPass *createHexagonNewValueJump(); |
101 | FunctionPass *createHexagonOptAddrMode(); |
102 | FunctionPass *createHexagonOptimizeSZextends(); |
103 | FunctionPass *createHexagonPacketizer(bool Minimal); |
104 | FunctionPass *createHexagonPeephole(); |
105 | FunctionPass *createHexagonRDFOpt(); |
106 | FunctionPass *createHexagonSplitConst32AndConst64(); |
107 | FunctionPass *createHexagonSplitDoubleRegs(); |
108 | FunctionPass *createHexagonStoreWidening(); |
109 | FunctionPass *createHexagonLoadWidening(); |
110 | FunctionPass *createHexagonTfrCleanup(); |
111 | FunctionPass *createHexagonVectorCombineLegacyPass(); |
112 | FunctionPass *createHexagonVectorPrint(); |
113 | FunctionPass *createHexagonVExtract(); |
114 | FunctionPass *createHexagonExpandCondsets(); |
115 | |
116 | } // end namespace llvm; |
117 | |
118 | #endif |
119 |