Files
archived-llvm/include/llvm/Transforms/SampleProfile.h
Dehao Chen 61b704697a Separate the logic when handling indirect calls in SamplePGO ThinLTO compile phase and other phases.
Summary: In SamplePGO ThinLTO compile phase, we will not invoke ICP as it may introduce confusion to the 2nd annotation. This patch extracted that logic and makes it clearer before profile annotation. In the mean time, we need to make function importing process both inlined callsites as well as not promoted indirect callsites.

Reviewers: tejohnson

Reviewed By: tejohnson

Subscribers: sanjoy, mehdi_amini, llvm-commits, inglorion

Differential Revision: https://reviews.llvm.org/D38094

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314619 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-01 05:24:51 +00:00

34 lines
1.1 KiB
C++

//===- Transforms/SampleProfile.h - SamplePGO pass--------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
/// \file
/// This file provides the interface for the sampled PGO loader pass.
//===----------------------------------------------------------------------===//
#ifndef LLVM_TRANSFORMS_SAMPLEPROFILE_H
#define LLVM_TRANSFORMS_SAMPLEPROFILE_H
#include "llvm/IR/PassManager.h"
namespace llvm {
/// The sample profiler data loader pass.
class SampleProfileLoaderPass : public PassInfoMixin<SampleProfileLoaderPass> {
public:
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);
SampleProfileLoaderPass(std::string File = "", bool IsThinLTOPreLink = false)
: ProfileFileName(File), IsThinLTOPreLink(IsThinLTOPreLink) {}
private:
std::string ProfileFileName;
bool IsThinLTOPreLink;
};
} // End llvm namespace
#endif