<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 20, 2017 at 4:42 AM, Tobias Grosser <span dir="ltr"><<a href="mailto:tobias@grosser.es" target="_blank">tobias@grosser.es</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Tue, Jun 20, 2017, at 01:03 PM, Daniel Berlin via llvm-commits wrote:<br>
> On Tue, Jun 20, 2017 at 12:26 AM, Tobias Grosser <<a href="mailto:tobias@grosser.es">tobias@grosser.es</a>><br>
> wrote:<br>
><br>
> > I think the PDT brokenness is something all of us want to see resolved.<br>
> > I just had an interesting discussion with Hal how currently the PDT is<br>
> > not usable to test the validity of liferange metadata.<br>
> ><br>
> > I think it would be great if we collect the use case we have for<br>
> > dominator trees to clearly see where they are "broken" today and which<br>
> > solution could address this brokenness.<br>
><br>
><br>
> I'm not sure why you put broken in quotes?<br>
<br>
</span>Because we can only reason about broken, if we know what is correct. In<br>
the presence of unreachables and infinite loops this is not a<br>
straightforward extension. I know you claim it is trivial, but that's<br>
not clear.<br></blockquote><div><br></div><div>I'm going to assert, again, it is, because there is no way to make a valid dominator tree otherwise.</div><div>But like i said, you are welcome to try!</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Anyway, let's wait for the verifier.<br>
<span class=""><br>
> > With Jakub Kuderski pushing<br>
> > non-trivial improvements to dominance relations in LLVM we seem to have<br>
> > a unique chance to get this fixed and well documented in a way that<br>
> > either satisfies all of us -- or at least clearly documents the<br>
> > tradeoffs that have been taken in the final result.<br>
> ><br>
><br>
> Jakub has a verifier he's about to post that will verify the structural<br>
> properties of the trees are valid.<br>
> If you can make your version/tradeoffs verify, have at it.<br>
<br>
</span>I think a verifier is a good step, especially if formalizes the<br>
invariants you would like.<br></blockquote><div><br></div><div>Again, please be very careful with the language you are using.</div><div>These are not the invariants "i would like".</div><div>These are the two invariants of "what makes a dominator tree". If you are going to claim their is contention on this point, this is pointless.</div><div>It is not me who came up with them, they have been the same since the 70's.</div><div><br></div><div>As I mentioned, you are welcome to do anything to the post-dominator tree you like that maintains them.</div><div><br></div><div>I think you are going to discover, quite quickly, there is only one way to maintain these invariants.</div><div><br></div><div><br></div></div></div></div>