Home | History | Annotate | Download | only in Transforms
      1 //===- Transforms/GCOVProfiler.h - GCOVProfiler pass  ----------*- 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 the GCOV style profiler  pass.
     11 //===----------------------------------------------------------------------===//
     12 
     13 #ifndef LLVM_TRANSFORMS_GCOVPROFILER_H
     14 #define LLVM_TRANSFORMS_GCOVPROFILER_H
     15 
     16 #include "llvm/IR/PassManager.h"
     17 #include "llvm/Transforms/Instrumentation.h"
     18 
     19 namespace llvm {
     20 /// The gcov-style instrumentation pass
     21 class GCOVProfilerPass : public PassInfoMixin<GCOVProfilerPass> {
     22 public:
     23   GCOVProfilerPass(const GCOVOptions &Options = GCOVOptions::getDefault()) : GCOVOpts(Options) { }
     24   PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);
     25 
     26 private:
     27   GCOVOptions GCOVOpts;
     28 };
     29 
     30 } // End llvm namespace
     31 #endif
     32