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