Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
SWIFT
SWIFTsim
Commits
ec54107b
Commit
ec54107b
authored
Aug 16, 2017
by
James Willis
Browse files
Added macro to assign a restrict pointer to an array and inform compiler that is aligned.
parent
8b0c7e5d
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/align.h
View file @
ec54107b
...
...
@@ -58,6 +58,30 @@
#define swift_align_information(array, alignment) ;
#endif
/**
* @brief Macro to create a restrict pointer to an array and tell the compiler that the given array has the specified
* alignment.
*
* Note that this turns into a no-op but gives information to the compiler.
*
* @param array The array.
* @param ptr Pointer to array
* @param type Type of array
* @param alignment The alignment in bytes of the array.
*/
#if defined(__ICC)
#define swift_align_and_restrict_information(array, ptr, type, alignment) \
type *restrict array = ptr; \
__assume_aligned(array, alignment);
#elif defined(__GNUC__)
#define swift_align_and_restrict_information(array, ptr, type, alignment) \
type *restrict array = ptr; \
array = __builtin_assume_aligned(array, alignment);
#else
#define swift_align_and_restrict_information(array, ptr, type, alignment) \
type *restrict array = ptr;
#endif
/**
* @brief Macro to tell the compiler that a given number is 0 modulo a given
* size.
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment