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