Merge pull request #76370 from swiftlang/susmonteiro/cxx-span-benchmarks

[cxx-interop] Fix check to include std::span
This commit is contained in:
Susana Monteiro
2024-09-10 18:14:53 +01:00
committed by GitHub

View File

@@ -5,28 +5,25 @@
#include <set>
// FIXME swift-ci linux tests do not support std::span
#if defined(__has_include) && __has_include(<span>)
#ifndef __linux__
#include <span>
#define SPAN_DEFINED 1
#else
#define SPAN_DEFINED 0
#endif
#endif // __linux__
static const size_t spanSize = 50000;
using VectorOfU32 = std::vector<uint32_t>;
using SetOfU32 = std::set<uint32_t>;
#if SPAN_DEFINED
#ifndef __linux__
using ArrayOfU32 = uint32_t[spanSize];
using SpanOfU32 = std::span<uint32_t>;
#endif
#endif // __linux__
static inline VectorOfU32 vec;
static inline SetOfU32 set;
#if SPAN_DEFINED
#ifndef __linux__
static inline ArrayOfU32 array;
static inline SpanOfU32 span;
#endif
#endif // __linux__
inline void initVector(size_t size) {
if (!vec.empty()) {
@@ -47,7 +44,7 @@ inline void initSet(size_t size) {
}
}
#if SPAN_DEFINED
#ifndef __linux__
inline void initSpan() {
if (!span.empty()) {
return;
@@ -57,7 +54,7 @@ inline void initSpan() {
}
span = SpanOfU32(array);
}
#endif
#endif // __linux__
inline VectorOfU32 makeVector32(size_t size) {
initVector(size);