Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 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
  // createLegacyDivergenceAnalysisPass - This pass determines which branches in a GPU
52
  // program are divergent.
53
  //
54
  FunctionPass *createLegacyDivergenceAnalysisPass();
55
 
56
  //===--------------------------------------------------------------------===//
57
  //
58
  // Minor pass prototypes, allowing us to expose them through bugpoint and
59
  // analyze.
60
  FunctionPass *createInstCountPass();
61
 
62
  //===--------------------------------------------------------------------===//
63
  //
64
  // createRegionInfoPass - This pass finds all single entry single exit regions
65
  // in a function and builds the region hierarchy.
66
  //
67
  FunctionPass *createRegionInfoPass();
68
 
69
  // Print module-level debug info metadata in human-readable form.
70
  ModulePass *createModuleDebugInfoPrinterPass();
71
 
72
  //===--------------------------------------------------------------------===//
73
  //
74
  // createMemDepPrinter - This pass exhaustively collects all memdep
75
  // information and prints it with -analyze.
76
  //
77
  FunctionPass *createMemDepPrinter();
78
 
79
  //===--------------------------------------------------------------------===//
80
  //
81
  // createMemDerefPrinter - This pass collects memory dereferenceability
82
  // information and prints it with -analyze.
83
  //
84
  FunctionPass *createMemDerefPrinter();
85
 
86
  //===--------------------------------------------------------------------===//
87
  //
88
  // createMustExecutePrinter - This pass collects information about which
89
  // instructions within a loop are guaranteed to execute if the loop header is
90
  // entered and prints it with -analyze.
91
  //
92
  FunctionPass *createMustExecutePrinter();
93
 
94
  //===--------------------------------------------------------------------===//
95
  //
96
  // createMustBeExecutedContextPrinter - This pass prints information about which
97
  // instructions are guaranteed to execute together (run with -analyze).
98
  //
99
  ModulePass *createMustBeExecutedContextPrinter();
100
 
101
}
102
 
103
#endif