Passes.h 3.8 KB

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