Remove trailing whitespace
[oota-llvm.git] / include / llvm / Analysis / Passes.h
1 //===-- llvm/Analysis/Passes.h - Constructors for analyses ------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file was developed by the LLVM research group and is distributed under
6 // the University of Illinois Open Source 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 ModulePass;
22   class Pass;
23
24   //===--------------------------------------------------------------------===//
25   //
26   // createGlobalsModRefPass - This pass provides alias and mod/ref info for
27   // global values that do not have their addresses taken.
28   //
29   Pass *createGlobalsModRefPass();
30
31   //===--------------------------------------------------------------------===//
32   //
33   // createAliasAnalysisCounterPass - This pass counts alias queries and how the
34   // alias analysis implementation responds.
35   //
36   ModulePass *createAliasAnalysisCounterPass();
37
38   //===--------------------------------------------------------------------===//
39   //
40   // createAAEvalPass - This pass implements a simple N^2 alias analysis
41   // accuracy evaluator.
42   //
43   FunctionPass *createAAEvalPass();
44
45   //===--------------------------------------------------------------------===//
46   //
47   // createNoAAPass - This pass implements a "I don't know" alias analysis.
48   //
49   ImmutablePass *createNoAAPass();
50
51   //===--------------------------------------------------------------------===//
52   //
53   // createBasicAliasAnalysisPass - This pass implements the default alias
54   // analysis.
55   //
56   ImmutablePass *createBasicAliasAnalysisPass();
57
58   //===--------------------------------------------------------------------===//
59   //
60   // createAndersensPass - This pass implements Andersen's interprocedural alias
61   // analysis.
62   //
63   ModulePass *createAndersensPass();
64
65   //===--------------------------------------------------------------------===//
66   //
67   // createBasicVNPass - This pass walks SSA def-use chains to trivially
68   // identify lexically identical expressions.
69   //
70   ImmutablePass *createBasicVNPass();
71
72   //===--------------------------------------------------------------------===//
73   //
74   // createProfileLoaderPass - This pass loads information from a profile dump
75   // file.
76   //
77   ModulePass *createProfileLoaderPass();
78
79   //===--------------------------------------------------------------------===//
80   //
81   // createNoProfileInfoPass - This pass implements the default "no profile".
82   //
83   ImmutablePass *createNoProfileInfoPass();
84
85   //===--------------------------------------------------------------------===//
86   //
87   // createDSAAPass - This pass implements simple context sensitive alias
88   // analysis.
89   //
90   ModulePass *createDSAAPass();
91
92   //===--------------------------------------------------------------------===//
93   //
94   // createDSOptPass - This pass uses DSA to do a series of simple
95   // optimizations.
96   //
97   ModulePass *createDSOptPass();
98
99   //===--------------------------------------------------------------------===//
100   //
101   // createSteensgaardPass - This pass uses the data structure graphs to do a
102   // simple context insensitive alias analysis.
103   //
104   ModulePass *createSteensgaardPass();
105 }
106
107 #endif