<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <br>
    <div class="moz-cite-prefix">On 08/16/2018 07:52 PM, Bekket McClane
      via llvm-dev wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:C2D85A18-B8F0-457E-AEE2-552329E65D72@gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <br class="">
      <div><br class="">
        <blockquote type="cite" class="">
          <div class="">On Aug 16, 2018, at 4:41 PM, Troy Johnson via
            llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org"
              class="" moz-do-not-send="true">llvm-dev@lists.llvm.org</a>>
            wrote:</div>
          <br class="Apple-interchange-newline">
          <div class="">
            <div class="WordSection1" style="page: WordSection1;
              caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;">
              <div style="margin: 0in 0in 0.0001pt; font-size: 11pt;
                font-family: Calibri, sans-serif;" class="">Concerning
                slide 16 of<span class="Apple-converted-space"> </span><a
href="https://llvm.org/devmtg/2017-02-04/Restrict-Qualified-Pointers-in-LLVM.pdf"
                  style="color: rgb(149, 79, 114); text-decoration:
                  underline;" class="" moz-do-not-send="true">https://llvm.org/devmtg/2017-02-04/Restrict-Qualified-Pointers-in-LLVM.pdf</a><o:p
                  class=""></o:p></div>
              <div style="margin: 0in 0in 0.0001pt; font-size: 11pt;
                font-family: Calibri, sans-serif;" class=""><o:p
                  class=""> </o:p></div>
              <div style="margin: 0in 0in 0.0001pt; font-size: 11pt;
                font-family: Calibri, sans-serif;" class="">Specifically
                “Currently, LLVM only supports restrict on function
                arguments, although we have a way to preserve that
                information if the function is inlined.”<o:p class=""></o:p></div>
              <div style="margin: 0in 0in 0.0001pt; font-size: 11pt;
                font-family: Calibri, sans-serif;" class=""><o:p
                  class=""> </o:p></div>
              <div style="margin: 0in 0in 0.0001pt; font-size: 11pt;
                font-family: Calibri, sans-serif;" class="">Is that
                statement still accurate? </div>
            </div>
          </div>
        </blockquote>
        <div><br class="">
        </div>
        <div>Yes, correct (actually I was just working on restrict,
          no_alias and alias.scope attributes). The inliner also
          propagates them correctly. </div>
        <br class="">
        <blockquote type="cite" class="">
          <div class="">
            <div class="WordSection1" style="page: WordSection1;
              caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;">
              <div style="margin: 0in 0in 0.0001pt; font-size: 11pt;
                font-family: Calibri, sans-serif;" class=""> It would
                seem that<span class="Apple-converted-space"> </span><a
href="https://llvm.org/docs/LangRef.html#noalias-and-alias-scope-metadata"
                  style="color: rgb(149, 79, 114); text-decoration:
                  underline;" class="" moz-do-not-send="true">https://llvm.org/docs/LangRef.html#noalias-and-alias-scope-metadata</a><span
                  class="Apple-converted-space"> </span>should be
                sufficiently general to honor C’s restrict qualifier on
                local pointers,</div>
            </div>
          </div>
        </blockquote>
        <blockquote type="cite" class="">
          <div class="">
            <div class="WordSection1" style="page: WordSection1;
              caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;">
              <div style="margin: 0in 0in 0.0001pt; font-size: 11pt;
                font-family: Calibri, sans-serif;" class="">but it does
                not appear that Clang uses this part of LLVM’s IR for
                that purpose today and thus local restricts are ignored.</div>
            </div>
          </div>
        </blockquote>
        <div><br class="">
        </div>
        <div>I think that’s correct, but I haven’t come out with any
          scenarios regarding local variables/memory that can _not_ be
          solved by AA. As BasicAA is able to solved most of the local
          cases, including malloc and some memory intrinsics.</div>
      </div>
    </blockquote>
    <br>
    int *restrict x = some_external_function();<br>
    int *restrict y = some_other_external_function();<br>
    <br>
    This is one of the fundamental use cases for restrict and BasicAA
    has nothing to offer in this regard. In other words, it's a
    mechanism for encoding an interface contract.<br>
    <br>
     -Hal<br>
    <br>
    <blockquote type="cite"
      cite="mid:C2D85A18-B8F0-457E-AEE2-552329E65D72@gmail.com">
      <div>
        <div><br class="">
        </div>
        Best</div>
      <div>Bekket<br class="">
        <blockquote type="cite" class="">
          <div class="">
            <div class="WordSection1" style="page: WordSection1;
              caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;">
              <div style="margin: 0in 0in 0.0001pt; font-size: 11pt;
                font-family: Calibri, sans-serif;" class=""><o:p
                  class=""></o:p></div>
              <div style="margin: 0in 0in 0.0001pt; font-size: 11pt;
                font-family: Calibri, sans-serif;" class=""><o:p
                  class=""> </o:p></div>
              <div style="margin: 0in 0in 0.0001pt; font-size: 11pt;
                font-family: Calibri, sans-serif;" class="">Thanks,<o:p
                  class=""></o:p></div>
              <div style="margin: 0in 0in 0.0001pt; font-size: 11pt;
                font-family: Calibri, sans-serif;" class="">Troy<o:p
                  class=""></o:p></div>
              <div style="margin: 0in 0in 0.0001pt; font-size: 11pt;
                font-family: Calibri, sans-serif;" class=""><o:p
                  class=""> </o:p></div>
              <div style="margin: 0in 0in 0.0001pt; font-size: 11pt;
                font-family: Calibri, sans-serif;" class=""><o:p
                  class=""> </o:p></div>
            </div>
            <span style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">_______________________________________________</span><br
              style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
            <span style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">LLVM Developers mailing list</span><br
              style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
            <a href="mailto:llvm-dev@lists.llvm.org" style="color:
              rgb(149, 79, 114); text-decoration: underline;
              font-family: Helvetica; font-size: 12px; font-style:
              normal; font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; orphans: auto; text-align: start;
              text-indent: 0px; text-transform: none; white-space:
              normal; widows: auto; word-spacing: 0px;
              -webkit-text-size-adjust: auto; -webkit-text-stroke-width:
              0px;" class="" moz-do-not-send="true">llvm-dev@lists.llvm.org</a><br
              style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
            <a
              href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev"
              style="color: rgb(149, 79, 114); text-decoration:
              underline; font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; orphans:
              auto; text-align: start; text-indent: 0px; text-transform:
              none; white-space: normal; widows: auto; word-spacing:
              0px; -webkit-text-size-adjust: auto;
              -webkit-text-stroke-width: 0px;" class=""
              moz-do-not-send="true">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a></div>
        </blockquote>
      </div>
      <br class="">
      <!--'"--><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>