LLVM  12.0.0git
Passes.h
Go to the documentation of this file.
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 ModulePass;
21 
22  //===--------------------------------------------------------------------===//
23  //
24  // createObjCARCAAWrapperPass - This pass implements ObjC-ARC-based
25  // alias analysis.
26  //
27  ImmutablePass *createObjCARCAAWrapperPass();
28 
29  FunctionPass *createPAEvalPass();
30 
31  //===--------------------------------------------------------------------===//
32  //
33  /// createLazyValueInfoPass - This creates an instance of the LazyValueInfo
34  /// pass.
35  FunctionPass *createLazyValueInfoPass();
36 
37  //===--------------------------------------------------------------------===//
38  //
39  // createDependenceAnalysisWrapperPass - This creates an instance of the
40  // DependenceAnalysisWrapper pass.
41  //
43 
44  //===--------------------------------------------------------------------===//
45  //
46  // createCostModelAnalysisPass - This creates an instance of the
47  // CostModelAnalysis pass.
48  //
49  FunctionPass *createCostModelAnalysisPass();
50 
51  //===--------------------------------------------------------------------===//
52  //
53  // createDelinearizationPass - This pass implements attempts to restore
54  // multidimensional array indices from linearized expressions.
55  //
56  FunctionPass *createDelinearizationPass();
57 
58  //===--------------------------------------------------------------------===//
59  //
60  // createLegacyDivergenceAnalysisPass - This pass determines which branches in a GPU
61  // program are divergent.
62  //
63  FunctionPass *createLegacyDivergenceAnalysisPass();
64 
65  //===--------------------------------------------------------------------===//
66  //
67  // Minor pass prototypes, allowing us to expose them through bugpoint and
68  // analyze.
69  FunctionPass *createInstCountPass();
70 
71  //===--------------------------------------------------------------------===//
72  //
73  // createRegionInfoPass - This pass finds all single entry single exit regions
74  // in a function and builds the region hierarchy.
75  //
76  FunctionPass *createRegionInfoPass();
77 
78  // Print module-level debug info metadata in human-readable form.
80 
81  //===--------------------------------------------------------------------===//
82  //
83  // createMemDepPrinter - This pass exhaustively collects all memdep
84  // information and prints it with -analyze.
85  //
86  FunctionPass *createMemDepPrinter();
87 
88  //===--------------------------------------------------------------------===//
89  //
90  // createMemDerefPrinter - This pass collects memory dereferenceability
91  // information and prints it with -analyze.
92  //
93  FunctionPass *createMemDerefPrinter();
94 
95  //===--------------------------------------------------------------------===//
96  //
97  // createMustExecutePrinter - This pass collects information about which
98  // instructions within a loop are guaranteed to execute if the loop header is
99  // entered and prints it with -analyze.
100  //
101  FunctionPass *createMustExecutePrinter();
102 
103  //===--------------------------------------------------------------------===//
104  //
105  // createMustBeExecutedContextPrinter - This pass prints information about which
106  // instructions are guaranteed to execute together (run with -analyze).
107  //
109 
110 }
111 
112 #endif
FunctionPass * createInstCountPass()
FunctionPass * createDependenceAnalysisWrapperPass()
createDependenceAnalysisPass - This creates an instance of the DependenceAnalysis wrapper pass...
This class represents lattice values for constants.
Definition: AllocatorList.h:23
FunctionPass * createRegionInfoPass()
Definition: RegionInfo.cpp:178
FunctionPass * createLazyValueInfoPass()
createLazyValueInfoPass - This creates an instance of the LazyValueInfo pass.
FunctionPass * createMustExecutePrinter()
FunctionPass * createMemDepPrinter()
FunctionPass * createDelinearizationPass()
FunctionPass * createPAEvalPass()
FunctionPass * createLegacyDivergenceAnalysisPass()
ModulePass * createModuleDebugInfoPrinterPass()
ModulePass * createMustBeExecutedContextPrinter()
FunctionPass * createCostModelAnalysisPass()
Definition: CostModel.cpp:79
FunctionPass * createMemDerefPrinter()
ImmutablePass * createObjCARCAAWrapperPass()