<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <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
cite="mid:EC4B66F0E2E42D4E93F29F4C33F698E80269D9F7@YYZEML701-CHM.china.huawei.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <meta name="Generator" content="Microsoft Word 12 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <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:<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><a
              moz-do-not-send="true"
              href="https://reviews.llvm.org/search/query/qa3.P4sG6bA8/#R">https://reviews.llvm.org/search/query/qa3.P4sG6bA8/#R</a><o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><a
              moz-do-not-send="true"
href="https://llvm.org/devmtg/2017-02-04/Restrict-Qualified-Pointers-in-LLVM.pdf">https://llvm.org/devmtg/2017-02-04/Restrict-Qualified-Pointers-in-LLVM.pdf</a><o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></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<o:p></o:p></span></p>
          </div>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <div id="divtagdefaultwrapper">
          <p><span
style="font-family:"Calibri","sans-serif";color:black">Hello,<o:p></o:p></span></p>
          <p><span
style="font-family:"Calibri","sans-serif";color:black"><o:p> </o:p></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.<o:p></o:p></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)<o:p></o:p></span></p>
          <p><span
style="font-family:"Calibri","sans-serif";color:black"><o:p> </o:p></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:<o:p></o:p></span></p>
          <p><span
style="font-family:"Calibri","sans-serif";color:black"><o:p> </o:p></span></p>
          <p><span
style="font-family:"Calibri","sans-serif";color:black">define
              noalias i32* @noalias(i32 *%a) {<o:p></o:p></span></p>
          <p><span
style="font-family:"Calibri","sans-serif";color:black"> 
              ret i32* %a<o:p></o:p></span></p>
          <p><span
style="font-family:"Calibri","sans-serif";color:black">}<o:p></o:p></span></p>
          <p><span
style="font-family:"Calibri","sans-serif";color:black"><o:p> </o:p></span></p>
          <p><span
style="font-family:"Calibri","sans-serif";color:black">What
              do you think? Would it fit an intrinsic?<o:p></o:p></span></p>
          <p><span
style="font-family:"Calibri","sans-serif";color:black"><o:p> </o:p></span></p>
          <p><span
style="font-family:"Calibri","sans-serif";color:black">Alexandre<o:p></o:p></span></p>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
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>
  </body>
</html>