27#ifndef OPM_VALGRIND_HPP
28#define OPM_VALGRIND_HPP
31#include <valgrind/memcheck.h>
34#include <opm/common/utility/gpuDecorators.hpp>
44#if !defined NDEBUG && HAVE_VALGRIND && !OPM_IS_INSIDE_DEVICE_FUNCTION
45 return RUNNING_ON_VALGRIND;
76OPM_HOST_DEVICE
inline bool CheckDefined([[maybe_unused]]
const T& value)
78#if !defined NDEBUG && HAVE_VALGRIND && !OPM_IS_INSIDE_DEVICE_FUNCTION
79 auto tmp = VALGRIND_CHECK_MEM_IS_DEFINED(&value,
sizeof(T));
111#if !defined NDEBUG && HAVE_VALGRIND && !OPM_IS_INSIDE_DEVICE_FUNCTION
112 auto tmp = VALGRIND_CHECK_MEM_IS_ADDRESSABLE(&value,
sizeof(T));
145OPM_HOST_DEVICE
inline bool CheckDefined([[maybe_unused]]
const T* value,
146 [[maybe_unused]]
int size)
148#if !defined NDEBUG && HAVE_VALGRIND && !OPM_IS_INSIDE_DEVICE_FUNCTION
149 auto tmp = VALGRIND_CHECK_MEM_IS_DEFINED(value, size*
sizeof(T));
174OPM_HOST_DEVICE
inline void SetUndefined([[maybe_unused]]
const T& value)
176#if !defined NDEBUG && HAVE_VALGRIND && !OPM_IS_INSIDE_DEVICE_FUNCTION
177 VALGRIND_MAKE_MEM_UNDEFINED(&value,
sizeof(T));
200OPM_HOST_DEVICE
inline void SetUndefined([[maybe_unused]]
const T* value,
201 [[maybe_unused]]
int size)
203#if !defined NDEBUG && HAVE_VALGRIND && !OPM_IS_INSIDE_DEVICE_FUNCTION
204 VALGRIND_MAKE_MEM_UNDEFINED(value, size*
sizeof(T));
225OPM_HOST_DEVICE
inline void SetDefined([[maybe_unused]]
const T& value)
227#if !defined NDEBUG && HAVE_VALGRIND && !OPM_IS_INSIDE_DEVICE_FUNCTION
228 VALGRIND_MAKE_MEM_DEFINED(&value,
sizeof(T));
251OPM_HOST_DEVICE
inline void SetDefined([[maybe_unused]]
const T* value,
252 [[maybe_unused]]
int n)
254#if !defined NDEBUG && HAVE_VALGRIND && !OPM_IS_INSIDE_DEVICE_FUNCTION
255 VALGRIND_MAKE_MEM_DEFINED(value, n*
sizeof(T));
276OPM_HOST_DEVICE
inline void SetNoAccess([[maybe_unused]]
const T& value)
278#if !defined NDEBUG && HAVE_VALGRIND && !OPM_IS_INSIDE_DEVICE_FUNCTION
279 VALGRIND_MAKE_MEM_NOACCESS(&value,
sizeof(T));
300OPM_HOST_DEVICE
inline void SetNoAccess([[maybe_unused]]
const T* value,
301 [[maybe_unused]]
int size)
303#if !defined NDEBUG && HAVE_VALGRIND && !OPM_IS_INSIDE_DEVICE_FUNCTION
304 VALGRIND_MAKE_MEM_NOACCESS(value, size*
sizeof(T));
OPM_HOST_DEVICE bool CheckAddressable(const T &value)
Make valgrind complain if any of the memory occupied by an object is not addressable.
Definition Valgrind.hpp:108
OPM_HOST_DEVICE bool IsRunning()
Returns whether the program is running under Valgrind or not.
Definition Valgrind.hpp:42
OPM_HOST_DEVICE void SetDefined(const T &value)
Make the memory on which an object resides defined.
Definition Valgrind.hpp:225
OPM_HOST_DEVICE void SetUndefined(const T &value)
Make the memory on which an object resides undefined in valgrind runs.
Definition Valgrind.hpp:174
OPM_HOST_DEVICE bool CheckDefined(const T &value)
Make valgrind complain if any of the memory occupied by an object is undefined.
Definition Valgrind.hpp:76
OPM_HOST_DEVICE void SetNoAccess(const T &value)
Make valgrind complain if an object's memory is accessed.
Definition Valgrind.hpp:276
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30