> From: Bruce Richardson [mailto:[email protected]]
> Sent: Monday, 9 February 2026 17.45
> 
> Provide a common DPDK macro for the gcc/clang builtin
> __rte_assume_aligned to mark pointers as pointing to something with
> known minimum alignment.
> 
> Signed-off-by: Bruce Richardson <[email protected]>
> ---
>  lib/eal/include/rte_common.h | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/lib/eal/include/rte_common.h
> b/lib/eal/include/rte_common.h
> index 573bf4f2ce..51a2eaf8b4 100644
> --- a/lib/eal/include/rte_common.h
> +++ b/lib/eal/include/rte_common.h
> @@ -121,6 +121,12 @@ extern "C" {
>  #define __rte_aligned(a) __attribute__((__aligned__(a)))
>  #endif
> 
> +#ifdef RTE_TOOLCHAIN_MSVC
> +#define __rte_assume_aligned(ptr, align) (ptr)
> +#else
> +#define __rte_assume_aligned __builtin_assume_aligned
> +#endif

The GCC/Clang macro supports the optional 3rd parameter (offset), but the MSVC 
doesn't.
Maybe it's better to pass (ptr, align) to the GCC/Clang variant, so the API 
consistently only supports two parameters.

If the 3rd parameter ever becomes needed, it can be implemented as a new macro.

Also, a short description of the macro would be nice.


Did you look into using e.g. __rte_assume((ptr % 16) == 0) instead?
It's relevant if it has the desired effect for MSVC, which the macro in this 
patch doesn't.

Reply via email to