Line data Source code
1 : //===- SampleProfile.h - SamplePGO 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 : //
10 : /// \file
11 : /// This file provides the interface for the sampled PGO loader pass.
12 : //
13 : //===----------------------------------------------------------------------===//
14 :
15 : #ifndef LLVM_TRANSFORMS_IPO_SAMPLEPROFILE_H
16 : #define LLVM_TRANSFORMS_IPO_SAMPLEPROFILE_H
17 :
18 : #include "llvm/IR/PassManager.h"
19 : #include <string>
20 :
21 : namespace llvm {
22 :
23 : class Module;
24 :
25 : /// The sample profiler data loader pass.
26 111 : class SampleProfileLoaderPass : public PassInfoMixin<SampleProfileLoaderPass> {
27 : public:
28 37 : SampleProfileLoaderPass(std::string File = "", std::string RemappingFile = "",
29 : bool IsThinLTOPreLink = false)
30 37 : : ProfileFileName(File), ProfileRemappingFileName(RemappingFile),
31 37 : IsThinLTOPreLink(IsThinLTOPreLink) {}
32 :
33 : PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);
34 :
35 : private:
36 : std::string ProfileFileName;
37 : std::string ProfileRemappingFileName;
38 : bool IsThinLTOPreLink;
39 : };
40 :
41 : } // end namespace llvm
42 :
43 : #endif // LLVM_TRANSFORMS_SAMPLEPROFILE_H
|