Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. //===-- llvm/Analysis/Passes.h - Constructors for analyses ------*- C++ -*-===//
  2. //
  3. // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  4. // See https://llvm.org/LICENSE.txt for license information.
  5. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  6. //
  7. //===----------------------------------------------------------------------===//
  8. //
  9. // This header file defines prototypes for accessor functions that expose passes
  10. // in the analysis libraries.
  11. //
  12. //===----------------------------------------------------------------------===//
  13.  
  14. #ifndef LLVM_ANALYSIS_PASSES_H
  15. #define LLVM_ANALYSIS_PASSES_H
  16.  
  17. namespace llvm {
  18.   class FunctionPass;
  19.   class ImmutablePass;
  20.   class ModulePass;
  21.  
  22.   //===--------------------------------------------------------------------===//
  23.   //
  24.   /// createLazyValueInfoPass - This creates an instance of the LazyValueInfo
  25.   /// pass.
  26.   FunctionPass *createLazyValueInfoPass();
  27.  
  28.   //===--------------------------------------------------------------------===//
  29.   //
  30.   // createDependenceAnalysisWrapperPass - This creates an instance of the
  31.   // DependenceAnalysisWrapper pass.
  32.   //
  33.   FunctionPass *createDependenceAnalysisWrapperPass();
  34.  
  35.   //===--------------------------------------------------------------------===//
  36.   //
  37.   // createCostModelAnalysisPass - This creates an instance of the
  38.   // CostModelAnalysis pass.
  39.   //
  40.   FunctionPass *createCostModelAnalysisPass();
  41.  
  42.   //===--------------------------------------------------------------------===//
  43.   //
  44.   // createDelinearizationPass - This pass implements attempts to restore
  45.   // multidimensional array indices from linearized expressions.
  46.   //
  47.   FunctionPass *createDelinearizationPass();
  48.  
  49.   //===--------------------------------------------------------------------===//
  50.   //
  51.   // createLegacyDivergenceAnalysisPass - This pass determines which branches in a GPU
  52.   // program are divergent.
  53.   //
  54.   FunctionPass *createLegacyDivergenceAnalysisPass();
  55.  
  56.   //===--------------------------------------------------------------------===//
  57.   //
  58.   // Minor pass prototypes, allowing us to expose them through bugpoint and
  59.   // analyze.
  60.   FunctionPass *createInstCountPass();
  61.  
  62.   //===--------------------------------------------------------------------===//
  63.   //
  64.   // createRegionInfoPass - This pass finds all single entry single exit regions
  65.   // in a function and builds the region hierarchy.
  66.   //
  67.   FunctionPass *createRegionInfoPass();
  68.  
  69.   // Print module-level debug info metadata in human-readable form.
  70.   ModulePass *createModuleDebugInfoPrinterPass();
  71.  
  72.   //===--------------------------------------------------------------------===//
  73.   //
  74.   // createMemDepPrinter - This pass exhaustively collects all memdep
  75.   // information and prints it with -analyze.
  76.   //
  77.   FunctionPass *createMemDepPrinter();
  78.  
  79.   //===--------------------------------------------------------------------===//
  80.   //
  81.   // createMemDerefPrinter - This pass collects memory dereferenceability
  82.   // information and prints it with -analyze.
  83.   //
  84.   FunctionPass *createMemDerefPrinter();
  85.  
  86.   //===--------------------------------------------------------------------===//
  87.   //
  88.   // createMustExecutePrinter - This pass collects information about which
  89.   // instructions within a loop are guaranteed to execute if the loop header is
  90.   // entered and prints it with -analyze.
  91.   //
  92.   FunctionPass *createMustExecutePrinter();
  93.  
  94.   //===--------------------------------------------------------------------===//
  95.   //
  96.   // createMustBeExecutedContextPrinter - This pass prints information about which
  97.   // instructions are guaranteed to execute together (run with -analyze).
  98.   //
  99.   ModulePass *createMustBeExecutedContextPrinter();
  100.  
  101. }
  102.  
  103. #endif
  104.