[Alignment][NFC] Use Align with TargetLowering::setMinFunctionAlignment
[llvm-core.git] / include / llvm / Analysis / Passes.h
blob8562519fa7b1871554adc41bb0fbd0754f976242
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.
12 //===----------------------------------------------------------------------===//
14 #ifndef LLVM_ANALYSIS_PASSES_H
15 #define LLVM_ANALYSIS_PASSES_H
17 namespace llvm {
18 class FunctionPass;
19 class ImmutablePass;
20 class LoopPass;
21 class ModulePass;
22 class Pass;
23 class PassInfo;
25 //===--------------------------------------------------------------------===//
27 // createObjCARCAAWrapperPass - This pass implements ObjC-ARC-based
28 // alias analysis.
30 ImmutablePass *createObjCARCAAWrapperPass();
32 FunctionPass *createPAEvalPass();
34 //===--------------------------------------------------------------------===//
36 /// createLazyValueInfoPass - This creates an instance of the LazyValueInfo
37 /// pass.
38 FunctionPass *createLazyValueInfoPass();
40 //===--------------------------------------------------------------------===//
42 // createDependenceAnalysisWrapperPass - This creates an instance of the
43 // DependenceAnalysisWrapper pass.
45 FunctionPass *createDependenceAnalysisWrapperPass();
47 //===--------------------------------------------------------------------===//
49 // createCostModelAnalysisPass - This creates an instance of the
50 // CostModelAnalysis pass.
52 FunctionPass *createCostModelAnalysisPass();
54 //===--------------------------------------------------------------------===//
56 // createDelinearizationPass - This pass implements attempts to restore
57 // multidimensional array indices from linearized expressions.
59 FunctionPass *createDelinearizationPass();
61 //===--------------------------------------------------------------------===//
63 // createLegacyDivergenceAnalysisPass - This pass determines which branches in a GPU
64 // program are divergent.
66 FunctionPass *createLegacyDivergenceAnalysisPass();
68 //===--------------------------------------------------------------------===//
70 // Minor pass prototypes, allowing us to expose them through bugpoint and
71 // analyze.
72 FunctionPass *createInstCountPass();
74 //===--------------------------------------------------------------------===//
76 // createRegionInfoPass - This pass finds all single entry single exit regions
77 // in a function and builds the region hierarchy.
79 FunctionPass *createRegionInfoPass();
81 // Print module-level debug info metadata in human-readable form.
82 ModulePass *createModuleDebugInfoPrinterPass();
84 //===--------------------------------------------------------------------===//
86 // createMemDepPrinter - This pass exhaustively collects all memdep
87 // information and prints it with -analyze.
89 FunctionPass *createMemDepPrinter();
91 //===--------------------------------------------------------------------===//
93 // createMemDerefPrinter - This pass collects memory dereferenceability
94 // information and prints it with -analyze.
96 FunctionPass *createMemDerefPrinter();
98 //===--------------------------------------------------------------------===//
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.
104 FunctionPass *createMustExecutePrinter();
106 //===--------------------------------------------------------------------===//
108 // createMustBeExecutedContextPrinter - This pass prints information about which
109 // instructions are guaranteed to execute together (run with -analyze).
111 ModulePass *createMustBeExecutedContextPrinter();
115 #endif