llvm with tablegen backend for capstone disassembler
Go to file
Erich Keane 24e6840b9e [CodeGen][va_args] Correct Vector Struct va-arg 'in_reg' code gen
When trying to track down a different bug, we discovered
that calling __builtin_va_arg on a vec3f type caused
the SROA pass to issue a warning that there was an illegal
access.

Further research showed that the vec3f type is
alloca'ed as size '12', but the _builtin_va_arg code
on x86_64 was always loading this out of registers as
{double, double}. Thus, the 2nd store into the vec3f
was storing in bytes 12-15!

This patch alters the original implementation which always
assumed {double, double} to use the actual coerced type
instead, so the LLVM-IR generated is a load/GEP/store of
a <2 x float> and a float, rather than a double and a double.

Tests were added for all combinations I could think of that
would fit in 2 FP registers, and all work exactly as expected.

Differential Revision: https://reviews.llvm.org/D42811

llvm-svn: 324098
2018-02-02 15:53:35 +00:00
clang [CodeGen][va_args] Correct Vector Struct va-arg 'in_reg' code gen 2018-02-02 15:53:35 +00:00
clang-tools-extra [clang-tidy] ObjC ARC objects should not trigger performance-unnecessary-value-param 2018-02-02 15:34:33 +00:00
compiler-rt Correct the return value of strlcat(3) in the interceptor 2018-02-02 13:56:52 +00:00
debuginfo-tests [debuginfo-tests] Support moving debuginfo-tests to llvm/projects 2017-12-12 16:54:20 +00:00
libclc half_powr: Implement using powr 2018-02-01 03:00:35 +00:00
libcxx Disable test in C++<11 mode due to use of alignas. 2018-02-01 23:31:22 +00:00
libcxxabi [demangler] Improve variadic template support 2018-01-31 20:17:06 +00:00
libunwind [cmake] [libunwind] LLVM_FOUND isn't always set, so just test if 2018-01-27 19:31:44 +00:00
lld [ELF] - Reimplemented duplicated-synthetic-sym.s testcase. 2018-02-02 11:25:10 +00:00
lldb Create a marker for Spotlight to never index $BUILD_DIR. 2018-02-01 22:18:02 +00:00
llgo
llvm Fix type sizes that were causing incorrect string formatting 2018-02-02 15:09:31 +00:00
openmp [OpenMP-RT] Fix debug string for NVPTX runtime library 2018-02-01 16:12:16 +00:00
parallel-libs
polly Update polly for r323999. 2018-02-01 20:49:53 +00:00
README.md Add an svn project to contain the files that appear at the root of the 2017-10-19 21:09:49 +00:00

Low Level Virtual Machine (LLVM)

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.