hipcub/util_deprecated.hpp Source File

hipcub/util_deprecated.hpp Source File#

hipCUB: hipcub/util_deprecated.hpp Source File
util_deprecated.hpp
1 /******************************************************************************
2  * Copyright (c) 2024, Advanced Micro Devices, Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are met:
6  * * Redistributions of source code must retain the above copyright
7  * notice, this list of conditions and the following disclaimer.
8  * * Redistributions in binary form must reproduce the above copyright
9  * notice, this list of conditions and the following disclaimer in the
10  * documentation and/or other materials provided with the distribution.
11  * * Neither the name of the NVIDIA CORPORATION nor the
12  * names of its contributors may be used to endorse or promote products
13  * derived from this software without specific prior written permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18  * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY
19  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25  *
26  ******************************************************************************/
27 
28 #ifndef HIPCUB_UTIL_DEPRECATED_HPP_
29 #define HIPCUB_UTIL_DEPRECATED_HPP_
30 
31 #include "config.hpp"
32 
33 #include <iostream>
34 
35 #ifdef DOXYGEN_SHOULD_SKIP_THIS // Documentation only
36 
40  #define HIPCUB_IGNORE_DEPRECATED_API
41 
42 #endif // DOXYGEN_SHOULD_SKIP_THIS
43 
44 #if defined(HIPCUB_CUB_API) && defined(HIPCUB_IGNORE_DEPRECATED_API) \
45  && !defined(CUB_IGNORE_DEPRECATED_API)
46  #define CUB_IGNORE_DEPRECATED_API
47 #endif
48 
49 #if !defined(HIPCUB_IGNORE_DEPRECATED_API) \
50  && (defined(CUB_IGNORE_DEPRECATED_API) || defined(THRUST_IGNORE_DEPRECATED_API))
51  #define HIPCUB_IGNORE_DEPRECATED_API
52 #endif
53 
54 #ifdef HIPCUB_IGNORE_DEPRECATED_API
55  #define HIPCUB_DEPRECATED
56  #define HIPCUB_DEPRECATED_BECAUSE(MSG)
57 #else
58  #define HIPCUB_DEPRECATED [[deprecated]]
59  #define HIPCUB_DEPRECATED_BECAUSE(MSG) [[deprecated(MSG)]]
60 #endif
61 
62 #define HIPCUB_DETAIL_DEPRECATED_DEBUG_SYNCHRONOUS \
63  HIPCUB_DEPRECATED_BECAUSE("The debug_synchronous argument of the hipcub device API functions " \
64  "is deprecated and no longer has any effect.\n" \
65  "Use the compile-time definition HIPCUB_DEBUG_SYNC instead.")
66 
67 #define HIPCUB_DETAIL_RUNTIME_LOG_DEBUG_SYNCHRONOUS() \
68  do \
69  { \
70  if(debug_synchronous) \
71  { \
72  HipcubLog("The debug_synchronous argument of the hipcub device API functions is " \
73  "deprecated and no longer has any effect.\n" \
74  "Use the compile-time definition HIPCUB_DEBUG_SYNC instead.\n"); \
75  } \
76  } \
77  while(false)
78 
79 #endif // HIPCUB_UTIL_DEPRECATED_HPP_