<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 12/28/2016 1:03 PM, Daniel Berlin
      via llvm-commits wrote:<br>
    </div>
    <blockquote
cite="mid:CAF4BwTU_yntWVgLcfvpPxCs-wursKPKCA3Uf7jFtGxcwMN34QQ@mail.gmail.com"
      type="cite">
      <div dir="ltr"><br>
        <div class="gmail_extra"><br>
          <div class="gmail_quote">On Wed, Dec 28, 2016 at 7:04 AM,
            Davide Italiano via Phabricator <span dir="ltr"><<a
                moz-do-not-send="true"
                href="mailto:reviews@reviews.llvm.org" target="_blank">reviews@reviews.llvm.org</a>></span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">davide
              accepted this revision.<br>
              davide added a comment.<br>
              This revision is now accepted and ready to land.<br>
              <br>
              Sorry for the slow response, I'm out('ish) of the office
              these days. I took a close look at your patch.<br>
            </blockquote>
            <div><br>
            </div>
            <div>No worries.</div>
            <div> </div>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              I happen to be lucky enough to hit a case in the wild
              where this already matters.  The number of iteration goes
              down from hundreds to ~10, which makes compile time/me
              happier.<br>
            </blockquote>
            <div><br>
            </div>
            <div>yay.</div>
            <div><br>
            </div>
            <div>The current code, excepting super-weird cases, should
              operate in O(d+3) iterations, where d is the loop
              connectedness of the SSA graph (not the CFG), which is the
              number of backedges in any path. This will change when we
              move to equality propagation, but for now, ...</div>
            <div>We could  calculate this number and see if we are
              screwing up :)<br>
              <br>
            </div>
            <div>For most programs, the loop connectedness of the SSA
              graph is the same or less than the CFG.</div>
            <div><br>
            </div>
            <div>However,  IIRC, we allow  dependent phis in the same
              block (this is not strictly SSA, since all phi nodes are
              supposed to be evaluated simultaneously).</div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    I'm not sure what you're trying to say here?  PHI nodes for a given
    basic block are evaluated simultaneously. From LangRef: "<span
      style="color: rgb(0, 0, 0); font-family: "Lucida
      Grande", "Lucida Sans Unicode", Geneva, Verdana,
      sans-serif; font-size: 14px; font-style: normal;
      font-variant-ligatures: normal; font-variant-caps: normal;
      font-weight: normal; letter-spacing: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
      255); display: inline !important; float: none;">For the purposes
      of the SSA form, the use of each incoming value is deemed to occur
      on the edge from the corresponding predecessor block to the
      current block (but after any definition of an ‘</span><code
      class="docutils literal" style="font-family: Consolas, "Deja
      Vu Sans Mono", "Bitstream Vera Sans Mono",
      monospace; font-size: 0.95em; color: rgb(0, 0, 0); font-style:
      normal; font-variant-ligatures: normal; font-variant-caps: normal;
      font-weight: normal; letter-spacing: normal; orphans: 2;
      text-align: left; text-indent: 0px; text-transform: none;
      white-space: normal; widows: 2; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
      255);"><span class="pre">invoke</span></code><span style="color:
      rgb(0, 0, 0); font-family: "Lucida Grande", "Lucida
      Sans Unicode", Geneva, Verdana, sans-serif; font-size: 14px;
      font-style: normal; font-variant-ligatures: normal;
      font-variant-caps: normal; font-weight: normal; letter-spacing:
      normal; orphans: 2; text-align: left; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 2;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;
      background-color: rgb(255, 255, 255); display: inline !important;
      float: none;">‘ instruction’s return value on the same edge)."</span><br>
    <br>
    -Eli<br>
    <pre class="moz-signature" cols="72">-- 
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project</pre>
  </body>
</html>