<div dir="ltr">On Thu, Jun 13, 2013 at 10:52 AM, Guo, Xiaoyi <span dir="ltr"><<a href="mailto:Xiaoyi.Guo@amd.com" target="_blank">Xiaoyi.Guo@amd.com</a>></span> wrote:<br><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 lang="EN-US" link="blue" vlink="purple">
<div>
<p class=""><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">I mean something like a target-specific fence machine instruction which forces ordering of all loads/stores. I want to clarify the meaning of “noalias” in
 this case. Is the fence machine instruction considered “touching” all memory and thus breaks the “noalias” contract?</span></p></div></div></blockquote><div>A fence doesn't modify memory in the sense LLVM cares about.  It's a no-op in a single-threaded environment, and in a multi-threaded environment it's just a way to express ordering on memory modifications made by other threads.</div>
</div></div><div class="gmail_extra"><br></div><div class="gmail_extra">-Eli</div></div>