[InstCombine] Signed saturation patterns
[llvm-core.git] / include / llvm / Transforms / IPO / SampleProfile.h
bloba5ad44551bf64aa751622c132f0352312b3a3e88
1 //===- SampleProfile.h - SamplePGO pass ---------- --------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 /// \file
10 /// This file provides the interface for the sampled PGO loader pass.
12 //===----------------------------------------------------------------------===//
14 #ifndef LLVM_TRANSFORMS_IPO_SAMPLEPROFILE_H
15 #define LLVM_TRANSFORMS_IPO_SAMPLEPROFILE_H
17 #include "llvm/IR/PassManager.h"
18 #include <string>
20 namespace llvm {
22 class Module;
24 /// The sample profiler data loader pass.
25 class SampleProfileLoaderPass : public PassInfoMixin<SampleProfileLoaderPass> {
26 public:
27 SampleProfileLoaderPass(std::string File = "", std::string RemappingFile = "",
28 bool IsThinLTOPreLink = false)
29 : ProfileFileName(File), ProfileRemappingFileName(RemappingFile),
30 IsThinLTOPreLink(IsThinLTOPreLink) {}
32 PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);
34 private:
35 std::string ProfileFileName;
36 std::string ProfileRemappingFileName;
37 bool IsThinLTOPreLink;
40 } // end namespace llvm
42 #endif // LLVM_TRANSFORMS_SAMPLEPROFILE_H