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   /// createLazyValueInfoPass - This creates an instance of the LazyValueInfo
25   /// pass.
26   FunctionPass *createLazyValueInfoPass();
27 
28   //===--------------------------------------------------------------------===//
29   //
30   // createDependenceAnalysisWrapperPass - This creates an instance of the
31   // DependenceAnalysisWrapper pass.
32   //
33   FunctionPass *createDependenceAnalysisWrapperPass();
34 
35   //===--------------------------------------------------------------------===//
36   //
37   // createCostModelAnalysisPass - This creates an instance of the
38   // CostModelAnalysis pass.
39   //
40   FunctionPass *createCostModelAnalysisPass();
41 
42   //===--------------------------------------------------------------------===//
43   //
44   // createDelinearizationPass - This pass implements attempts to restore
45   // multidimensional array indices from linearized expressions.
46   //
47   FunctionPass *createDelinearizationPass();
48 
49   //===--------------------------------------------------------------------===//
50   //
51   // Minor pass prototypes, allowing us to expose them through bugpoint and
52   // analyze.
53   FunctionPass *createInstCountPass();
54 
55   //===--------------------------------------------------------------------===//
56   //
57   // createRegionInfoPass - This pass finds all single entry single exit regions
58   // in a function and builds the region hierarchy.
59   //
60   FunctionPass *createRegionInfoPass();
61 }
62 
63 #endif
64