[cfe-dev] [atomic] 32 bit bug fixed recently?
David Chisnall
David.Chisnall at cl.cam.ac.uk
Sat Mar 9 08:37:18 PST 2013
I'd mark it as 'closed -> please test'. My changes didn't explicitly try to fix it, but I did find when I started writing test cases that most things were broken.
David
On 9 Mar 2013, at 16:17, Howard Hinnant <hhinnant at apple.com> wrote:
> Thanks David. On i386, and using tip-of-trunk clang, all of libc++'s atomic tests pass. Would you agree that we should mark:
>
> http://llvm.org/bugs/show_bug.cgi?id=15457
>
> as fixed by your work?
>
> Howard
>
> On Mar 9, 2013, at 4:53 AM, David Chisnall <David.Chisnall at cl.cam.ac.uk> wrote:
>
>> Hi Howard,
>>
>> I made a number of improvements to the clang C11 atomics support last weekend. I intended to fix some poor performance on MIPS (and ARM, and anything else non-x86), but it turned out that we were generating invalid IR for a number of fairly simple operations. I don't know if this is related. There are almost certainly some more corner cases that don't work, and some fairly major issues:
>>
>> 1) We don't yet properly understand that _Atomic(T) and T can have different in-memory representations (in particular, on most non-x86 architectures, we really want to ensure that _Atomic(short) and _Atomic(char) have zeroed padding so that we can do efficient atomic operations on them - this isn't really up to us, but is something that should appear in C11 supplements to various ABIs)
>>
>> 2) We don't save and restore the floating point exception state around floating point atomic operations. I'm tempted to say that anyone who thinks that atomic operation on a floating point value should step slowly away from the computer, but the standard does allow this...
>>
>> David
>>
>> On 8 Mar 2013, at 20:42, Howard Hinnant <hhinnant at apple.com> wrote:
>>
>>> Does anyone recognize this bug report as something that's recently been fixed in clang?
>>>
>>> http://llvm.org/bugs/show_bug.cgi?id=15457
>>>
>>> It is a failure only on 32 bit architecture (I only tested i386). And I can **not** reproduce it with tip-of-trunk clang, only with Apple LLVM version 4.2 (clang-425.1.16) (based on LLVM 3.2svn).
>>>
>>> I'm hoping someone recognizes another bug report that I can just dup this one to.
>>>
>>> Thanks,
>>> Howard
>>>
>>> _______________________________________________
>>> cfe-dev mailing list
>>> cfe-dev at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>>
>
More information about the cfe-dev
mailing list