Passes.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  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. // createObjCARCAAWrapperPass - This pass implements ObjC-ARC-based
  27. // alias analysis.
  28. //
  29. ImmutablePass *createObjCARCAAWrapperPass();
  30. FunctionPass *createPAEvalPass();
  31. //===--------------------------------------------------------------------===//
  32. //
  33. /// createLazyValueInfoPass - This creates an instance of the LazyValueInfo
  34. /// pass.
  35. FunctionPass *createLazyValueInfoPass();
  36. //===--------------------------------------------------------------------===//
  37. //
  38. // createDependenceAnalysisWrapperPass - This creates an instance of the
  39. // DependenceAnalysisWrapper pass.
  40. //
  41. FunctionPass *createDependenceAnalysisWrapperPass();
  42. //===--------------------------------------------------------------------===//
  43. //
  44. // createCostModelAnalysisPass - This creates an instance of the
  45. // CostModelAnalysis pass.
  46. //
  47. FunctionPass *createCostModelAnalysisPass();
  48. //===--------------------------------------------------------------------===//
  49. //
  50. // createDelinearizationPass - This pass implements attempts to restore
  51. // multidimensional array indices from linearized expressions.
  52. //
  53. FunctionPass *createDelinearizationPass();
  54. //===--------------------------------------------------------------------===//
  55. //
  56. // createLegacyDivergenceAnalysisPass - This pass determines which branches in a GPU
  57. // program are divergent.
  58. //
  59. FunctionPass *createLegacyDivergenceAnalysisPass();
  60. //===--------------------------------------------------------------------===//
  61. //
  62. // Minor pass prototypes, allowing us to expose them through bugpoint and
  63. // analyze.
  64. FunctionPass *createInstCountPass();
  65. //===--------------------------------------------------------------------===//
  66. //
  67. // createRegionInfoPass - This pass finds all single entry single exit regions
  68. // in a function and builds the region hierarchy.
  69. //
  70. FunctionPass *createRegionInfoPass();
  71. // Print module-level debug info metadata in human-readable form.
  72. ModulePass *createModuleDebugInfoPrinterPass();
  73. //===--------------------------------------------------------------------===//
  74. //
  75. // createMemDepPrinter - This pass exhaustively collects all memdep
  76. // information and prints it with -analyze.
  77. //
  78. FunctionPass *createMemDepPrinter();
  79. //===--------------------------------------------------------------------===//
  80. //
  81. // createMemDerefPrinter - This pass collects memory dereferenceability
  82. // information and prints it with -analyze.
  83. //
  84. FunctionPass *createMemDerefPrinter();
  85. //===--------------------------------------------------------------------===//
  86. //
  87. // createMustExecutePrinter - This pass collects information about which
  88. // instructions within a loop are guaranteed to execute if the loop header is
  89. // entered and prints it with -analyze.
  90. //
  91. FunctionPass *createMustExecutePrinter();
  92. //===--------------------------------------------------------------------===//
  93. //
  94. // createMustBeExecutedContextPrinter - This pass prints information about which
  95. // instructions are guaranteed to execute together (run with -analyze).
  96. //
  97. ModulePass *createMustBeExecutedContextPrinter();
  98. }
  99. #endif
  100. #ifdef __GNUC__
  101. #pragma GCC diagnostic pop
  102. #endif