Skip to content
Snippets Groups Projects
Commit a2130ba1 authored by Yichao Yu's avatar Yichao Yu
Browse files

improve trace output

parent bf49b059
No related branches found
No related tags found
No related merge requests found
...@@ -97,6 +97,12 @@ struct __CLPost<T, decltype((void)(std::declval<T>().post()))> { ...@@ -97,6 +97,12 @@ struct __CLPost<T, decltype((void)(std::declval<T>().post()))> {
} }
}; };
template<typename T, class = void>
struct is_out_arg : std::false_type {};
template<typename T>
struct is_out_arg<T, enable_if_t<rm_ref_t<T>::is_out> > : std::true_type {};
template<typename T, class = void> template<typename T, class = void>
struct __CLPrintOut { struct __CLPrintOut {
static PYOPENCL_INLINE void static PYOPENCL_INLINE void
...@@ -106,7 +112,7 @@ struct __CLPrintOut { ...@@ -106,7 +112,7 @@ struct __CLPrintOut {
}; };
template<typename T> template<typename T>
struct __CLPrintOut<T, enable_if_t<rm_ref_t<T>::is_out> > { struct __CLPrintOut<T, enable_if_t<is_out_arg<T>::value> > {
static inline void static inline void
call(T v, std::ostream &stm) call(T v, std::ostream &stm)
{ {
...@@ -125,6 +131,9 @@ struct __CLPrint { ...@@ -125,6 +131,9 @@ struct __CLPrint {
} else { } else {
first = false; first = false;
} }
if (is_out_arg<T>::value) {
stm << "{out}";
}
v.print(stm); v.print(stm);
} }
}; };
...@@ -162,7 +171,7 @@ class CLArgPack : public ArgPack<CLArg, Types...> { ...@@ -162,7 +171,7 @@ class CLArgPack : public ArgPack<CLArg, Types...> {
std::cerr << name << "("; std::cerr << name << "(";
__CLCall<__CLPrint, sizeof...(Types) - 1, __CLCall<__CLPrint, sizeof...(Types) - 1,
decltype(*that)>::call(*that, std::cerr, true); decltype(*that)>::call(*that, std::cerr, true);
std::cerr << ") = (" << res; std::cerr << ") = (ret: " << res;
__CLCall<__CLPrintOut, sizeof...(Types) - 1, __CLCall<__CLPrintOut, sizeof...(Types) - 1,
decltype(*that)>::call(*that, std::cerr); decltype(*that)>::call(*that, std::cerr);
std::cerr << ")" << std::endl; std::cerr << ")" << std::endl;
......
...@@ -137,9 +137,7 @@ struct CLGenericArgPrinter<std::nullptr_t, void> { ...@@ -137,9 +137,7 @@ struct CLGenericArgPrinter<std::nullptr_t, void> {
}; };
template<typename T, class = void> template<typename T, class = void>
struct CLGenericArgOut { struct CLGenericArgOut : std::false_type {};
constexpr static bool value = false;
};
template<typename T, class = void> template<typename T, class = void>
class CLArg { class CLArg {
...@@ -411,16 +409,12 @@ template<typename T> ...@@ -411,16 +409,12 @@ template<typename T>
using pyopencl_buf_ele_t = typename rm_ref_t<T>::element_type; using pyopencl_buf_ele_t = typename rm_ref_t<T>::element_type;
template<typename T, class = void> template<typename T, class = void>
struct is_pyopencl_buf { struct is_pyopencl_buf : std::false_type {};
constexpr static bool value = false;
};
template<typename T> template<typename T>
struct is_pyopencl_buf< struct is_pyopencl_buf<
T, enable_if_t<std::is_base_of<pyopencl_buf<pyopencl_buf_ele_t<T> >, T, enable_if_t<std::is_base_of<pyopencl_buf<pyopencl_buf_ele_t<T> >,
rm_ref_t<T> >::value> > { rm_ref_t<T> >::value> > : std::true_type {};
constexpr static bool value = true;
};
template<ArgType AT, typename T> template<ArgType AT, typename T>
struct _ToArgBuffer<AT, T, enable_if_t<is_pyopencl_buf<T>::value && struct _ToArgBuffer<AT, T, enable_if_t<is_pyopencl_buf<T>::value &&
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment