X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=blobdiff_plain;f=include%2Fllvm%2FAnalysis%2FPasses.h;h=0aa2075154e95312e04a8c735d89bece0cbeb6e9;hp=da7518f5bdd35b3d5d339155786ee533c585dc1c;hb=7d30f78dc2ab1fb79763e1be7fef8317745a56f8;hpb=6e68106a47e9774476f2f39df572652c1eb5f75c diff --git a/include/llvm/Analysis/Passes.h b/include/llvm/Analysis/Passes.h index da7518f5bdd..0aa2075154e 100644 --- a/include/llvm/Analysis/Passes.h +++ b/include/llvm/Analysis/Passes.h @@ -18,8 +18,10 @@ namespace llvm { class FunctionPass; class ImmutablePass; + class LoopPass; class ModulePass; class Pass; + class PassInfo; class LibCallInfo; //===--------------------------------------------------------------------===// @@ -29,12 +31,6 @@ namespace llvm { // Pass *createGlobalsModRefPass(); - //===--------------------------------------------------------------------===// - // - // createAliasDebugger - This pass helps debug clients of AA - // - Pass *createAliasDebugger(); - //===--------------------------------------------------------------------===// // // createAliasAnalysisCounterPass - This pass counts alias queries and how the @@ -57,10 +53,10 @@ namespace llvm { //===--------------------------------------------------------------------===// // - // createBasicAliasAnalysisPass - This pass implements the default alias - // analysis. + // createCFLAliasAnalysisPass - This pass implements a set-based approach to + // alias analysis. // - ImmutablePass *createBasicAliasAnalysisPass(); + ImmutablePass *createCFLAliasAnalysisPass(); //===--------------------------------------------------------------------===// // @@ -72,51 +68,98 @@ namespace llvm { //===--------------------------------------------------------------------===// // - // createAndersensPass - This pass implements Andersen's interprocedural alias - // analysis. + // createScalarEvolutionAliasAnalysisPass - This pass implements a simple + // alias analysis using ScalarEvolution queries. + // + FunctionPass *createScalarEvolutionAliasAnalysisPass(); + + //===--------------------------------------------------------------------===// + // + // createTypeBasedAliasAnalysisPass - This pass implements metadata-based + // type-based alias analysis. // - ModulePass *createAndersensPass(); + ImmutablePass *createTypeBasedAliasAnalysisPass(); //===--------------------------------------------------------------------===// // - // createProfileLoaderPass - This pass loads information from a profile dump - // file. + // createScopedNoAliasAAPass - This pass implements metadata-based + // scoped noalias analysis. + // + ImmutablePass *createScopedNoAliasAAPass(); + + //===--------------------------------------------------------------------===// + // + // createObjCARCAliasAnalysisPass - This pass implements ObjC-ARC-based + // alias analysis. + // + ImmutablePass *createObjCARCAliasAnalysisPass(); + + FunctionPass *createPAEvalPass(); + + //===--------------------------------------------------------------------===// // - ModulePass *createProfileLoaderPass(); + /// createLazyValueInfoPass - This creates an instance of the LazyValueInfo + /// pass. + FunctionPass *createLazyValueInfoPass(); //===--------------------------------------------------------------------===// // - // createNoProfileInfoPass - This pass implements the default "no profile". + // createDependenceAnalysisPass - This creates an instance of the + // DependenceAnalysis pass. // - ImmutablePass *createNoProfileInfoPass(); + FunctionPass *createDependenceAnalysisPass(); //===--------------------------------------------------------------------===// // - // createDSAAPass - This pass implements simple context sensitive alias - // analysis. + // createCostModelAnalysisPass - This creates an instance of the + // CostModelAnalysis pass. // - ModulePass *createDSAAPass(); + FunctionPass *createCostModelAnalysisPass(); //===--------------------------------------------------------------------===// // - // createDSOptPass - This pass uses DSA to do a series of simple - // optimizations. + // createDelinearizationPass - This pass implements attempts to restore + // multidimensional array indices from linearized expressions. // - ModulePass *createDSOptPass(); + FunctionPass *createDelinearizationPass(); //===--------------------------------------------------------------------===// // - // createSteensgaardPass - This pass uses the data structure graphs to do a - // simple context insensitive alias analysis. + // createDivergenceAnalysisPass - This pass determines which branches in a GPU + // program are divergent. + // + FunctionPass *createDivergenceAnalysisPass(); + + //===--------------------------------------------------------------------===// // - ModulePass *createSteensgaardPass(); - // Minor pass prototypes, allowing us to expose them through bugpoint and // analyze. FunctionPass *createInstCountPass(); - // print debug info intrinsics in human readable form - FunctionPass *createDbgInfoPrinterPass(); + //===--------------------------------------------------------------------===// + // + // createRegionInfoPass - This pass finds all single entry single exit regions + // in a function and builds the region hierarchy. + // + FunctionPass *createRegionInfoPass(); + + // Print module-level debug info metadata in human-readable form. + ModulePass *createModuleDebugInfoPrinterPass(); + + //===--------------------------------------------------------------------===// + // + // createMemDepPrinter - This pass exhaustively collects all memdep + // information and prints it with -analyze. + // + FunctionPass *createMemDepPrinter(); + + //===--------------------------------------------------------------------===// + // + // createMemDerefPrinter - This pass collects memory dereferenceability + // information and prints it with -analyze. + // + FunctionPass *createMemDerefPrinter(); + } #endif