[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