Hint 0.1.0
Loading...
Searching...
No Matches
Macros
hint.h File Reference

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.
 

Detailed Description

Compiler attributes for host code, with shader-safe shared modifiers.