Home | History | Annotate | Download | only in Analysis
      1 //===-- llvm/Analysis/Passes.h - Constructors for analyses ------*- C++ -*-===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 //
     10 // This header file defines prototypes for accessor functions that expose passes
     11 // in the analysis libraries.
     12 //
     13 //===----------------------------------------------------------------------===//
     14 
     15 #ifndef LLVM_ANALYSIS_PASSES_H
     16 #define LLVM_ANALYSIS_PASSES_H
     17 
     18 namespace llvm {
     19   class FunctionPass;
     20   class ImmutablePass;
     21   class LoopPass;
     22   class ModulePass;
     23   class Pass;
     24   class PassInfo;
     25 
     26   //===--------------------------------------------------------------------===//
     27   //
     28   // createObjCARCAAWrapperPass - This pass implements ObjC-ARC-based
     29   // alias analysis.
     30   //
     31   ImmutablePass *createObjCARCAAWrapperPass();
     32 
     33   FunctionPass *createPAEvalPass();
     34 
     35   //===--------------------------------------------------------------------===//
     36   //
     37   /// createLazyValueInfoPass - This creates an instance of the LazyValueInfo
     38   /// pass.
     39   FunctionPass *createLazyValueInfoPass();
     40 
     41   //===--------------------------------------------------------------------===//
     42   //
     43   // createDependenceAnalysisWrapperPass - This creates an instance of the
     44   // DependenceAnalysisWrapper pass.
     45   //
     46   FunctionPass *createDependenceAnalysisWrapperPass();
     47 
     48   //===--------------------------------------------------------------------===//
     49   //
     50   // createCostModelAnalysisPass - This creates an instance of the
     51   // CostModelAnalysis pass.
     52   //
     53   FunctionPass *createCostModelAnalysisPass();
     54 
     55   //===--------------------------------------------------------------------===//
     56   //
     57   // createDelinearizationPass - This pass implements attempts to restore
     58   // multidimensional array indices from linearized expressions.
     59   //
     60   FunctionPass *createDelinearizationPass();
     61 
     62   //===--------------------------------------------------------------------===//
     63   //
     64   // createDivergenceAnalysisPass - This pass determines which branches in a GPU
     65   // program are divergent.
     66   //
     67   FunctionPass *createDivergenceAnalysisPass();
     68 
     69   //===--------------------------------------------------------------------===//
     70   //
     71   // Minor pass prototypes, allowing us to expose them through bugpoint and
     72   // analyze.
     73   FunctionPass *createInstCountPass();
     74 
     75   //===--------------------------------------------------------------------===//
     76   //
     77   // createRegionInfoPass - This pass finds all single entry single exit regions
     78   // in a function and builds the region hierarchy.
     79   //
     80   FunctionPass *createRegionInfoPass();
     81 
     82   // Print module-level debug info metadata in human-readable form.
     83   ModulePass *createModuleDebugInfoPrinterPass();
     84 
     85   //===--------------------------------------------------------------------===//
     86   //
     87   // createMemDepPrinter - This pass exhaustively collects all memdep
     88   // information and prints it with -analyze.
     89   //
     90   FunctionPass *createMemDepPrinter();
     91 
     92   //===--------------------------------------------------------------------===//
     93   //
     94   // createMemDerefPrinter - This pass collects memory dereferenceability
     95   // information and prints it with -analyze.
     96   //
     97   FunctionPass *createMemDerefPrinter();
     98 
     99 }
    100 
    101 #endif
    102