[PATCH] CodeGen: Don't completely mess-up optimized atomic libcalls

David Majnemer david.majnemer at gmail.com
Thu Aug 28 05:42:07 PDT 2014


Hi rsmith,

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.

This fixes PR20780.

http://reviews.llvm.org/D5098

Files:
  lib/CodeGen/CGAtomic.cpp
  test/CodeGen/atomic-ops.c
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D5098.13029.patch
Type: text/x-patch
Size: 6137 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140828/01a38e4f/attachment.bin>


More information about the cfe-commits mailing list