<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 07/02/2018 12:27 PM, Tyler Nowicki
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAAJ+206OLsH1FyrkArVDP9ZhfyyqF0Wavbs_QZf1panRYL7ZwA@mail.gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <div dir="ltr">Hi Michael, Hal,
        <div><br>
        </div>
        <div>Sorry it has been a while since I looked at this. My memory
          is a little fuzzy. The intent of 'assume_safety' is to tell
          LAA to skip dependency checking on loads and stores so the
          vectorizer doesn't stop as soon as it sees both in a loop. At
          the time 'assume_safety' was implemented the vectorizer was
          limited to inner-loops. I am not up-to-date but it seems to
          have the ability to perform some vectorization of non-inner
          loop instructions?  <br>
        </div>
      </div>
    </blockquote>
    <br>
    The infrastructure to support outer loops is under active
    development.<br>
    <br>
    <blockquote type="cite"
cite="mid:CAAJ+206OLsH1FyrkArVDP9ZhfyyqF0Wavbs_QZf1panRYL7ZwA@mail.gmail.com">
      <div dir="ltr">
        <div><br>
        </div>
        <div>If we can vectorize non-inner loop instructions then what
          behavior would make the most sense: 'assume_safety' applies to
          the same loop scope(s) as the other loop pragmas, or it
          applies to all nested loops?</div>
        <div><br>
        </div>
        <div>My opinion is that <span
style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">for
            consistency</span>
          'assume_safety' and similar options apply to the same scope(s)
          as 'vectorize(enable)'. But I am open to alternatives if
          others see it differently.</div>
      </div>
    </blockquote>
    <br>
    I agree. Should apply to the entire single loop under the pragma.
    This proposed change is consistent with that.<br>
    <br>
     -Hal<br>
    <br>
    <blockquote type="cite"
cite="mid:CAAJ+206OLsH1FyrkArVDP9ZhfyyqF0Wavbs_QZf1panRYL7ZwA@mail.gmail.com">
      <div dir="ltr">
        <div><br>
        </div>
        <div>Tyler Nowicki</div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr">On Mon, Jul 2, 2018 at 10:44 AM Michael Kruse via
          Phabricator <<a href="mailto:reviews@reviews.llvm.org"
            target="_blank" moz-do-not-send="true">reviews@reviews.llvm.org</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0 0 0
          .8ex;border-left:1px #ccc solid;padding-left:1ex">Meinersbur
          added a comment.<br>
          <br>
          In <a href="https://reviews.llvm.org/D48808#1149534"
            rel="noreferrer" target="_blank" moz-do-not-send="true">https://reviews.llvm.org/D48808#1149534</a>,
          @ABataev wrote:<br>
          <br>
          > I don't think that this is the intended behavior of the
          `#pragma clang loop`. it is better to ask the author of this
          pragma is this correct or not.<br>
          <br>
          <br>
          I understand it as the intended behavior of the
          `assume_safety` option (also used for `#pragma omp simd`).<br>
          <br>
          @tyler.nowicki What is the intended behaviour?<br>
          <br>
          <br>
          Repository:<br>
            rC Clang<br>
          <br>
          <a href="https://reviews.llvm.org/D48808" rel="noreferrer"
            target="_blank" moz-do-not-send="true">https://reviews.llvm.org/D48808</a><br>
          <br>
          <br>
          <br>
        </blockquote>
      </div>
    </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>