1 | //===-- llvm/Analysis/Passes.h - Constructors for analyses ------*- 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 header file defines prototypes for accessor functions that expose passes |
11 | // in the analysis libraries. |
12 | // |
13 | //===----------------------------------------------------------------------===// |
14 | |
15 | #ifndef LLVM_ANALYSIS_PASSES_H |
16 | #define LLVM_ANALYSIS_PASSES_H |
17 | |
18 | namespace llvm { |
19 | class FunctionPass; |
20 | class ImmutablePass; |
21 | class LoopPass; |
22 | class ModulePass; |
23 | class Pass; |
24 | class PassInfo; |
25 | |
26 | //===--------------------------------------------------------------------===// |
27 | // |
28 | // createObjCARCAAWrapperPass - This pass implements ObjC-ARC-based |
29 | // alias analysis. |
30 | // |
31 | ImmutablePass *createObjCARCAAWrapperPass(); |
32 | |
33 | FunctionPass *createPAEvalPass(); |
34 | |
35 | //===--------------------------------------------------------------------===// |
36 | // |
37 | /// createLazyValueInfoPass - This creates an instance of the LazyValueInfo |
38 | /// pass. |
39 | FunctionPass *createLazyValueInfoPass(); |
40 | |
41 | //===--------------------------------------------------------------------===// |
42 | // |
43 | // createDependenceAnalysisWrapperPass - This creates an instance of the |
44 | // DependenceAnalysisWrapper pass. |
45 | // |
46 | FunctionPass *createDependenceAnalysisWrapperPass(); |
47 | |
48 | //===--------------------------------------------------------------------===// |
49 | // |
50 | // createCostModelAnalysisPass - This creates an instance of the |
51 | // CostModelAnalysis pass. |
52 | // |
53 | FunctionPass *createCostModelAnalysisPass(); |
54 | |
55 | //===--------------------------------------------------------------------===// |
56 | // |
57 | // createDelinearizationPass - This pass implements attempts to restore |
58 | // multidimensional array indices from linearized expressions. |
59 | // |
60 | FunctionPass *createDelinearizationPass(); |
61 | |
62 | //===--------------------------------------------------------------------===// |
63 | // |
64 | // createLegacyDivergenceAnalysisPass - This pass determines which branches in a GPU |
65 | // program are divergent. |
66 | // |
67 | FunctionPass *createLegacyDivergenceAnalysisPass(); |
68 | |
69 | //===--------------------------------------------------------------------===// |
70 | // |
71 | // Minor pass prototypes, allowing us to expose them through bugpoint and |
72 | // analyze. |
73 | FunctionPass *createInstCountPass(); |
74 | |
75 | //===--------------------------------------------------------------------===// |
76 | // |
77 | // createRegionInfoPass - This pass finds all single entry single exit regions |
78 | // in a function and builds the region hierarchy. |
79 | // |
80 | FunctionPass *createRegionInfoPass(); |
81 | |
82 | // Print module-level debug info metadata in human-readable form. |
83 | ModulePass *createModuleDebugInfoPrinterPass(); |
84 | |
85 | //===--------------------------------------------------------------------===// |
86 | // |
87 | // createMemDepPrinter - This pass exhaustively collects all memdep |
88 | // information and prints it with -analyze. |
89 | // |
90 | FunctionPass *createMemDepPrinter(); |
91 | |
92 | //===--------------------------------------------------------------------===// |
93 | // |
94 | // createMemDerefPrinter - This pass collects memory dereferenceability |
95 | // information and prints it with -analyze. |
96 | // |
97 | FunctionPass *createMemDerefPrinter(); |
98 | |
99 | //===--------------------------------------------------------------------===// |
100 | // |
101 | // createMustExecutePrinter - This pass collects information about which |
102 | // instructions within a loop are guaranteed to execute if the loop header is |
103 | // entered and prints it with -analyze. |
104 | // |
105 | FunctionPass *createMustExecutePrinter(); |
106 | |
107 | } |
108 | |
109 | #endif |
110 | |