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);

Reply via email to