LCOV - code coverage report
Current view: top level - include/llvm/Transforms - PGOInstrumentation.h (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 2 2 100.0 %
Date: 2017-09-14 15:23:50 Functions: 0 0 -
Legend: Lines: hit not hit

          Line data    Source code
       1             : //===- Transforms/PGOInstrumentation.h - PGO gen/use passes  ---*- 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             : /// \file
      10             : /// This file provides the interface for IR based instrumentation passes (
      11             : /// (profile-gen, and profile-use).
      12             : //===----------------------------------------------------------------------===//
      13             : 
      14             : #ifndef LLVM_TRANSFORMS_PGOINSTRUMENTATION_H
      15             : #define LLVM_TRANSFORMS_PGOINSTRUMENTATION_H
      16             : 
      17             : #include "llvm/IR/PassManager.h"
      18             : #include "llvm/Transforms/Instrumentation.h"
      19             : 
      20             : namespace llvm {
      21             : 
      22             : /// The instrumentation (profile-instr-gen) pass for IR based PGO.
      23             : class PGOInstrumentationGen : public PassInfoMixin<PGOInstrumentationGen> {
      24             : public:
      25             :   PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);
      26             : };
      27             : 
      28             : /// The profile annotation (profile-instr-use) pass for IR based PGO.
      29         236 : class PGOInstrumentationUse : public PassInfoMixin<PGOInstrumentationUse> {
      30             : public:
      31             :   PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);
      32             :   PGOInstrumentationUse(std::string Filename = "");
      33             : 
      34             : private:
      35             :   std::string ProfileFileName;
      36             : };
      37             : 
      38             : /// The indirect function call promotion pass.
      39             : class PGOIndirectCallPromotion : public PassInfoMixin<PGOIndirectCallPromotion> {
      40             : public:
      41             :   PGOIndirectCallPromotion(bool IsInLTO = false, bool SamplePGO = false)
      42          28 :       : InLTO(IsInLTO), SamplePGO(SamplePGO) {}
      43             :   PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);
      44             : 
      45             : private:
      46             :   bool InLTO;
      47             :   bool SamplePGO;
      48             : };
      49             : 
      50             : /// The profile size based optimization pass for memory intrinsics.
      51             : class PGOMemOPSizeOpt : public PassInfoMixin<PGOMemOPSizeOpt> {
      52             : public:
      53             :   PGOMemOPSizeOpt() {}
      54             :   PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
      55             : };
      56             : 
      57             : void setProfMetadata(Module *M, Instruction *TI, ArrayRef<uint64_t> EdgeCounts,
      58             :                      uint64_t MaxCount);
      59             : 
      60             : } // End llvm namespace
      61             : #endif

Generated by: LCOV version 1.13