<div class="gmail_quote">On Wed, Oct 12, 2011 at 2:52 PM, Villmow, Micah <span dir="ltr"><<a href="mailto:Micah.Villmow@amd.com">Micah.Villmow@amd.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">






<div lang="EN-US" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt">From:</span></b><span style="font-size:10.0pt"> <a href="mailto:llvm-commits-bounces@cs.uiuc.edu" target="_blank">llvm-commits-bounces@cs.uiuc.edu</a> [mailto:<a href="mailto:llvm-commits-bounces@cs.uiuc.edu" target="_blank">llvm-commits-bounces@cs.uiuc.edu</a>]
<b>On Behalf Of </b>Justin Holewinski<br>
<b>Sent:</b> Tuesday, October 11, 2011 7:55 PM<br>
<b>To:</b> Sandeep Patel<br>
<b>Cc:</b> llvm-commits<br>
<b>Subject:</b> Re: [llvm-commits] [PATCH] Address Space Alias Analysis<u></u><u></u></span></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div><div class="im">
<p class="MsoNormal">On Tue, Oct 11, 2011 at 6:34 PM, Sandeep Patel <<a href="mailto:deeppatel1987@gmail.com" target="_blank">deeppatel1987@gmail.com</a>> wrote:<u></u><u></u></p>
<p class="MsoNormal">It seems like we could turn this on automatically if we ever see a use<br>
of a non-default address space.<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div><div><div class="im">
<p class="MsoNormal">I hesitate to do this since some back-ends may not have the property that separate address spaces are entirely disjoint and cannot alias.  For PTX, we currently have this property because we use address spaces as a way to differentiate
 the different types of device memory.<u></u><u></u></p>
</div><p class="MsoNormal"><b><i><span style="font-size:11.0pt;color:#1F497D">[Villmow, Micah] What about adding a backend hook to see if the address spaces are disjoint. In the PTX backend and our AMDIL backend, this could default
 to true for everything.  For other back ends, it could be a case by case basis. This might lower when the pass can be run, but would help with this issue.</span></i></b></p></div></div></div></div></div></blockquote><div>
<br></div><div>Unfortunately, this pass should be pushed up as high as possible to get the most benefit.  When the default pass list is created, the target triple could be considered, but this seems to unnecessarily introduce target-dependent code in higher-level LLVM core.</div>
<div><br></div><div>Any opinions from the core developers?  It would be possible to add this pass to the default alias analysis passes for some target triples.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div lang="EN-US" link="blue" vlink="purple"><div><div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt"><div><div><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u><u></u></span></p>

</div><div class="im">
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal"><br>
deep<u></u><u></u></p>
<div>
<div>
<p class="MsoNormal"><br>
On Tue, Oct 11, 2011 at 3:08 PM, Justin Holewinski<br>
<<a href="mailto:justin.holewinski@gmail.com" target="_blank">justin.holewinski@gmail.com</a>> wrote:<br>
> The attached patch provides a new alias analysis: Address Space Alias<br>
> Analysis.  This pass is off-by-default and has no impact on generated code<br>
> unless -asaa is provided to opt.<br>
> This analysis signals NoAlias for pointers in different address spaces.  The<br>
> primary target for this pass is GPU back-ends which use LLVM address spaces<br>
> as a means for differentiating memory types (on-chip shared, off-chip<br>
> global, etc.) and hence pointers in different address spaces cannot alias.<br>
>  For OpenCL code compiled with the PTX back-end, this improves performance<br>
> by over 2x in some of my test kernels due to LLVM using this alias<br>
> information to remove redundant loads.<br>
> Is this okay to commit?<br>
><br>
> --<br>
><br>
> Thanks,<br>
> Justin Holewinski<br>
><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
><br>
><u></u><u></u></p>
</div>
</div>
</blockquote>
</div></div><font color="#888888">
<p class="MsoNormal"><br>
<br clear="all">
<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">-- <u></u><u></u></p>
<div>
<p class="MsoNormal">Thanks,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Justin Holewinski<u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</font></div>
</div>
</div>

</blockquote></div><br><br clear="all"><div><br></div>-- <br><br><div>Thanks,</div><div><br></div><div>Justin Holewinski</div><br>