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=0c991c5aeb133a72c3f01e508a596f501a2931ef;hb=7d30f78dc2ab1fb79763e1be7fef8317745a56f8;hpb=534927d82de6d1be0f6e939263eeb309ad135661 diff --git a/include/llvm/Analysis/Passes.h b/include/llvm/Analysis/Passes.h index 0c991c5aeb1..0aa2075154e 100644 --- a/include/llvm/Analysis/Passes.h +++ b/include/llvm/Analysis/Passes.h @@ -1,10 +1,10 @@ //===-- llvm/Analysis/Passes.h - Constructors for analyses ------*- C++ -*-===// -// +// // The LLVM Compiler Infrastructure // -// This file was developed by the LLVM research group and is distributed under -// the University of Illinois Open Source License. See LICENSE.TXT for details. -// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// //===----------------------------------------------------------------------===// // // This header file defines prototypes for accessor functions that expose passes @@ -18,8 +18,11 @@ namespace llvm { class FunctionPass; class ImmutablePass; + class LoopPass; class ModulePass; class Pass; + class PassInfo; + class LibCallInfo; //===--------------------------------------------------------------------===// // @@ -47,39 +50,116 @@ namespace llvm { // createNoAAPass - This pass implements a "I don't know" alias analysis. // ImmutablePass *createNoAAPass(); - + + //===--------------------------------------------------------------------===// + // + // createCFLAliasAnalysisPass - This pass implements a set-based approach to + // alias analysis. + // + ImmutablePass *createCFLAliasAnalysisPass(); + + //===--------------------------------------------------------------------===// + // + /// createLibCallAliasAnalysisPass - Create an alias analysis pass that knows + /// about the semantics of a set of libcalls specified by LCI. The newly + /// constructed pass takes ownership of the pointer that is provided. + /// + FunctionPass *createLibCallAliasAnalysisPass(LibCallInfo *LCI); + + //===--------------------------------------------------------------------===// + // + // createScalarEvolutionAliasAnalysisPass - This pass implements a simple + // alias analysis using ScalarEvolution queries. + // + FunctionPass *createScalarEvolutionAliasAnalysisPass(); + //===--------------------------------------------------------------------===// // - // createBasicAliasAnalysisPass - This pass implements the default alias - // analysis. + // createTypeBasedAliasAnalysisPass - This pass implements metadata-based + // type-based alias analysis. // - ImmutablePass *createBasicAliasAnalysisPass(); - + ImmutablePass *createTypeBasedAliasAnalysisPass(); + //===--------------------------------------------------------------------===// // - // createAndersensPass - This pass implements Andersen's interprocedural alias - // analysis. + // createScopedNoAliasAAPass - This pass implements metadata-based + // scoped noalias analysis. // - ModulePass *createAndersensPass(); - + ImmutablePass *createScopedNoAliasAAPass(); + //===--------------------------------------------------------------------===// // - // createBasicVNPass - This pass walks SSA def-use chains to trivially - // identify lexically identical expressions. + // createObjCARCAliasAnalysisPass - This pass implements ObjC-ARC-based + // alias analysis. + // + ImmutablePass *createObjCARCAliasAnalysisPass(); + + FunctionPass *createPAEvalPass(); + + //===--------------------------------------------------------------------===// // - ImmutablePass *createBasicVNPass(); - + /// createLazyValueInfoPass - This creates an instance of the LazyValueInfo + /// pass. + FunctionPass *createLazyValueInfoPass(); + //===--------------------------------------------------------------------===// // - // createLoaderPass - This pass loads information from a profile dump file. + // createDependenceAnalysisPass - This creates an instance of the + // DependenceAnalysis pass. // - ModulePass *createLoaderPass(); - + FunctionPass *createDependenceAnalysisPass(); + //===--------------------------------------------------------------------===// // - // createNoProfileInfoPass - This pass implements the default "no profile". + // createCostModelAnalysisPass - This creates an instance of the + // CostModelAnalysis pass. // - ImmutablePass *createNoProfileInfoPass(); + FunctionPass *createCostModelAnalysisPass(); + + //===--------------------------------------------------------------------===// + // + // createDelinearizationPass - This pass implements attempts to restore + // multidimensional array indices from linearized expressions. + // + FunctionPass *createDelinearizationPass(); + + //===--------------------------------------------------------------------===// + // + // createDivergenceAnalysisPass - This pass determines which branches in a GPU + // program are divergent. + // + FunctionPass *createDivergenceAnalysisPass(); + + //===--------------------------------------------------------------------===// + // + // Minor pass prototypes, allowing us to expose them through bugpoint and + // analyze. + FunctionPass *createInstCountPass(); + + //===--------------------------------------------------------------------===// + // + // 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