Update benchmark to allow it to be built in runtimes driven mode. It is still useful to have an in-tree benchmark suite. On my side, I am working on some allocators related benchmarks. Due to the broken state of this in-tree benchmark suite, I have to frequently port changes between two workspace. Also, having benchmark suite can make it easier to track performance change in a consistent view. Assisted-by: AI tools, checked manually
45 lines
1.1 KiB
C++
45 lines
1.1 KiB
C++
#ifndef LLVM_LIBC_BENCHMARKS_LIBC_FUNCTION_PROTOTYPES_H
|
|
#define LLVM_LIBC_BENCHMARKS_LIBC_FUNCTION_PROTOTYPES_H
|
|
|
|
#include "llvm/ADT/StringRef.h"
|
|
|
|
namespace llvm {
|
|
namespace libc_benchmarks {
|
|
|
|
/// Memory function prototype and configuration.
|
|
using MemcpyFunction = void *(*)(void *__restrict, const void *__restrict,
|
|
size_t);
|
|
struct MemcpyConfiguration {
|
|
MemcpyFunction function;
|
|
llvm::StringRef name;
|
|
};
|
|
|
|
using MemmoveFunction = void *(*)(void *, const void *, size_t);
|
|
struct MemmoveConfiguration {
|
|
MemmoveFunction function;
|
|
llvm::StringRef name;
|
|
};
|
|
|
|
using MemsetFunction = void *(*)(void *, int, size_t);
|
|
struct MemsetConfiguration {
|
|
MemsetFunction function;
|
|
llvm::StringRef name;
|
|
};
|
|
|
|
using BzeroFunction = void (*)(void *, size_t);
|
|
struct BzeroConfiguration {
|
|
BzeroFunction function;
|
|
llvm::StringRef name;
|
|
};
|
|
|
|
using MemcmpOrBcmpFunction = int (*)(const void *, const void *, size_t);
|
|
struct MemcmpOrBcmpConfiguration {
|
|
MemcmpOrBcmpFunction function;
|
|
llvm::StringRef name;
|
|
};
|
|
|
|
} // namespace libc_benchmarks
|
|
} // namespace llvm
|
|
|
|
#endif /* LLVM_LIBC_BENCHMARKS_LIBC_FUNCTION_PROTOTYPES_H */
|