[llvm-dev] RFC: Extending atomic loads and stores to floating point and vector types

JF Bastien via llvm-dev llvm-dev at lists.llvm.org
Tue Dec 15 16:02:35 PST 2015


>
> Actually, this brings up a related issue.  We seem to have no
>> documentation in the lang ref about how vector types are represented in
>> memory.  The actual implementation appears to assumed packed bits, but the
>> docs don't say.  Depending on what the semantics here are, my assumptions
>> in the last two paragraphs may not be valid.
>>
>
> Indeed!
>
> Any clue how to start specifying this?  It would seem to be ABI
> dependent.
>

Maybe start a new threads here describing the problem? I don't really know
otherwise.



>>    - Once we add vector, should we consider adding other composite types
>>    in general, including structs? C++ allows this, but has substantial issues
>>    w.r.t. padding.
>>
>> I'd say possibly, but FCAs are poorly supported in the IR in general.  I
>> am not willing to block changes for vectors on changes for FCAs.  This has
>> never been our policy in the past and should not become so now.
>>
>
> Oh yeah I don't think we should block it. FWIW I expect that some of these
> will generate calls to the runtime's global atomic lock shard, which is
> horrible.
>
> "global atomic lock shard"?  I have no idea what you're referring to.  Is
> that something in libc?
>

compiler-rt:
https://github.com/llvm-mirror/compiler-rt/blob/master/lib/builtins/atomic.c
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20151215/3f191ddb/attachment.html>


More information about the llvm-dev mailing list