00001 //===-- llvm/Analysis/Passes.h - Constructors for analyses ------*- C++ -*-===// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file is distributed under the University of Illinois Open Source 00006 // License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 // 00010 // This header file defines prototypes for accessor functions that expose passes 00011 // in the analysis libraries. 00012 // 00013 //===----------------------------------------------------------------------===// 00014 00015 #ifndef LLVM_ANALYSIS_PASSES_H 00016 #define LLVM_ANALYSIS_PASSES_H 00017 00018 namespace llvm { 00019 class FunctionPass; 00020 class ImmutablePass; 00021 class RegionPass; 00022 class LoopPass; 00023 class ModulePass; 00024 class Pass; 00025 class PassInfo; 00026 class LibCallInfo; 00027 00028 //===--------------------------------------------------------------------===// 00029 // 00030 // createGlobalsModRefPass - This pass provides alias and mod/ref info for 00031 // global values that do not have their addresses taken. 00032 // 00033 Pass *createGlobalsModRefPass(); 00034 00035 //===--------------------------------------------------------------------===// 00036 // 00037 // createAliasDebugger - This pass helps debug clients of AA 00038 // 00039 Pass *createAliasDebugger(); 00040 00041 //===--------------------------------------------------------------------===// 00042 // 00043 // createAliasAnalysisCounterPass - This pass counts alias queries and how the 00044 // alias analysis implementation responds. 00045 // 00046 ModulePass *createAliasAnalysisCounterPass(); 00047 00048 //===--------------------------------------------------------------------===// 00049 // 00050 // createAAEvalPass - This pass implements a simple N^2 alias analysis 00051 // accuracy evaluator. 00052 // 00053 FunctionPass *createAAEvalPass(); 00054 00055 //===--------------------------------------------------------------------===// 00056 // 00057 // createNoAAPass - This pass implements a "I don't know" alias analysis. 00058 // 00059 ImmutablePass *createNoAAPass(); 00060 00061 //===--------------------------------------------------------------------===// 00062 // 00063 // createBasicAliasAnalysisPass - This pass implements the default alias 00064 // analysis. 00065 // 00066 ImmutablePass *createBasicAliasAnalysisPass(); 00067 00068 //===--------------------------------------------------------------------===// 00069 // 00074 FunctionPass *createLibCallAliasAnalysisPass(LibCallInfo *LCI); 00075 00076 //===--------------------------------------------------------------------===// 00077 // 00078 // createScalarEvolutionAliasAnalysisPass - This pass implements a simple 00079 // alias analysis using ScalarEvolution queries. 00080 // 00081 FunctionPass *createScalarEvolutionAliasAnalysisPass(); 00082 00083 //===--------------------------------------------------------------------===// 00084 // 00085 // createProfileLoaderPass - This pass loads information from a profile dump 00086 // file. 00087 // 00088 ModulePass *createProfileLoaderPass(); 00089 extern const PassInfo *ProfileLoaderPassID; 00090 00091 //===--------------------------------------------------------------------===// 00092 // 00093 // createNoProfileInfoPass - This pass implements the default "no profile". 00094 // 00095 ImmutablePass *createNoProfileInfoPass(); 00096 00097 //===--------------------------------------------------------------------===// 00098 // 00099 // createProfileEstimatorPass - This pass estimates profiling information 00100 // instead of loading it from a previous run. 00101 // 00102 FunctionPass *createProfileEstimatorPass(); 00103 extern const PassInfo *ProfileEstimatorPassID; 00104 00105 //===--------------------------------------------------------------------===// 00106 // 00107 // createProfileVerifierPass - This pass verifies profiling information. 00108 // 00109 FunctionPass *createProfileVerifierPass(); 00110 00111 //===--------------------------------------------------------------------===// 00112 // 00113 // createDSAAPass - This pass implements simple context sensitive alias 00114 // analysis. 00115 // 00116 ModulePass *createDSAAPass(); 00117 00118 //===--------------------------------------------------------------------===// 00119 // 00120 // createDSOptPass - This pass uses DSA to do a series of simple 00121 // optimizations. 00122 // 00123 ModulePass *createDSOptPass(); 00124 00125 //===--------------------------------------------------------------------===// 00126 // 00127 // createSteensgaardPass - This pass uses the data structure graphs to do a 00128 // simple context insensitive alias analysis. 00129 // 00130 ModulePass *createSteensgaardPass(); 00131 00132 //===--------------------------------------------------------------------===// 00133 // 00134 // createLiveValuesPass - This creates an instance of the LiveValues pass. 00135 // 00136 FunctionPass *createLiveValuesPass(); 00137 00138 //===--------------------------------------------------------------------===// 00139 // 00142 FunctionPass *createLazyValueInfoPass(); 00143 00144 //===--------------------------------------------------------------------===// 00145 // 00146 // createLoopDependenceAnalysisPass - This creates an instance of the 00147 // LoopDependenceAnalysis pass. 00148 // 00149 LoopPass *createLoopDependenceAnalysisPass(); 00150 00151 // Minor pass prototypes, allowing us to expose them through bugpoint and 00152 // analyze. 00153 FunctionPass *createInstCountPass(); 00154 00155 // print debug info intrinsics in human readable form 00156 FunctionPass *createDbgInfoPrinterPass(); 00157 00158 //===--------------------------------------------------------------------===// 00159 // 00160 // createRegionInfoPass - This pass finds all single entry single exit regions 00161 // in a function and build up the region hierachy. 00162 // 00163 FunctionPass *createRegionInfoPass(); 00164 00165 //===--------------------------------------------------------------------===// 00166 // 00167 // createPrintRegionPass - This pass prints the region to stderr in various ways. 00168 // 00169 RegionPass* createPrintRegionPass(); 00170 00171 00172 //===--------------------------------------------------------------------===// 00173 // 00174 // createCycRegionFilterPass - This pass simply removes the regions with loop 00175 // and all its parents in the region queue. 00176 // 00177 RegionPass* createCycRegionFilterPass(); 00178 00179 //===--------------------------------------------------------------------===// 00180 // 00181 // createLIRAnalysisPass - This pass setups a map that mapping the smallest region 00182 // to the loops that contained by it. 00183 // 00184 FunctionPass* createLIRAnalysisPass(); 00185 } 00186 00187 #endif
1.5.8