<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p>Thanks for the link, exactly what I was looking for!<br>
</p>
<p>Amazing if this is already in a PR review.<br>
</p>
<br>
<div style="color: rgb(0, 0, 0);">
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" face="Calibri, sans-serif" color="#000000"><b>From:</b> Hal Finkel <hfinkel@anl.gov><br>
<b>Sent:</b> Friday, September 15, 2017 4:35 AM<br>
<b>To:</b> Ehsan Amiri; Alexandre Mutel<br>
<b>Cc:</b> LLVM Developers Mailing List<br>
<b>Subject:</b> Re: [llvm-dev] [RFC] noalias intrinsic</font>
<div> </div>
</div>
<div>
<p>Hi, Alexandre,<br>
</p>
<p><br>
</p>
<p>As Ehsan mentions, this is something we've been planning for a while. I'll likely commit the patches to add the intrinsic soon. As soon as the AA implementation patches (and the patch to use the intrinsic in the inliner) finish the review process, we'll
 be able to handle this effectively.</p>
<p><br>
</p>
<p>In short, yes. :-)<br>
</p>
<p><br>
</p>
<p> -Hal<br>
</p>
<br>
<div class="moz-cite-prefix">On 09/14/2017 08:15 PM, Ehsan Amiri via llvm-dev wrote:<br>
</div>
<blockquote type="cite">
<meta name="Generator" content="Microsoft Word 12 (filtered
        medium)">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1F497D">How is this different from the work that Hal has been doing:</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1F497D"> </span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1F497D"><a href="https://reviews.llvm.org/search/query/qa3.P4sG6bA8/#R" id="LPlnk993032" previewremoved="true">https://reviews.llvm.org/search/query/qa3.P4sG6bA8/#R</a></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1F497D"><a href="https://llvm.org/devmtg/2017-02-04/Restrict-Qualified-Pointers-in-LLVM.pdf" id="LPlnk100391" previewremoved="true">https://llvm.org/devmtg/2017-02-04/Restrict-Qualified-Pointers-in-LLVM.pdf</a></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1F497D"> </span></p>
<p class="MsoNormal"><span style="font-size:11.0pt; font-family:"Calibri","sans-serif"; color:#1F497D"> </span></p>
<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; font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt; font-family:"Tahoma","sans-serif""> llvm-dev [<a class="moz-txt-link-freetext" href="mailto:llvm-dev-bounces@lists.llvm.org">mailto:llvm-dev-bounces@lists.llvm.org</a>]
<b>On Behalf Of </b>Alexandre Mutel via llvm-dev<br>
<b>Sent:</b> Thursday, September 14, 2017 4:34 AM<br>
<b>To:</b> <a class="moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org">
llvm-dev@lists.llvm.org</a><br>
<b>Subject:</b> [llvm-dev] [RFC] noalias intrinsic</span></p>
</div>
</div>
<p class="MsoNormal"> </p>
<div id="divtagdefaultwrapper">
<p><span style="font-family:"Calibri","sans-serif"; color:black">Hello,</span></p>
<p><span style="font-family:"Calibri","sans-serif"; color:black"> </span></p>
<p><span style="font-family:"Calibri","sans-serif"; color:black">Currently the noalias attribute can be applied on function parameters and return value, or via scoped alias on store.</span></p>
<p><span style="font-family:"Calibri","sans-serif"; color:black">The problem is that there is no easy way to apply the noalias attribute on a pointer that is loaded indirectly (e.g from the field of an aggregate, or from a memory location - though for this
 you can still use scoped alias, but they are a lot more intrusive)</span></p>
<p><span style="font-family:"Calibri","sans-serif"; color:black"> </span></p>
<p><span style="font-family:"Calibri","sans-serif"; color:black">The idea would be to provide some kind of intrinsic that can transform a pointer to a noalias pointer, something in the lines of:</span></p>
<p><span style="font-family:"Calibri","sans-serif"; color:black"> </span></p>
<p><span style="font-family:"Calibri","sans-serif"; color:black">define noalias i32* @noalias(i32 *%a) {</span></p>
<p><span style="font-family:"Calibri","sans-serif"; color:black">  ret i32* %a</span></p>
<p><span style="font-family:"Calibri","sans-serif"; color:black">}</span></p>
<p><span style="font-family:"Calibri","sans-serif"; color:black"> </span></p>
<p><span style="font-family:"Calibri","sans-serif"; color:black">What do you think? Would it fit an intrinsic?</span></p>
<p><span style="font-family:"Calibri","sans-serif"; color:black"> </span></p>
<p><span style="font-family:"Calibri","sans-serif"; color:black">Alexandre</span></p>
</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset> <br>
<pre>_______________________________________________
LLVM Developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>
<a class="moz-txt-link-freetext" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a>
</pre>
</blockquote>
<br>
<pre class="moz-signature" cols="72">-- 
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory</pre>
</div>
</div>
</div>
</body>
</html>