|
Hint 0.1.0
|
Compiler attributes for host code, with shader-safe shared modifiers. More...
Go to the source code of this file.
Macros | |
| #define | hint_has_attribute(__x) 0 |
__has_attribute(x) | |
| #define | hint_diagnose_if(condition, message) |
| Reject a call when Clang can prove that its arguments violate a precondition. | |
| #define | hint_has_declspec_attribute(__x) 0 |
portable __has_declspec_attribute(__x) | |
| #define | hint_empty_bases |
| Allow multiple empty base subobjects to share storage under the MS ABI. | |
| #define | hint_const |
[[const]] is not const | |
| #define | hint_pure |
[[pure]] | |
| #define | hint_lifetimebound |
[[lifetimebound]] | |
| #define | hint_noescape |
portable __attribute__((noescape)) | |
| #define | hint_inline inline |
inline [[always_inline]] | |
| #define | hint_flatten |
portable [[flatten]] | |
| #define | hint_artificial |
[[artificial]]. | |
| #define | hint_noinline |
[[noinline]] | |
| #define | hint_optnone |
[[optnone]] | |
| #define | hint_weak |
[[weak]] | |
| #define | hint_internal_linkage |
[[internal_linkage]] | |
| #define | hint_preferred_name(x) |
portable [[clang::preferred_name(x)]] annotations | |
| #define | hint_visibility(...) |
[[visibility(x)]] | |
| #define | hint_exclude_from_explicit_instantiation |
| exclude this member from explicit template instantiation. | |
| #define | hint_hidden hint_visibility("hidden") hint_exclude_from_explicit_instantiation |
[[visibility("hidden")]] [[exclude_from_explicit_instantiations]] | |
| #define | hint_constinit |
constinit | |
| #define | hint_uninitialized |
[[clang::uninitialized]] | |
| #define | hint_reinitializes |
[[clang::reinitializes]] | |
| #define | hint_target(x) __attribute__((target(x))) |
| Compile a function with the named target features. | |
| #define | hint_target_clones(...) __attribute__((target_clones(__VA_ARGS__))) |
| Request compiler-generated target variants and a runtime resolver. | |
| #define | hint_hot |
[[hot]] | |
| #define | hint_cold |
[[cold]] | |
| #define | hint_consumable(__x) |
| Each class that uses any typestate annotations must first be marked using this attribute. | |
| #define | hint_callable_when(...) |
| #define | hint_param_typestate(...) |
| #define | hint_return_typestate(...) |
| #define | hint_moving hint_return_typestate("consumed") hint_param_typestate("unconsumed") |
[[return_typestate("consumed")]] [[param_typestate("unconsumed")]] | |
| #define | hint_set_typestate(...) |
| #define | hint_test_typestate(...) |
| #define | hint_no_thread_safety_analysis |
| #define | hint_lockable |
| #define | hint_scoped_lockable |
| #define | hint_guarded_var |
| #define | hint_pt_guarded_var |
| #define | hint_guarded_by(x) |
| #define | hint_pt_guarded_by(x) |
| #define | hint_acquired_before(...) |
| #define | hint_acquired_after(...) |
| #define | hint_exclusive_lock_function(...) |
| #define | hint_shared_trylock_function(...) |
| #define | hint_unlock_function(...) |
| #define | hint_lock_returned(__x) |
| #define | hint_locks_excluded(...) |
| #define | hint_exclusive_locks_required(...) |
| #define | hint_shared_locks_required(...) |
| #define | hint_acquire_handle(__x) |
| indicates this method returns an acquired resource | |
| #define | hint_release_handle(__x) |
| Indicates this argument is an acquired resource that is being released with a tag. | |
| #define | hint_use_handle(__x) |
| indicates this argument is a use of a resource, but does not release it. | |
| #define | hint_align(x) |
| Align a declaration, including a function entry, when supported. | |
| #define | hint_assume_aligned(x) |
Indicates a function returns a pointer with alignment at least x. | |
| #define | hint_align_value(x) |
[[align_value(x)]] | |
| #define | hint_malloc |
[[malloc]] | |
| #define | hint_alloc_align(__N) |
[[alloc_align(N)]] | |
| #define | hint_alloc_size(__N) |
[[alloc_size(x)]] | |
| #define | hint_null_terminated_string_arg(x) |
The N th argumnt is a null terminated string. | |
| #define | hint_callback(...) |
[[callback(...)]] | |
| #define | hint_noreturn |
gcc-style [[noreturn]] | |
| #define | hint_returns_nonnull |
[[returns_nonnnull]] | |
| #define | hint_nonnull(...) |
portable [[nonnnull(...)]] | |
| #define | hint_Nonnull |
_Nonnull | |
| #define | hint_Nullable |
_Nullable | |
| #define | hint_Null_unspecified |
_Null_unspecified | |
| #define | hint_host |
portable __host__ for CUDA | |
| #define | hint_device |
portable __device__ for CUDA | |
| #define | hint_global |
portable __global__ for CUDA | |
| #define | hint_hd hint_host hint_device |
| applies both hint_host and hint_device | |
| #define | hint_nonblocking |
| Declares a function does not block. | |
| #define | hint_blocking |
| Declares a function potentially blocks. Prevents inference of hint_nonblocking. | |
| #define | hint_nonallocating |
| Declares a function does not allocate heap memory. | |
| #define | hint_allocating |
Declares a function potentially allocates heap memory. Prevents inference of nonallocating. | |
| #define | hint_noalloc(__x) |
a bool parameterized version of hint_nonallocating | |
| #define | hint_noblock(__x) |
a bool parameterized version of hint_nonblocking | |
| #define | hint_constexpr constexpr |
| Spell constexpr in C++ and omit it in shared shader declarations. | |
Compiler attributes for host code, with shader-safe shared modifiers.