LLVM API Documentation
00001 //===-- llvm/Analysis/Passes.h - Constructors for analyses ------*- C++ -*-===// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file was developed by the LLVM research group and is distributed under 00006 // the University of Illinois Open Source 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 ModulePass; 00022 class Pass; 00023 00024 //===--------------------------------------------------------------------===// 00025 // 00026 // createGlobalsModRefPass - This pass provides alias and mod/ref info for 00027 // global values that do not have their addresses taken. 00028 // 00029 Pass *createGlobalsModRefPass(); 00030 00031 //===--------------------------------------------------------------------===// 00032 // 00033 // createAliasAnalysisCounterPass - This pass counts alias queries and how the 00034 // alias analysis implementation responds. 00035 // 00036 ModulePass *createAliasAnalysisCounterPass(); 00037 00038 //===--------------------------------------------------------------------===// 00039 // 00040 // createAAEvalPass - This pass implements a simple N^2 alias analysis 00041 // accuracy evaluator. 00042 // 00043 FunctionPass *createAAEvalPass(); 00044 00045 //===--------------------------------------------------------------------===// 00046 // 00047 // createNoAAPass - This pass implements a "I don't know" alias analysis. 00048 // 00049 ImmutablePass *createNoAAPass(); 00050 00051 //===--------------------------------------------------------------------===// 00052 // 00053 // createBasicAliasAnalysisPass - This pass implements the default alias 00054 // analysis. 00055 // 00056 ImmutablePass *createBasicAliasAnalysisPass(); 00057 00058 //===--------------------------------------------------------------------===// 00059 // 00060 // createAndersensPass - This pass implements Andersen's interprocedural alias 00061 // analysis. 00062 // 00063 ModulePass *createAndersensPass(); 00064 00065 //===--------------------------------------------------------------------===// 00066 // 00067 // createBasicVNPass - This pass walks SSA def-use chains to trivially 00068 // identify lexically identical expressions. 00069 // 00070 ImmutablePass *createBasicVNPass(); 00071 00072 //===--------------------------------------------------------------------===// 00073 // 00074 // createProfileLoaderPass - This pass loads information from a profile dump 00075 // file. 00076 // 00077 ModulePass *createProfileLoaderPass(); 00078 00079 //===--------------------------------------------------------------------===// 00080 // 00081 // createNoProfileInfoPass - This pass implements the default "no profile". 00082 // 00083 ImmutablePass *createNoProfileInfoPass(); 00084 00085 //===--------------------------------------------------------------------===// 00086 // 00087 // createDSAAPass - This pass implements simple context sensitive alias 00088 // analysis. 00089 // 00090 ModulePass *createDSAAPass(); 00091 00092 //===--------------------------------------------------------------------===// 00093 // 00094 // createDSOptPass - This pass uses DSA to do a series of simple 00095 // optimizations. 00096 // 00097 ModulePass *createDSOptPass(); 00098 00099 //===--------------------------------------------------------------------===// 00100 // 00101 // createSteensgaardPass - This pass uses the data structure graphs to do a 00102 // simple context insensitive alias analysis. 00103 // 00104 ModulePass *createSteensgaardPass(); 00105 00106 // Minor pass prototypes, allowing us to expose them through bugpoint and 00107 // analyze. 00108 FunctionPass *createInstCountPass(); 00109 } 00110 00111 #endif