| //===-- llvm/Analysis/Passes.h - Constructors for analyses ------*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // 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 |
| // in the analysis libraries. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef LLVM_ANALYSIS_PASSES_H |
| #define LLVM_ANALYSIS_PASSES_H |
| |
| namespace llvm { |
| class FunctionPass; |
| class ImmutablePass; |
| class LoopPass; |
| class ModulePass; |
| class Pass; |
| class PassInfo; |
| class LibCallInfo; |
| |
| //===--------------------------------------------------------------------===// |
| // |
| // createGlobalsModRefPass - This pass provides alias and mod/ref info for |
| // global values that do not have their addresses taken. |
| // |
| Pass *createGlobalsModRefPass(); |
| |
| //===--------------------------------------------------------------------===// |
| // |
| // createAliasDebugger - This pass helps debug clients of AA |
| // |
| Pass *createAliasDebugger(); |
| |
| //===--------------------------------------------------------------------===// |
| // |
| // createAliasAnalysisCounterPass - This pass counts alias queries and how the |
| // alias analysis implementation responds. |
| // |
| ModulePass *createAliasAnalysisCounterPass(); |
| |
| //===--------------------------------------------------------------------===// |
| // |
| // createAAEvalPass - This pass implements a simple N^2 alias analysis |
| // accuracy evaluator. |
| // |
| FunctionPass *createAAEvalPass(); |
| |
| //===--------------------------------------------------------------------===// |
| // |
| // createNoAAPass - This pass implements a "I don't know" alias analysis. |
| // |
| ImmutablePass *createNoAAPass(); |
| |
| //===--------------------------------------------------------------------===// |
| // |
| // createBasicAliasAnalysisPass - This pass implements the stateless alias |
| // analysis. |
| // |
| ImmutablePass *createBasicAliasAnalysisPass(); |
| |
| //===--------------------------------------------------------------------===// |
| // |
| /// 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(); |
| |
| //===--------------------------------------------------------------------===// |
| // |
| // createTypeBasedAliasAnalysisPass - This pass implements metadata-based |
| // type-based alias analysis. |
| // |
| ImmutablePass *createTypeBasedAliasAnalysisPass(); |
| |
| //===--------------------------------------------------------------------===// |
| // |
| // createObjCARCAliasAnalysisPass - This pass implements ObjC-ARC-based |
| // alias analysis. |
| // |
| ImmutablePass *createObjCARCAliasAnalysisPass(); |
| |
| //===--------------------------------------------------------------------===// |
| // |
| // createProfileLoaderPass - This pass loads information from a profile dump |
| // file. |
| // |
| ModulePass *createProfileLoaderPass(); |
| extern char &ProfileLoaderPassID; |
| |
| //===--------------------------------------------------------------------===// |
| // |
| // createNoProfileInfoPass - This pass implements the default "no profile". |
| // |
| ImmutablePass *createNoProfileInfoPass(); |
| |
| //===--------------------------------------------------------------------===// |
| // |
| // createProfileEstimatorPass - This pass estimates profiling information |
| // instead of loading it from a previous run. |
| // |
| FunctionPass *createProfileEstimatorPass(); |
| extern char &ProfileEstimatorPassID; |
| |
| //===--------------------------------------------------------------------===// |
| // |
| // createProfileVerifierPass - This pass verifies profiling information. |
| // |
| FunctionPass *createProfileVerifierPass(); |
| |
| //===--------------------------------------------------------------------===// |
| // |
| // createPathProfileLoaderPass - This pass loads information from a path |
| // profile dump file. |
| // |
| ModulePass *createPathProfileLoaderPass(); |
| extern char &PathProfileLoaderPassID; |
| |
| //===--------------------------------------------------------------------===// |
| // |
| // createNoPathProfileInfoPass - This pass implements the default |
| // "no path profile". |
| // |
| ImmutablePass *createNoPathProfileInfoPass(); |
| |
| //===--------------------------------------------------------------------===// |
| // |
| // createPathProfileVerifierPass - This pass verifies path profiling |
| // information. |
| // |
| ModulePass *createPathProfileVerifierPass(); |
| |
| //===--------------------------------------------------------------------===// |
| // |
| // createDSAAPass - This pass implements simple context sensitive alias |
| // analysis. |
| // |
| ModulePass *createDSAAPass(); |
| |
| //===--------------------------------------------------------------------===// |
| // |
| // createDSOptPass - This pass uses DSA to do a series of simple |
| // optimizations. |
| // |
| ModulePass *createDSOptPass(); |
| |
| //===--------------------------------------------------------------------===// |
| // |
| // createSteensgaardPass - This pass uses the data structure graphs to do a |
| // simple context insensitive alias analysis. |
| // |
| ModulePass *createSteensgaardPass(); |
| |
| //===--------------------------------------------------------------------===// |
| // |
| /// createLazyValueInfoPass - This creates an instance of the LazyValueInfo |
| /// pass. |
| FunctionPass *createLazyValueInfoPass(); |
| |
| //===--------------------------------------------------------------------===// |
| // |
| // createLoopDependenceAnalysisPass - This creates an instance of the |
| // LoopDependenceAnalysis pass. |
| // |
| LoopPass *createLoopDependenceAnalysisPass(); |
| |
| // 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(); |
| } |
| |
| #endif |