Go to file
David Majnemer 0392cf892f CodeGen: Don't completely mess-up optimized atomic libcalls
Summary:
We did a great job getting this wrong:
- We messed up which LLVM IR types to use for arguments and return values.
  The optimized libcalls use integer types for values.

  Clang attempted to use the IR type which corresponds to the value
  passed in instead of using an appropriately sized integer type.  This
  would result in violations of the ABI for, as an example, floating
  point types.
- We didn't bother recording the result of the atomic libcall in the
  destination memory.

Instead, call the functions with arguments matching the type of the
libcall prototype's parameters.

This fixes PR20780.

Differential Revision: http://reviews.llvm.org/D5098

llvm-svn: 216714
2014-08-29 07:27:49 +00:00
clang CodeGen: Don't completely mess-up optimized atomic libcalls 2014-08-29 07:27:49 +00:00
clang-tools-extra Remove call to llvm::makeArrayRef. Implicit conversion is sufficient. 2014-08-29 06:05:20 +00:00
compiler-rt [asan] enable poison_array_cookie back 2014-08-29 01:16:18 +00:00
debuginfo-tests relax testcase for LLDB output format compatibility. 2014-03-19 23:06:18 +00:00
libclc Fix build against LLVM SVN >= r216488 2014-08-28 06:19:37 +00:00
libcxx Mark test types for <atomic> nothrow default constructible. Patch from Steve MacKenzie. 2014-08-27 17:00:11 +00:00
libcxxabi Remove strict dependency on llvm-config. 2014-08-26 20:50:07 +00:00
lld [PECOFF] Another Win64 relocation bug fix 2014-08-28 19:00:40 +00:00
lldb Added setting: platform.plugin.linux.use-llgs-for-local (boolean), defaults to false 2014-08-28 22:17:54 +00:00
llvm Add conversion constructor to convert ArrayRef<T*> to ArrayRef<const T*>. Reviewed with Chandler and David Blaikie. 2014-08-29 06:01:43 +00:00
openmp Commit PowerPC64 support from Carlo Bertolli at IBM. 2014-08-07 10:12:54 +00:00
polly Update for LLVM api change 2014-08-25 18:16:52 +00:00