diff options
Diffstat (limited to 'include/llvm/Transforms/PGOInstrumentation.h')
| -rw-r--r-- | include/llvm/Transforms/PGOInstrumentation.h | 26 | 
1 files changed, 20 insertions, 6 deletions
| diff --git a/include/llvm/Transforms/PGOInstrumentation.h b/include/llvm/Transforms/PGOInstrumentation.h index 19263f0f8071..c2cc76c422da 100644 --- a/include/llvm/Transforms/PGOInstrumentation.h +++ b/include/llvm/Transforms/PGOInstrumentation.h @@ -1,4 +1,4 @@ -//===- Transforms/PGOInstrumentation.h - PGO gen/use passes  ---*- C++ -*-===// +//===- Transforms/PGOInstrumentation.h - PGO gen/use passes -----*- C++ -*-===//  //  //                     The LLVM Compiler Infrastructure  // @@ -6,19 +6,27 @@  // License. See LICENSE.TXT for details.  //  //===----------------------------------------------------------------------===// +//  /// \file  /// This file provides the interface for IR based instrumentation passes (  /// (profile-gen, and profile-use). +//  //===----------------------------------------------------------------------===//  #ifndef LLVM_TRANSFORMS_PGOINSTRUMENTATION_H  #define LLVM_TRANSFORMS_PGOINSTRUMENTATION_H +#include "llvm/ADT/ArrayRef.h"  #include "llvm/IR/PassManager.h" -#include "llvm/Transforms/Instrumentation.h" +#include <cstdint> +#include <string>  namespace llvm { +class Function; +class Instruction; +class Module; +  /// The instrumentation (profile-instr-gen) pass for IR based PGO.  class PGOInstrumentationGen : public PassInfoMixin<PGOInstrumentationGen> {  public: @@ -28,9 +36,10 @@ public:  /// The profile annotation (profile-instr-use) pass for IR based PGO.  class PGOInstrumentationUse : public PassInfoMixin<PGOInstrumentationUse> {  public: -  PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);    PGOInstrumentationUse(std::string Filename = ""); +  PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM); +  private:    std::string ProfileFileName;  }; @@ -40,6 +49,7 @@ class PGOIndirectCallPromotion : public PassInfoMixin<PGOIndirectCallPromotion>  public:    PGOIndirectCallPromotion(bool IsInLTO = false, bool SamplePGO = false)        : InLTO(IsInLTO), SamplePGO(SamplePGO) {} +    PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);  private: @@ -50,12 +60,16 @@ private:  /// The profile size based optimization pass for memory intrinsics.  class PGOMemOPSizeOpt : public PassInfoMixin<PGOMemOPSizeOpt> {  public: -  PGOMemOPSizeOpt() {} +  PGOMemOPSizeOpt() = default; +    PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);  };  void setProfMetadata(Module *M, Instruction *TI, ArrayRef<uint64_t> EdgeCounts,                       uint64_t MaxCount); -} // End llvm namespace -#endif +void setIrrLoopHeaderMetadata(Module *M, Instruction *TI, uint64_t Count); + +} // end namespace llvm + +#endif // LLVM_TRANSFORMS_PGOINSTRUMENTATION_H | 
