http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59249
--- Comment #3 from Bingfeng Mei <bmei at broadcom dot com> --- Richard, I am not sure I understand about how to split edge. BB4 / \ / \ BB5 | |\ | | \ | | \ | | BB6 | / | / BB7 Compiler (HEAD) complains "only critical predecessors of BB6" (its predcessor BB5 has more than one successor). Do you suggest to split edge between BB5 & BB6 and insert an empty BB? In the email thread, you blame poor implementation of tree-level if-conversion. But RTL-level CE passes cannot handle that too.