<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>