<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Aug 9, 2019 at 11:51 AM David Greene via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">HAPPY Mahto via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> writes:<br>
<br>
> 2 Nontemporal<br>
<br>
Is this a hint or a command?  If it's a command then this would<br>
implicitly specify the data is aligned on some targets (e.g. Intel X86).<br>
I'm not sure we want to make that implicit assumption as it is very easy<br>
for the programmer to get this wrong.<br></blockquote><div><br></div><div>I think it has to be a hint.  If it is a command, what is it's meaning on non-x86 processors where write-through and write-back are controlled in different ways (or are just uncontrollable)?</div><div><br></div><div>For example, some PPC set cache write back/through at the page level (<a href="https://www.nxp.com/docs/en/data-sheet/MPC603.pdf">https://www.nxp.com/docs/en/data-sheet/MPC603.pdf</a>).  Would the command implementation have to try to set the page properties to do as the user directed?</div><div><br></div><div>There are also cases where the compiler may know that the user is often wrong about the utility of non-temporal memory access and ignoring it is an effective optimization.  This is potentially relevant to profile-guided optimization.</div><div><br></div><div>Jeff</div><div> </div></div>-- <br><div dir="ltr" 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>