llvm-project/clang/lib/Headers
Chandler Carruth e813984b43 Teach Clang to provide ::max_align_t in C11 and C++11 modes.
This definition is not chosen idly. There is an unfortunate reality with
max_align_t -- the specific nature of its definition leaks into the ABI
almost immediately. Because it is part of C11 and C++11 it becomes
essential for it to match with other systems on that ABI. There is an
effort to discourage any further use of this construct as a consequence
-- using max_align_t introduces an immediate ABI problem. We can never
update it to have larger alignment even as the microarchitecture changes
to necessitate higher alignment. =/

The particular definition here exactly matches the ABI of GCC's chosen
::max_align_t definition, for better or worse. This was written with the
help of Richard Smith who was decoding the exact ABI implications of the
selected definition in GCC. Notably, in-register arguments are impacted
by the particular definition chosen. =/

No one is under the illusion that this is a "good" or "useful"
definition of max_align_t, and we are working with the standards
committee to specify a more useful interface to address this need.

llvm-svn: 201729
2014-02-19 22:35:01 +00:00
..
CMakeLists.txt [CMake] Deprecate CLANG_RUNTIME_OUTPUT_INTDIR and CLANG_LIBRARY_OUTPUT_INTDIR. 2014-01-19 13:00:01 +00:00
Intrin.h MS Intrin.h: implement __cpuidex and simplify __cpuid 2014-01-31 19:44:55 +00:00
Makefile Introduce a module map for (some of) the compiler-supplied 2012-01-29 20:52:14 +00:00
__wmmintrin_aes.h Split the instrinsic header wmmintrin.h into AES and PCLMUL parts, so 2012-11-05 23:30:26 +00:00
__wmmintrin_pclmul.h Split the instrinsic header wmmintrin.h into AES and PCLMUL parts, so 2012-11-05 23:30:26 +00:00
altivec.h PR15480: fixed second parameter types of vec_lde, vec_lvebx, vec_lvehx, and vec_lvewx according to AltiVec Programming Interface Manual 2013-03-10 16:25:43 +00:00
ammintrin.h Add an ammintrin.h header for SSE4a intrinsics. 2012-05-29 19:10:17 +00:00
avx2intrin.h Fix argument types of some AVX2 intrinsics. 2013-09-23 23:52:04 +00:00
avxintrin.h Intrinsics: fix extract & insert when index is out of bound. 2013-10-23 20:33:14 +00:00
bmi2intrin.h Add intrinsic of MULX in BMI2 header 2012-10-05 18:50:09 +00:00
bmiintrin.h Rename tzcnt intrinsics to match gcc. 2012-07-02 06:52:51 +00:00
cpuid.h Add bit_FXSAVE as an alias for bit_FXSR, for gcc compat. 2013-12-16 17:54:57 +00:00
emmintrin.h Fix a SSE2 intrinsics typo 2013-11-23 22:11:57 +00:00
f16cintrin.h Remove some stray underscores from copyright block. Fix first line length to match length of the one after the copyright block. 2013-09-27 03:57:18 +00:00
float.h Expand #include_next in float.h from mingw to _msc_ver. 2012-04-24 23:43:40 +00:00
fma4intrin.h Add FMA4 intrinsics. 2011-12-30 09:15:03 +00:00
fmaintrin.h Add fma3 intrinsic header file. 2012-06-04 03:42:47 +00:00
immintrin.h Move sha intrinsics to immintrin.h 2013-09-19 14:00:22 +00:00
iso646.h
limits.h Define [U]LLONG_{MIN,MAX} for C++11, add tests. 2013-10-27 19:00:49 +00:00
lzcntintrin.h Add intrinsics for lzcnt and tzcnt instructions. 2011-12-25 06:25:37 +00:00
mm3dnow.h Add PRFCHW intrinsic support 2013-03-26 17:52:08 +00:00
mm_malloc.h PR14964: intrinsic headers using non-reserved identifiers 2013-01-16 23:08:36 +00:00
mmintrin.h
module.map Even in a modules world, people will depend on the weird xmmintrin.h -> emmintrin.h forwarding. 2013-06-07 22:49:44 +00:00
nmmintrin.h
pmmintrin.h PR14964: intrinsic headers using non-reserved identifiers 2013-01-16 23:08:36 +00:00
popcntintrin.h Add popcnt feature flag to match gcc. This flag is implied when sse42 is enabled, but can be disabled separately. Move popcnt intrinsics to popcntintrin.h to match gcc. 2011-12-29 16:10:46 +00:00
prfchwintrin.h Add include guards to prfchwintrin.h. 2013-05-09 15:07:39 +00:00
rdseedintrin.h Add missing include guards into headers in lib/Headers. While it may appear 2013-07-14 05:41:45 +00:00
rtmintrin.h Add missing include guards into headers in lib/Headers. While it may appear 2013-07-14 05:41:45 +00:00
shaintrin.h Fix ifdef macro missed in previous commit 2013-09-19 14:07:14 +00:00
smmintrin.h Intrinsics: fix extract & insert when index is out of bound. 2013-10-23 20:33:14 +00:00
stdalign.h libstdc++'s <cstdalign> #includes <stdalign.h> and expects it to guard against 2013-02-21 02:17:58 +00:00
stdarg.h
stdbool.h
stddef.h Teach Clang to provide ::max_align_t in C11 and C++11 modes. 2014-02-19 22:35:01 +00:00
stdint.h Headers: Add support for ISO9899:2011 rsize_t. 2013-04-12 23:24:56 +00:00
stdnoreturn.h Parsing support for C11's _Noreturn keyword. No semantics yet. 2013-01-17 22:16:11 +00:00
tbmintrin.h Use logical/arithmetic operations instead of builtins in tbmintrin.h. This way we can remove the intrinsic support from the backend. 2013-10-05 17:08:42 +00:00
tgmath.h Fix the return type of the complex creal functions. Patch by YunZhong Gao, modified to use _Static_assert and to check __STDC_HOSTED__ by me. 2013-05-09 17:41:19 +00:00
tmmintrin.h PR14964: intrinsic headers using non-reserved identifiers 2013-01-16 23:08:36 +00:00
unwind.h Provide inline definitions of _Unwind_GetIP etc. for ARM in unwind.h 2013-09-25 22:34:03 +00:00
varargs.h
wmmintrin.h Split the instrinsic header wmmintrin.h into AES and PCLMUL parts, so 2012-11-05 23:30:26 +00:00
x86intrin.h Adding intrinsics to the clang front end for the x86 TBM instruction set. 2013-09-30 17:25:14 +00:00
xmmintrin.h X86 intrinsics: cmpge|gt|nge|ngt_ss|_sd 2013-06-17 19:42:49 +00:00
xopintrin.h xopintrin.h: Add wrappers for all flavors of _mm_com. 2013-05-09 15:07:46 +00:00