<div dir="ltr">Sure, and every C compiler out there can do multiple version code generation such that no code should ever show a benefit with restrict.<div><br>The fundamental idea here is that allowing aliasing is a bad semantic and there should be a compelling reason for supporting it.  The higher level models that informed the design of OFI either explicitly prohibit aliasing (MPI RMA and UPC) or their APIs make it impossible (SHMEM).</div><div><br></div><div>If there is client that requires this semantic, I'd like to understand why it is permitted to burden OFI rather than requiring that client to do its own buffering.</div><div><br></div><div>I am still investing Jianxin's comment on the ticket wherein MPI was affected by this.  I do not understand how a correct MPI program would encounter an issue here.</div><div><br></div><div>Jeff</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Nov 11, 2015 at 11:34 AM, Dave Goodell (dgoodell) <span dir="ltr"><<a href="mailto:dgoodell@cisco.com" target="_blank">dgoodell@cisco.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Nov 11, 2015, at 2:01 PM, Jeff Hammond <<a href="mailto:jeff.science@gmail.com">jeff.science@gmail.com</a>> wrote:<br>
><br>
> Why do memcpy and memmove both exist?  Why did C99 introduce restrict?  Why does Fortran prohibit aliasing?<br>
><br>
> I have measured the benefits of restrict semantics w.r.t. vectorization many times in the past, enough that I did not bother to benchmark this specific case.<br>
<br>
</span>But you already offered a fix for that issue, which was to just have two versions of the implementation to handle aliased/non-aliased.  The overlap check is pretty cheap.<br>
<span class="HOEnZb"><font color="#888888"><br>
-Dave<br>
<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Jeff Hammond<br><a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a><br><a href="http://jeffhammond.github.io/" target="_blank">http://jeffhammond.github.io/</a></div>
</div>