<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 08/18/2015 08:52 PM, Hal Finkel via
      llvm-dev wrote:<br>
    </div>
    <blockquote
      cite="mid:29264254.277.1439956371708.JavaMail.javamailuser@localhost"
      type="cite">
      <style type="text/css">p { margin: 0; }</style>
      <div style="font-family: arial,helvetica,sans-serif; font-size:
        10pt; color: #000000"><br>
        <hr id="zwchr">
        <blockquote style="border-left: 2px solid rgb(16, 16, 255);
          margin-left: 5px; padding-left: 5px; color: rgb(0, 0, 0);
          font-weight: normal; font-style: normal; text-decoration:
          none; font-family: Helvetica,Arial,sans-serif; font-size:
          12pt;"><b>From: </b>"Gerolf Hoflehner"
          <a class="moz-txt-link-rfc2396E" href="mailto:ghoflehner@apple.com"><ghoflehner@apple.com></a><br>
          <b>To: </b>"Hal Finkel" <a class="moz-txt-link-rfc2396E" href="mailto:hfinkel@anl.gov"><hfinkel@anl.gov></a><br>
          <b>Cc: </b>"Hyojin Sung" <a class="moz-txt-link-rfc2396E" href="mailto:hsung@us.ibm.com"><hsung@us.ibm.com></a>, "llvm-dev"
          <a class="moz-txt-link-rfc2396E" href="mailto:llvm-dev@lists.llvm.org"><llvm-dev@lists.llvm.org></a><br>
          <b>Sent: </b>Thursday, August 13, 2015 7:50:27 PM<br>
          <b>Subject: </b>Re: [LLVMdev] Improving loop vectorizer
          support for loops with a volatile iteration variable<br>
          <br>
          Hi Hal,
          <div class=""><br class="">
          </div>
          <div class="">Please see below. I like your break down. <br
              class="">
            <div>
              <blockquote class="">
                <div class="">On Aug 13, 2015, at 11:00 AM, Hal Finkel
                  <<a moz-do-not-send="true"
                    href="mailto:hfinkel@anl.gov" class=""
                    target="_blank">hfinkel@anl.gov</a>> wrote:</div>
                <br class="Apple-interchange-newline">
                <div class=""><span style="font-family: Helvetica;
                    font-size: 18px; font-style: normal; font-variant:
                    normal; font-weight: normal; letter-spacing: normal;
                    line-height: normal; text-align: start; text-indent:
                    0px; text-transform: none; white-space: normal;
                    word-spacing: 0px; float: none; display: inline !
                    important;" class="">Hi Gerolf,</span><br
                    style="font-family: Helvetica; font-size: 18px;
                    font-style: normal; font-variant: normal;
                    font-weight: normal; letter-spacing: normal;
                    line-height: normal; text-align: start; text-indent:
                    0px; text-transform: none; white-space: normal;
                    word-spacing: 0px;" class="">
                  <br style="font-family: Helvetica; font-size: 18px;
                    font-style: normal; font-variant: normal;
                    font-weight: normal; letter-spacing: normal;
                    line-height: normal; text-align: start; text-indent:
                    0px; text-transform: none; white-space: normal;
                    word-spacing: 0px;" class="">
                  <span style="font-family: Helvetica; font-size: 18px;
                    font-style: normal; font-variant: normal;
                    font-weight: normal; letter-spacing: normal;
                    line-height: normal; text-align: start; text-indent:
                    0px; text-transform: none; white-space: normal;
                    word-spacing: 0px; float: none; display: inline !
                    important;" class="">I think we have several
                    (perhaps separable) issues here:</span><br
                    style="font-family: Helvetica; font-size: 18px;
                    font-style: normal; font-variant: normal;
                    font-weight: normal; letter-spacing: normal;
                    line-height: normal; text-align: start; text-indent:
                    0px; text-transform: none; white-space: normal;
                    word-spacing: 0px;" class="">
                  <br style="font-family: Helvetica; font-size: 18px;
                    font-style: normal; font-variant: normal;
                    font-weight: normal; letter-spacing: normal;
                    line-height: normal; text-align: start; text-indent:
                    0px; text-transform: none; white-space: normal;
                    word-spacing: 0px;" class="">
                  <span style="font-family: Helvetica; font-size: 18px;
                    font-style: normal; font-variant: normal;
                    font-weight: normal; letter-spacing: normal;
                    line-height: normal; text-align: start; text-indent:
                    0px; text-transform: none; white-space: normal;
                    word-spacing: 0px; float: none; display: inline !
                    important;" class="">1. Do we have a canonical form
                    for loops, preserved through the optimizer, that
                    allows naturally-constructed loop nests to remain
                    separable?</span><br style="font-family: Helvetica;
                    font-size: 18px; font-style: normal; font-variant:
                    normal; font-weight: normal; letter-spacing: normal;
                    line-height: normal; text-align: start; text-indent:
                    0px; text-transform: none; white-space: normal;
                    word-spacing: 0px;" class="">
                </div>
              </blockquote>
              <div id="DWT6073">Are you going to take a stab at the
                documentation like you mention below?</div>
            </div>
          </div>
        </blockquote>
        <br>
        I'm really not the right person to do this; but I'm happy to
        help. Chandler also told me that he would help. The basic
        structure is described in the comments at the top of
        LoopSimplify.cpp, and there are some additional comments
        regarding nested loops interspersed with the code. Then there is
        LCSSA (which is described briefly in LCSSA.cpp). Starting from
        those pieces likely makes sense.
      </div>
    </blockquote>
    I'm happy to volunteer myself and Sanjoy to help out here.  If
    someone wants to take a first pass, we're happy to help revise and
    point out the exceptions to the general rules we've encountered. 
    Having this documented would be very helpful.<br>
    <br>
    Philip<br>
    <br>
  </body>
</html>