This tackles TODO_verify_flow_info, the last existing bit. Similar to others we have to avoid running after IPA passes as they leave CFG bits to be fixed up by the fixup_cfg pass invocations.
Bootstrapped and tested on x86_64-unknown-linux-gnu, applied. The next bit will be removing of all the TODO_ flags and their use. Missing is clever scheduling of loop verification. Richard. 2014-05-05 Richard Biener <rguent...@suse.de> * passes.c (execute_function_todo): Move TODO_verify_flow under the TODO_verify_ul umbrella. Index: gcc/passes.c =================================================================== --- gcc/passes.c (revision 209928) +++ gcc/passes.c (working copy) @@ -1783,11 +1783,11 @@ execute_function_todo (function *fn, voi /* IPA passes leave stmts to be fixed up, so make sure to not verify SSA operands whose verifier will choke on that. */ verify_ssa (true, !from_ipa_pass); - } - if (flags & TODO_verify_flow) - verify_flow_info (); - if (flags & TODO_verify_il) - { + /* IPA passes leave basic-blocks unsplit, so make sure to + not trip on that. */ + if ((cfun->curr_properties & PROP_cfg) + && !from_ipa_pass) + verify_flow_info (); if (current_loops && loops_state_satisfies_p (LOOP_CLOSED_SSA)) verify_loop_closed_ssa (false);