<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Mon, May 1, 2017 at 9:30 AM Sanjoy Das via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Also, IIUC, today deleting an edge from A to B only requires<br>
removeIncomingValue(A) on B's PHI nodes, but after this change you'll<br>
have to check if you're deleting the last edge or not.<br></blockquote><div><br></div><div>Are there many places where this is a feature rather than a bug though?</div><div><br></div><div>I didn't do a survey of every caller of removeIncomingValue, but the 4 or 5 I looked at were all inside of a loop already. Which actually means they would get more efficient with this change, if in some cases needing to keep a set around.</div><div><br></div><div>This doesn't seem too bad to me, but again, maybe I'm looking at the wrong bits of code. Is there specific code you have in mind that wants to remove one edge (but not one predecessor block)?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Can (2), (3) and (4) be fixed by changing the API instead of the<br>
deeper IR change you're proposing?<br></blockquote><div><br></div><div>Maybe, but I don't see easy ways. Ideas?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
-- Sanjoy<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div></div>