#include "benchmark/benchmark.h"
#include "llvm/ADT/ArrayRef.h"
-#include "llvm/ADT/Optional.h"
#include "llvm/ADT/SmallVector.h"
#include <array>
#include <chrono>
#include <cmath>
#include <cstdint>
+#include <optional>
namespace llvm {
namespace libc_benchmarks {
#include "LibcBenchmark.h"
#include "llvm/ADT/ArrayRef.h"
-#include "llvm/ADT/Optional.h"
#include "llvm/ADT/SmallVector.h"
#include "gmock/gmock.h"
#include "gtest/gtest.h"
#include <chrono>
#include <limits>
+#include <optional>
#include <queue>
#include <vector>
#include <cstddef>
#include <llvm/ADT/ArrayRef.h>
#include <llvm/ADT/Hashing.h>
-#include <llvm/ADT/Optional.h>
#include <llvm/ADT/StringRef.h>
+#include <optional>
#include <tuple>
namespace llvm {
// every detail but is enough to uniquely identify the implementation.
struct FunctionDescriptor {
FunctionType Type;
- Optional<Contiguous> Contiguous;
- Optional<Overlap> Overlap;
- Optional<Loop> Loop;
- Optional<AlignedLoop> AlignedLoop;
- Optional<Accelerator> Accelerator;
+ std::optional<Contiguous> Contiguous;
+ std::optional<Overlap> Overlap;
+ std::optional<Loop> Loop;
+ std::optional<AlignedLoop> AlignedLoop;
+ std::optional<Accelerator> Accelerator;
ElementTypeClass ElementClass;
COMPARABLE_AND_HASHABLE(FunctionDescriptor, Type, Contiguous, Overlap, Loop,
#include <cstddef>
#include <cstdint>
#include <llvm/ADT/ArrayRef.h>
-#include <llvm/ADT/Optional.h>
#include <llvm/ADT/StringRef.h>
+#include <optional>
#include <vector>
#include <z3++.h>
RandomFunctionGenerator();
// Get the next valid FunctionDescriptor or std::nullopt.
- Optional<FunctionDescriptor> next();
+ std::optional<FunctionDescriptor> next();
private:
// Returns an expression where `Variable` is forced to be one of the `Values`.
#include "automemcpy/CodeGen.h"
#include <cassert>
-#include <llvm/ADT/Optional.h>
#include <llvm/ADT/STLExtras.h>
#include <llvm/ADT/StringSet.h>
#include <llvm/Support/FormatVariadic.h>
#include <llvm/Support/raw_ostream.h>
+#include <optional>
#include <set>
namespace llvm {
StringRef Name;
std::vector<Individual> Individuals;
std::vector<Overlap> Overlaps;
- Optional<Loop> Loop;
- Optional<AlignedLoop> AlignedLoop;
- Optional<Accelerator> Accelerator;
+ std::optional<Loop> Loop;
+ std::optional<AlignedLoop> AlignedLoop;
+ std::optional<Accelerator> Accelerator;
ElementTypeClass ElementClass;
};