------- Comment #13 from jakub at gcc dot gnu dot org 2010-06-24 16:47 ------- For the last issue, perhaps doing delete_unreachable_blocks in between the levels wouldn't work too well, loops would need to be discovered again etc. Maybe we can just do something similar to find_unreachable_blocks limited only to the loop bbs and ignoring false resp. true edges if gimple_cond_{true,false}_p on the last stmt and not consider as loop unswitching candidate any bb's that aren't reachable from the header in the loop.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43866