<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jun 14, 2016, at 4:54 AM, Mikael Holmén via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a>> wrote:</div><div class=""><div class=""><br class="">Note that BB#2 both does a conditional jump AND falltrhoughs to BB#3.<br class=""></div></div></blockquote><div><br class=""></div></div>Yes this case is very unusual because normally CodeGenPrepare removes such pointless conditional branches. However I remember running into problems with this when the optnone attribute was specified (<a href="http://llvm.org/PR24581" class="">http://llvm.org/PR24581</a>)<div class=""><br class=""></div><div class="">You should be able to to construct a testcase for the existing targets with a .mir test which then just uses "llc -run-pass block-placement".</div><div class=""><br class=""></div><div class="">An alternative to improving our test coverage for these corner cases would be to simply forbid the situation and checking in the machine verifier that when a block only has a single predecessor it must not use a conditional jump. Thereby forcing the code that today creates these situations to deal with them.</div><div class=""><br class=""></div><div class="">- Matthias</div></body></html>