From 660c33e51de20b5a414b029a6dbae8a33aefabd4 Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Sat, 14 Jan 2023 21:10:14 -0800 Subject: [PATCH] [libc] Use std::optional instead of llvm::Optional (NFC) This is part of an effort to migrate from llvm::Optional to std::optional: https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716 --- libc/benchmarks/JSON.cpp | 2 +- libc/benchmarks/automemcpy/lib/CodeGenMain.cpp | 3 ++- .../automemcpy/lib/RandomFunctionGenerator.cpp | 15 ++++++++------- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/libc/benchmarks/JSON.cpp b/libc/benchmarks/JSON.cpp index fd5cf4573344..6443ff4ca8ba 100644 --- a/libc/benchmarks/JSON.cpp +++ b/libc/benchmarks/JSON.cpp @@ -105,7 +105,7 @@ static Error fromJson(const json::Value &V, "Can't parse BenchmarkLog, not a String"); const auto String = *V.getAsString(); auto Parsed = - llvm::StringSwitch>(String) + llvm::StringSwitch>(String) .Case("None", libc_benchmarks::BenchmarkLog::None) .Case("Last", libc_benchmarks::BenchmarkLog::Last) .Case("Full", libc_benchmarks::BenchmarkLog::Full) diff --git a/libc/benchmarks/automemcpy/lib/CodeGenMain.cpp b/libc/benchmarks/automemcpy/lib/CodeGenMain.cpp index 618e4f1186e3..3f4e6fc0423a 100644 --- a/libc/benchmarks/automemcpy/lib/CodeGenMain.cpp +++ b/libc/benchmarks/automemcpy/lib/CodeGenMain.cpp @@ -1,5 +1,6 @@ #include "automemcpy/CodeGen.h" #include "automemcpy/RandomFunctionGenerator.h" +#include #include namespace llvm { @@ -9,7 +10,7 @@ std::vector generateFunctionDescriptors() { std::unordered_set Seen; std::vector FunctionDescriptors; RandomFunctionGenerator P; - while (Optional MaybeFD = P.next()) { + while (std::optional MaybeFD = P.next()) { FunctionDescriptor FD = *MaybeFD; if (Seen.count(FD)) // FIXME: Z3 sometimes returns twice the same object. continue; diff --git a/libc/benchmarks/automemcpy/lib/RandomFunctionGenerator.cpp b/libc/benchmarks/automemcpy/lib/RandomFunctionGenerator.cpp index c362874bb45f..f438e2a405bd 100644 --- a/libc/benchmarks/automemcpy/lib/RandomFunctionGenerator.cpp +++ b/libc/benchmarks/automemcpy/lib/RandomFunctionGenerator.cpp @@ -157,7 +157,7 @@ RandomFunctionGenerator::RandomFunctionGenerator() // Creates SizeSpan from Begin/End values. // Returns std::nullopt if Begin==End. -static Optional AsSizeSpan(size_t Begin, size_t End) { +static std::optional AsSizeSpan(size_t Begin, size_t End) { if (Begin == End) return std::nullopt; SizeSpan SS; @@ -169,7 +169,7 @@ static Optional AsSizeSpan(size_t Begin, size_t End) { // Generic method to create a `Region` struct with a Span or std::nullopt if // span is empty. template -static Optional As(size_t Begin, size_t End) { +static std::optional As(size_t Begin, size_t End) { if (auto Span = AsSizeSpan(Begin, End)) { Region Output; Output.Span = *Span; @@ -179,7 +179,7 @@ static Optional As(size_t Begin, size_t End) { } // Returns a Loop struct or std::nullopt if span is empty. -static Optional AsLoop(size_t Begin, size_t End, size_t BlockSize) { +static std::optional AsLoop(size_t Begin, size_t End, size_t BlockSize) { if (auto Span = AsSizeSpan(Begin, End)) { Loop Output; Output.Span = *Span; @@ -190,9 +190,10 @@ static Optional AsLoop(size_t Begin, size_t End, size_t BlockSize) { } // Returns an AlignedLoop struct or std::nullopt if span is empty. -static Optional AsAlignedLoop(size_t Begin, size_t End, - size_t BlockSize, size_t Alignment, - AlignArg AlignTo) { +static std::optional AsAlignedLoop(size_t Begin, size_t End, + size_t BlockSize, + size_t Alignment, + AlignArg AlignTo) { if (auto Loop = AsLoop(Begin, End, BlockSize)) { AlignedLoop Output; Output.Loop = *Loop; @@ -203,7 +204,7 @@ static Optional AsAlignedLoop(size_t Begin, size_t End, return std::nullopt; } -Optional RandomFunctionGenerator::next() { +std::optional RandomFunctionGenerator::next() { if (Solver.check() != z3::sat) return {};