<div dir="ltr">Hi all,<br><div><br></div><div>Is there an existing optimization in LLVM that will get split or rid of the "merge" block into the cases of where it's from.</div><div><br></div><div>Evidently doing this for all cases could result in a blowup of code, but perhaps this exists somewhere for more limited cases (for example where the merge block could be eliminated entirely).</div><div><br></div><div>Cheers,</div><div>Billy Moses</div><div><br></div><div>A:</div><div>   ...</div><div>  br merge</div><div><br></div><div>B:</div><div>  ...</div><div>  br merge</div><div><br></div><div>merge:</div><div>  %var = phi [%a, A], [%b, B]</div><div>  %wherefrom = phi [true, A], [false, B]</div><div>   br cond %wherefrom A2, B2</div><div><br></div><div>A2:</div><div>  ....</div><div><br></div><div>B2:<br>  ....<br></div></div>