<div class="gmail_quote">On 3 June 2011 13:05, Dan Gohman <span dir="ltr"><<a href="mailto:gohman@apple.com">gohman@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div class="im"><br>
On Jun 2, 2011, at 11:27 PM, Nick Lewycky wrote:<br>
<br>
> Author: nicholas<br>
> Date: Fri Jun  3 01:27:15 2011<br>
> New Revision: 132535<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=132535&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=132535&view=rev</a><br>
> Log:<br>
> Bail on unswitching a switch statement for a case with a critical edge. We name<br>
> which edge to split by pred/succ pair, which means that we can end up splitting<br>
> the wrong edge (by case value) in the switch statement entirely. Fixes PR10031!<br>
<br>
</div>Can this come up with branches instead of switches too? Branches where both<br>
arms go to the same destination are rare but possible.<br></blockquote><div><br></div><div>No, the affected code in RewriteLoopBodyWithConditionConstant only handles switches. Branches are handled in the code right above it where it does a simple replacement on the condition with either true or false. It never touches the CFG.</div>

<div><br></div><div>Nick</div><div><br></div></div>