Line data Source code
1 : //===- Transforms/Instrumentation/GCOVProfiler.h ----------------*- 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 11 : 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
|