diff options
author | shadchin <shadchin@yandex-team.ru> | 2022-02-10 16:44:39 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:44:39 +0300 |
commit | e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (patch) | |
tree | 64175d5cadab313b3e7039ebaa06c5bc3295e274 /contrib/libs/llvm12/include/llvm/Remarks/HotnessThresholdParser.h | |
parent | 2598ef1d0aee359b4b6d5fdd1758916d5907d04f (diff) | |
download | ydb-e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0.tar.gz |
Restoring authorship annotation for <shadchin@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/libs/llvm12/include/llvm/Remarks/HotnessThresholdParser.h')
-rw-r--r-- | contrib/libs/llvm12/include/llvm/Remarks/HotnessThresholdParser.h | 148 |
1 files changed, 74 insertions, 74 deletions
diff --git a/contrib/libs/llvm12/include/llvm/Remarks/HotnessThresholdParser.h b/contrib/libs/llvm12/include/llvm/Remarks/HotnessThresholdParser.h index 40784040b7..1d53f5eea5 100644 --- a/contrib/libs/llvm12/include/llvm/Remarks/HotnessThresholdParser.h +++ b/contrib/libs/llvm12/include/llvm/Remarks/HotnessThresholdParser.h @@ -1,74 +1,74 @@ -#pragma once - -#ifdef __GNUC__ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-parameter" -#endif - -//===- HotnessThresholdParser.h - Parser for hotness threshold --*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -/// -/// \file -/// This file implements a simple parser to decode commandline option for -/// remarks hotness threshold that supports both int and a special 'auto' value. -/// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_REMARKS_HOTNESSTHRESHOLDPARSER_H -#define LLVM_REMARKS_HOTNESSTHRESHOLDPARSER_H - -#include "llvm/ADT/Optional.h" -#include "llvm/Support/CommandLine.h" - -namespace llvm { -namespace remarks { - -// Parse remarks hotness threshold argument value. -// Valid option values are -// 1. integer: manually specified threshold; or -// 2. string 'auto': automatically get threshold from profile summary. -// -// Return None Optional if 'auto' is specified, indicating the value will -// be filled later during PSI. -inline Expected<Optional<uint64_t>> parseHotnessThresholdOption(StringRef Arg) { - if (Arg == "auto") - return None; - - int64_t Val; - if (Arg.getAsInteger(10, Val)) - return createStringError(llvm::inconvertibleErrorCode(), - "Not an integer: %s", Arg.data()); - - // Negative integer effectively means no threshold - return Val < 0 ? 0 : Val; -} - -// A simple CL parser for '*-remarks-hotness-threshold=' -class HotnessThresholdParser : public cl::parser<Optional<uint64_t>> { -public: - HotnessThresholdParser(cl::Option &O) : cl::parser<Optional<uint64_t>>(O) {} - - bool parse(cl::Option &O, StringRef ArgName, StringRef Arg, - Optional<uint64_t> &V) { - auto ResultOrErr = parseHotnessThresholdOption(Arg); - if (!ResultOrErr) - return O.error("Invalid argument '" + Arg + - "', only integer or 'auto' is supported."); - - V = *ResultOrErr; - return false; - } -}; - -} // namespace remarks -} // namespace llvm -#endif // LLVM_REMARKS_HOTNESSTHRESHOLDPARSER_H - -#ifdef __GNUC__ -#pragma GCC diagnostic pop -#endif +#pragma once + +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-parameter" +#endif + +//===- HotnessThresholdParser.h - Parser for hotness threshold --*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +/// +/// \file +/// This file implements a simple parser to decode commandline option for +/// remarks hotness threshold that supports both int and a special 'auto' value. +/// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_REMARKS_HOTNESSTHRESHOLDPARSER_H +#define LLVM_REMARKS_HOTNESSTHRESHOLDPARSER_H + +#include "llvm/ADT/Optional.h" +#include "llvm/Support/CommandLine.h" + +namespace llvm { +namespace remarks { + +// Parse remarks hotness threshold argument value. +// Valid option values are +// 1. integer: manually specified threshold; or +// 2. string 'auto': automatically get threshold from profile summary. +// +// Return None Optional if 'auto' is specified, indicating the value will +// be filled later during PSI. +inline Expected<Optional<uint64_t>> parseHotnessThresholdOption(StringRef Arg) { + if (Arg == "auto") + return None; + + int64_t Val; + if (Arg.getAsInteger(10, Val)) + return createStringError(llvm::inconvertibleErrorCode(), + "Not an integer: %s", Arg.data()); + + // Negative integer effectively means no threshold + return Val < 0 ? 0 : Val; +} + +// A simple CL parser for '*-remarks-hotness-threshold=' +class HotnessThresholdParser : public cl::parser<Optional<uint64_t>> { +public: + HotnessThresholdParser(cl::Option &O) : cl::parser<Optional<uint64_t>>(O) {} + + bool parse(cl::Option &O, StringRef ArgName, StringRef Arg, + Optional<uint64_t> &V) { + auto ResultOrErr = parseHotnessThresholdOption(Arg); + if (!ResultOrErr) + return O.error("Invalid argument '" + Arg + + "', only integer or 'auto' is supported."); + + V = *ResultOrErr; + return false; + } +}; + +} // namespace remarks +} // namespace llvm +#endif // LLVM_REMARKS_HOTNESSTHRESHOLDPARSER_H + +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif |