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