]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/include/llvm/Analysis/Passes.h
Upgrade Unbound to 1.7.3. More to follow.
[FreeBSD/FreeBSD.git] / contrib / llvm / include / llvm / Analysis / Passes.h
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   // createDivergenceAnalysisPass - This pass determines which branches in a GPU
65   // program are divergent.
66   //
67   FunctionPass *createDivergenceAnalysisPass();
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 #endif