LLVM API Documentation
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 ModulePass; 00022 class Pass; 00023 class LibCallInfo; 00024 00025 //===--------------------------------------------------------------------===// 00026 // 00027 // createGlobalsModRefPass - This pass provides alias and mod/ref info for 00028 // global values that do not have their addresses taken. 00029 // 00030 Pass *createGlobalsModRefPass(); 00031 00032 //===--------------------------------------------------------------------===// 00033 // 00034 // createAliasDebugger - This pass helps debug clients of AA 00035 // 00036 Pass *createAliasDebugger(); 00037 00038 //===--------------------------------------------------------------------===// 00039 // 00040 // createAliasAnalysisCounterPass - This pass counts alias queries and how the 00041 // alias analysis implementation responds. 00042 // 00043 ModulePass *createAliasAnalysisCounterPass(); 00044 00045 //===--------------------------------------------------------------------===// 00046 // 00047 // createAAEvalPass - This pass implements a simple N^2 alias analysis 00048 // accuracy evaluator. 00049 // 00050 FunctionPass *createAAEvalPass(); 00051 00052 //===--------------------------------------------------------------------===// 00053 // 00054 // createNoAAPass - This pass implements a "I don't know" alias analysis. 00055 // 00056 ImmutablePass *createNoAAPass(); 00057 00058 //===--------------------------------------------------------------------===// 00059 // 00060 // createBasicAliasAnalysisPass - This pass implements the default alias 00061 // analysis. 00062 // 00063 ImmutablePass *createBasicAliasAnalysisPass(); 00064 00065 //===--------------------------------------------------------------------===// 00066 // 00067 /// createLibCallAliasAnalysisPass - Create an alias analysis pass that knows 00068 /// about the semantics of a set of libcalls specified by LCI. The newly 00069 /// constructed pass takes ownership of the pointer that is provided. 00070 /// 00071 FunctionPass *createLibCallAliasAnalysisPass(LibCallInfo *LCI); 00072 00073 //===--------------------------------------------------------------------===// 00074 // 00075 // createAndersensPass - This pass implements Andersen's interprocedural alias 00076 // analysis. 00077 // 00078 ModulePass *createAndersensPass(); 00079 00080 //===--------------------------------------------------------------------===// 00081 // 00082 // createProfileLoaderPass - This pass loads information from a profile dump 00083 // file. 00084 // 00085 ModulePass *createProfileLoaderPass(); 00086 00087 //===--------------------------------------------------------------------===// 00088 // 00089 // createNoProfileInfoPass - This pass implements the default "no profile". 00090 // 00091 ImmutablePass *createNoProfileInfoPass(); 00092 00093 //===--------------------------------------------------------------------===// 00094 // 00095 // createDSAAPass - This pass implements simple context sensitive alias 00096 // analysis. 00097 // 00098 ModulePass *createDSAAPass(); 00099 00100 //===--------------------------------------------------------------------===// 00101 // 00102 // createDSOptPass - This pass uses DSA to do a series of simple 00103 // optimizations. 00104 // 00105 ModulePass *createDSOptPass(); 00106 00107 //===--------------------------------------------------------------------===// 00108 // 00109 // createSteensgaardPass - This pass uses the data structure graphs to do a 00110 // simple context insensitive alias analysis. 00111 // 00112 ModulePass *createSteensgaardPass(); 00113 00114 // Minor pass prototypes, allowing us to expose them through bugpoint and 00115 // analyze. 00116 FunctionPass *createInstCountPass(); 00117 00118 // print debug info intrinsics in human readable form 00119 FunctionPass *createDbgInfoPrinterPass(); 00120 } 00121 00122 #endif
This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.