One question I had for LLVM folks while we were working on this: does it make sense to transition the atomic operations to instructions instead of intrinsics? I'm not sold on this in either direction, I'd just like to get people's thoughts on it.<div>
<br></div><div>Certainly for languages such as Java, they will make up a surprisingly large chunk of the loads and stores, and instructions have much mor flexibility in terms of syntax. On the flip side, it's a lot of plumbing IIRC, and we'd really need to stick to the very minimal set of operations, supporting more obscure ones by pattern matching or intrinsics.<br>
<br><div class="gmail_quote">On Sun, Apr 25, 2010 at 7:26 PM, Jeffrey Yasskin <span dir="ltr"><<a href="mailto:jyasskin@google.com">jyasskin@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi all,<br>
<br>
Chandler, Owen, and I have written up a proposal for a new memory<br>
model and atomic intrinsics in LLVM, which will make it possible to<br>
support Java and the upcoming C++0x standard. The proposed changes to<br>
the LangRef are at<br>
<<a href="http://docs.google.com/View?docID=ddb4mhxz_22dz5g98dd&revision=_latest" target="_blank">http://docs.google.com/View?docID=ddb4mhxz_22dz5g98dd&revision=_latest</a>>,<br>
and a rationale for some of the more surprising changes is at<br>
<<a href="http://docs.google.com/View?docID=ddb4mhxz_24gh4ksvgh&revision=_latest" target="_blank">http://docs.google.com/View?docID=ddb4mhxz_24gh4ksvgh&revision=_latest</a>>.<br>
You're the first group to see this, so it's likely to need some<br>
significant fixes based on your feedback. Let us know what you think.<br>
<br>
Thanks,<br>
Jeffrey, Chandler, and Owen<br>
</blockquote></div><br></div>