expand argument extractions with macro

Signed-off-by: Jinjie Liu <jjliu@baai.ac.cn>
This commit is contained in:
2026-01-30 14:03:38 +08:00
parent a953cbe7cc
commit 37a8f4a5be
2 changed files with 34 additions and 91 deletions
+5 -24
View File
@@ -9,7 +9,7 @@ namespace triton_tvm_ffi {
// --------------- Definitions --------------- //
#define TYPE_TABLE(V) \
#define TYPE_TABLE_NATIVE(V) \
V(I1, "i1", int8_t) \
V(I8, "i8", int8_t) \
V(I16, "i16", int16_t) \
@@ -23,7 +23,10 @@ namespace triton_tvm_ffi {
V(FP16, "fp16", double) \
V(BF16, "bf16", double) \
V(FP32, "f32", double) \
V(FP64, "fp64", double) \
V(FP64, "fp64", double)
#define TYPE_TABLE(V) \
TYPE_TABLE_NATIVE(V) \
V(PTR, "*?", void *) \
V(CONSTEXPR, "constexpr", void)
@@ -43,28 +46,6 @@ TYPE_TABLE(DEFINE_TYPE_TO_CTYPE)
#undef DEFINE_TYPE_TO_CTYPE
template <Type T> using type_to_ctype_t = typename type_to_ctype<T>::t;
template <typename T, typename = void> struct type_size {
static constexpr size_t value = 0;
};
template <typename T>
struct type_size<T, std::enable_if_t<!std::is_void_v<decltype(sizeof(T))>>> {
static constexpr size_t value = sizeof(T);
};
template <typename T> constexpr size_t type_size_v = type_size<T>::value;
template <size_t... Ns> struct max;
template <size_t... Ns> constexpr size_t max_v = max<Ns...>::value;
template <size_t N> struct max<N> { static constexpr size_t value = N; };
template <size_t N, size_t... Ns> struct max<N, Ns...> {
static constexpr size_t value = N > max_v<Ns...> ? N : max_v<Ns...>;
};
static constexpr size_t kMaxOpaqueSize = max_v<
#define DEFINE_TYPE_SIZE(type, str, ctype) type_size_v<ctype>,
TYPE_TABLE(DEFINE_TYPE_SIZE)
#undef DEFINE_TYPE_SIZE
0>;
// --------------- Implementations --------------- //
} // namespace triton_tvm_ffi