<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<br>
<br>
<div class="moz-cite-prefix">On 12/15/2015 04:02 PM, JF Bastien
wrote:<br>
</div>
<blockquote
cite="mid:CABdywOffmMEs5BFZxrVMPJt8P-gw6nm3tG-Hak17jB8qJQ8=Zg@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF"><span class="">
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">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. <br>
</div>
</blockquote>
<div><br>
</div>
<div>Indeed!</div>
</div>
</div>
</div>
</blockquote>
</span> Any clue how to start specifying this? It would
seem to be ABI dependent. <br>
</div>
</blockquote>
<div><br>
</div>
<div>Maybe start a new threads here describing the problem?
I don't really know otherwise.</div>
</div>
</div>
</div>
</blockquote>
Will do.<br>
<blockquote
cite="mid:CABdywOffmMEs5BFZxrVMPJt8P-gw6nm3tG-Hak17jB8qJQ8=Zg@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div><br>
</div>
<div><br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF"><span class="">
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF"><span>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<ul>
<li>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.</li>
</ul>
</div>
</div>
</blockquote>
</span> 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. <br>
</div>
</blockquote>
<div><br>
</div>
<div>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.</div>
</div>
</div>
</div>
</blockquote>
</span> "global atomic lock shard"? I have no idea what
you're referring to. Is that something in libc?</div>
</blockquote>
<div><br>
</div>
<div>compiler-rt: <a moz-do-not-send="true"
href="https://github.com/llvm-mirror/compiler-rt/blob/master/lib/builtins/atomic.c">https://github.com/llvm-mirror/compiler-rt/blob/master/lib/builtins/atomic.c</a></div>
</div>
</div>
</div>
</blockquote>
Hm, I think this raises an interesting semantic question. We could
use the global lock shard scheme to make loads atomic w.r.t. other
llvm emitted writes, but not writes emitted by other compilers.
This would mean that linking object files with atomics might break
their atomicity. I'm not sure we want to allow that. Maybe we can
do that only if the synchronization scope allows it or something?<br>
<br>
Philip<br>
<br>
</body>
</html>