mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-26 01:06:06 +00:00
IR: HotnessThreshold llvm::Optional => std::optional
This commit is contained in:
parent
ea47ccc78f
commit
7d43c3ba51
@ -426,7 +426,7 @@ public:
|
||||
/// compilation.
|
||||
///
|
||||
/// If threshold option is not specified, it is disabled by default.
|
||||
Optional<uint64_t> DiagnosticsHotnessThreshold = 0;
|
||||
std::optional<uint64_t> DiagnosticsHotnessThreshold = 0;
|
||||
|
||||
/// The maximum percentage profiling weights can deviate from the expected
|
||||
/// values in order to be included in misexpect diagnostics.
|
||||
|
@ -154,7 +154,7 @@ struct Config {
|
||||
llvm::StringRef mapFile;
|
||||
llvm::StringRef outputFile;
|
||||
llvm::StringRef optRemarksFilename;
|
||||
llvm::Optional<uint64_t> optRemarksHotnessThreshold = 0;
|
||||
std::optional<uint64_t> optRemarksHotnessThreshold = 0;
|
||||
llvm::StringRef optRemarksPasses;
|
||||
llvm::StringRef optRemarksFormat;
|
||||
llvm::StringRef optStatsFilename;
|
||||
|
@ -222,7 +222,7 @@ public:
|
||||
|
||||
/// Set the minimum hotness value a diagnostic needs in order to be
|
||||
/// included in optimization diagnostics.
|
||||
void setDiagnosticsHotnessThreshold(Optional<uint64_t> Threshold);
|
||||
void setDiagnosticsHotnessThreshold(std::optional<uint64_t> Threshold);
|
||||
|
||||
/// Return if hotness threshold is requested from PSI.
|
||||
bool isDiagnosticsHotnessThresholdSetFromPSI() const;
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include "llvm/Remarks/Remark.h"
|
||||
#include "llvm/Support/Error.h"
|
||||
#include <memory>
|
||||
#include <optional>
|
||||
#include <string>
|
||||
|
||||
namespace llvm {
|
||||
@ -85,7 +86,7 @@ Expected<std::unique_ptr<ToolOutputFile>>
|
||||
setupLLVMOptimizationRemarks(LLVMContext &Context, StringRef RemarksFilename,
|
||||
StringRef RemarksPasses, StringRef RemarksFormat,
|
||||
bool RemarksWithHotness,
|
||||
Optional<uint64_t> RemarksHotnessThreshold = 0);
|
||||
std::optional<uint64_t> RemarksHotnessThreshold = 0);
|
||||
|
||||
/// Setup optimization remarks that output directly to a raw_ostream.
|
||||
/// \p OS is managed by the caller and should be open for writing as long as \p
|
||||
@ -93,7 +94,7 @@ setupLLVMOptimizationRemarks(LLVMContext &Context, StringRef RemarksFilename,
|
||||
Error setupLLVMOptimizationRemarks(
|
||||
LLVMContext &Context, raw_ostream &OS, StringRef RemarksPasses,
|
||||
StringRef RemarksFormat, bool RemarksWithHotness,
|
||||
Optional<uint64_t> RemarksHotnessThreshold = 0);
|
||||
std::optional<uint64_t> RemarksHotnessThreshold = 0);
|
||||
|
||||
} // end namespace llvm
|
||||
|
||||
|
@ -153,7 +153,7 @@ struct Config {
|
||||
/// compilation.
|
||||
///
|
||||
/// If threshold option is not specified, it is disabled by default.
|
||||
llvm::Optional<uint64_t> RemarksHotnessThreshold = 0;
|
||||
std::optional<uint64_t> RemarksHotnessThreshold = 0;
|
||||
|
||||
/// The format used for serializing remarks (default: YAML).
|
||||
std::string RemarksFormat;
|
||||
|
@ -86,7 +86,7 @@ std::string getThinLTOOutputFile(const std::string &Path,
|
||||
Expected<std::unique_ptr<ToolOutputFile>> setupLLVMOptimizationRemarks(
|
||||
LLVMContext &Context, StringRef RemarksFilename, StringRef RemarksPasses,
|
||||
StringRef RemarksFormat, bool RemarksWithHotness,
|
||||
Optional<uint64_t> RemarksHotnessThreshold = 0, int Count = -1);
|
||||
std::optional<uint64_t> RemarksHotnessThreshold = 0, int Count = -1);
|
||||
|
||||
/// Setups the output file for saving statistics.
|
||||
Expected<std::unique_ptr<ToolOutputFile>>
|
||||
@ -322,7 +322,7 @@ private:
|
||||
// The full set of bitcode modules in input order.
|
||||
ModuleMapType ModuleMap;
|
||||
// The bitcode modules to compile, if specified by the LTO Config.
|
||||
Optional<ModuleMapType> ModulesToCompile;
|
||||
std::optional<ModuleMapType> ModulesToCompile;
|
||||
DenseMap<GlobalValue::GUID, StringRef> PrevailingModuleForGUID;
|
||||
} ThinLTO;
|
||||
|
||||
@ -415,7 +415,7 @@ private:
|
||||
mutable bool CalledGetMaxTasks = false;
|
||||
|
||||
// Use Optional to distinguish false from not yet initialized.
|
||||
Optional<bool> EnableSplitLTOUnit;
|
||||
std::optional<bool> EnableSplitLTOUnit;
|
||||
|
||||
// Identify symbols exported dynamically, and that therefore could be
|
||||
// referenced by a shared library not visible to the linker.
|
||||
|
@ -15,8 +15,8 @@
|
||||
#ifndef LLVM_REMARKS_HOTNESSTHRESHOLDPARSER_H
|
||||
#define LLVM_REMARKS_HOTNESSTHRESHOLDPARSER_H
|
||||
|
||||
#include "llvm/ADT/Optional.h"
|
||||
#include "llvm/Support/CommandLine.h"
|
||||
#include <optional>
|
||||
|
||||
namespace llvm {
|
||||
namespace remarks {
|
||||
@ -28,7 +28,7 @@ namespace remarks {
|
||||
//
|
||||
// Return None Optional if 'auto' is specified, indicating the value will
|
||||
// be filled later during PSI.
|
||||
inline Expected<Optional<uint64_t>> parseHotnessThresholdOption(StringRef Arg) {
|
||||
inline Expected<std::optional<uint64_t>> parseHotnessThresholdOption(StringRef Arg) {
|
||||
if (Arg == "auto")
|
||||
return std::nullopt;
|
||||
|
||||
@ -42,12 +42,12 @@ inline Expected<Optional<uint64_t>> parseHotnessThresholdOption(StringRef Arg) {
|
||||
}
|
||||
|
||||
// A simple CL parser for '*-remarks-hotness-threshold='
|
||||
class HotnessThresholdParser : public cl::parser<Optional<uint64_t>> {
|
||||
class HotnessThresholdParser : public cl::parser<std::optional<uint64_t>> {
|
||||
public:
|
||||
HotnessThresholdParser(cl::Option &O) : cl::parser<Optional<uint64_t>>(O) {}
|
||||
HotnessThresholdParser(cl::Option &O) : cl::parser<std::optional<uint64_t>>(O) {}
|
||||
|
||||
bool parse(cl::Option &O, StringRef ArgName, StringRef Arg,
|
||||
Optional<uint64_t> &V) {
|
||||
std::optional<uint64_t> &V) {
|
||||
auto ResultOrErr = parseHotnessThresholdOption(Arg);
|
||||
if (!ResultOrErr)
|
||||
return O.error("Invalid argument '" + Arg +
|
||||
|
@ -140,7 +140,7 @@ bool LLVMContext::getDiagnosticsHotnessRequested() const {
|
||||
return pImpl->DiagnosticsHotnessRequested;
|
||||
}
|
||||
|
||||
void LLVMContext::setDiagnosticsHotnessThreshold(Optional<uint64_t> Threshold) {
|
||||
void LLVMContext::setDiagnosticsHotnessThreshold(std::optional<uint64_t> Threshold) {
|
||||
pImpl->DiagnosticsHotnessThreshold = Threshold;
|
||||
}
|
||||
void LLVMContext::setMisExpectWarningRequested(bool Requested) {
|
||||
|
@ -1385,7 +1385,7 @@ public:
|
||||
/// constant.
|
||||
///
|
||||
/// If threshold option is not specified, it is disabled (0) by default.
|
||||
Optional<uint64_t> DiagnosticsHotnessThreshold = 0;
|
||||
std::optional<uint64_t> DiagnosticsHotnessThreshold = 0;
|
||||
|
||||
/// The percentage of difference between profiling branch weights and
|
||||
/// llvm.expect branch weights to tolerate when emiting MisExpect diagnostics
|
||||
|
@ -94,7 +94,7 @@ char LLVMRemarkSetupFormatError::ID = 0;
|
||||
Expected<std::unique_ptr<ToolOutputFile>> llvm::setupLLVMOptimizationRemarks(
|
||||
LLVMContext &Context, StringRef RemarksFilename, StringRef RemarksPasses,
|
||||
StringRef RemarksFormat, bool RemarksWithHotness,
|
||||
Optional<uint64_t> RemarksHotnessThreshold) {
|
||||
std::optional<uint64_t> RemarksHotnessThreshold) {
|
||||
if (RemarksWithHotness)
|
||||
Context.setDiagnosticsHotnessRequested(true);
|
||||
|
||||
@ -141,7 +141,7 @@ Expected<std::unique_ptr<ToolOutputFile>> llvm::setupLLVMOptimizationRemarks(
|
||||
Error llvm::setupLLVMOptimizationRemarks(
|
||||
LLVMContext &Context, raw_ostream &OS, StringRef RemarksPasses,
|
||||
StringRef RemarksFormat, bool RemarksWithHotness,
|
||||
Optional<uint64_t> RemarksHotnessThreshold) {
|
||||
std::optional<uint64_t> RemarksHotnessThreshold) {
|
||||
if (RemarksWithHotness)
|
||||
Context.setDiagnosticsHotnessRequested(true);
|
||||
|
||||
|
@ -1645,7 +1645,7 @@ Error LTO::runThinLTO(AddStreamFn AddStream, FileCache Cache,
|
||||
Expected<std::unique_ptr<ToolOutputFile>> lto::setupLLVMOptimizationRemarks(
|
||||
LLVMContext &Context, StringRef RemarksFilename, StringRef RemarksPasses,
|
||||
StringRef RemarksFormat, bool RemarksWithHotness,
|
||||
Optional<uint64_t> RemarksHotnessThreshold, int Count) {
|
||||
std::optional<uint64_t> RemarksHotnessThreshold, int Count) {
|
||||
std::string Filename = std::string(RemarksFilename);
|
||||
// For ThinLTO, file.opt.<format> becomes
|
||||
// file.opt.<format>.thin.<num>.<format>.
|
||||
|
@ -85,7 +85,7 @@ cl::opt<bool> RemarksWithHotness(
|
||||
cl::desc("With PGO, include profile count in optimization remarks"),
|
||||
cl::Hidden);
|
||||
|
||||
cl::opt<Optional<uint64_t>, false, remarks::HotnessThresholdParser>
|
||||
cl::opt<std::optional<uint64_t>, false, remarks::HotnessThresholdParser>
|
||||
RemarksHotnessThreshold(
|
||||
"lto-pass-remarks-hotness-threshold",
|
||||
cl::desc("Minimum profile count required for an "
|
||||
|
@ -78,7 +78,7 @@ extern cl::opt<bool> LTODiscardValueNames;
|
||||
extern cl::opt<std::string> RemarksFilename;
|
||||
extern cl::opt<std::string> RemarksPasses;
|
||||
extern cl::opt<bool> RemarksWithHotness;
|
||||
extern cl::opt<Optional<uint64_t>, false, remarks::HotnessThresholdParser>
|
||||
extern cl::opt<std::optional<uint64_t>, false, remarks::HotnessThresholdParser>
|
||||
RemarksHotnessThreshold;
|
||||
extern cl::opt<std::string> RemarksFormat;
|
||||
}
|
||||
|
@ -215,7 +215,7 @@ namespace options {
|
||||
static std::string RemarksFilename;
|
||||
static std::string RemarksPasses;
|
||||
static bool RemarksWithHotness = false;
|
||||
static Optional<uint64_t> RemarksHotnessThreshold = 0;
|
||||
static std::optional<uint64_t> RemarksHotnessThreshold = 0;
|
||||
static std::string RemarksFormat;
|
||||
|
||||
// Context sensitive PGO options.
|
||||
|
@ -166,7 +166,7 @@ static cl::opt<bool> RemarksWithHotness(
|
||||
cl::desc("With PGO, include profile count in optimization remarks"),
|
||||
cl::Hidden);
|
||||
|
||||
static cl::opt<Optional<uint64_t>, false, remarks::HotnessThresholdParser>
|
||||
static cl::opt<std::optional<uint64_t>, false, remarks::HotnessThresholdParser>
|
||||
RemarksHotnessThreshold(
|
||||
"pass-remarks-hotness-threshold",
|
||||
cl::desc("Minimum profile count required for "
|
||||
|
@ -131,7 +131,7 @@ static cl::opt<bool> RemarksWithHotness(
|
||||
cl::desc("With PGO, include profile count in optimization remarks"),
|
||||
cl::Hidden);
|
||||
|
||||
cl::opt<Optional<uint64_t>, false, remarks::HotnessThresholdParser>
|
||||
cl::opt<std::optional<uint64_t>, false, remarks::HotnessThresholdParser>
|
||||
RemarksHotnessThreshold(
|
||||
"pass-remarks-hotness-threshold",
|
||||
cl::desc("Minimum profile count required for an "
|
||||
|
@ -250,12 +250,12 @@ static cl::opt<bool> RemarksWithHotness(
|
||||
cl::desc("With PGO, include profile count in optimization remarks"),
|
||||
cl::Hidden);
|
||||
|
||||
static cl::opt<Optional<uint64_t>, false, remarks::HotnessThresholdParser>
|
||||
static cl::opt<std::optional<uint64_t>, false, remarks::HotnessThresholdParser>
|
||||
RemarksHotnessThreshold(
|
||||
"pass-remarks-hotness-threshold",
|
||||
cl::desc("Minimum profile count required for "
|
||||
"an optimization remark to be output. "
|
||||
"Use 'auto' to apply the threshold from profile summary."),
|
||||
"Use 'auto' to apply the threshold from profile summary"),
|
||||
cl::value_desc("N or 'auto'"), cl::init(0), cl::Hidden);
|
||||
|
||||
static cl::opt<std::string>
|
||||
|
Loading…
x
Reference in New Issue
Block a user