IR: HotnessThreshold llvm::Optional => std::optional

This commit is contained in:
Fangrui Song 2022-12-04 19:06:47 +00:00
parent ea47ccc78f
commit 7d43c3ba51
17 changed files with 27 additions and 26 deletions

View File

@ -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.

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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;

View File

@ -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.

View File

@ -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 +

View File

@ -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) {

View File

@ -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

View File

@ -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);

View File

@ -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>.

View File

@ -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 "

View File

@ -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;
}

View File

@ -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.

View File

@ -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 "

View File

@ -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 "

View File

@ -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>