LLVM 17.0.0git
SampleProfile.h
Go to the documentation of this file.
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.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef LLVM_TRANSFORMS_IPO_SAMPLEPROFILE_H
15#define LLVM_TRANSFORMS_IPO_SAMPLEPROFILE_H
16
18#include "llvm/IR/PassManager.h"
19#include "llvm/Pass.h"
20#include <string>
21
22namespace llvm {
23
24class Module;
25
26namespace vfs {
27class FileSystem;
28} // namespace vfs
29
30/// The sample profiler data loader pass.
31class SampleProfileLoaderPass : public PassInfoMixin<SampleProfileLoaderPass> {
32public:
34 std::string File = "", std::string RemappingFile = "",
37
39
40private:
41 std::string ProfileFileName;
42 std::string ProfileRemappingFileName;
43 const ThinOrFullLTOPhase LTOPhase;
45};
46
47} // end namespace llvm
48
49#endif // LLVM_TRANSFORMS_IPO_SAMPLEPROFILE_H
This file defines the RefCountedBase, ThreadSafeRefCountedBase, and IntrusiveRefCntPtr classes.
Machine Check Debug Module
This header defines various interfaces for pass management in LLVM.
A container for analyses that lazily runs them and caches their results.
Definition: PassManager.h:620
A smart pointer to a reference-counted object that inherits from RefCountedBase or ThreadSafeRefCount...
A Module instance is used to store all the information related to an LLVM module.
Definition: Module.h:65
A set of analyses that are preserved following a run of a transformation pass.
Definition: PassManager.h:152
The sample profiler data loader pass.
Definition: SampleProfile.h:31
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
ThinOrFullLTOPhase
This enumerates the LLVM full LTO or ThinLTO optimization phases.
Definition: Pass.h:76
@ None
No LTO/ThinLTO behavior needed.
A CRTP mix-in to automatically provide informational APIs needed for passes.
Definition: PassManager.h:371