On 20/11/15 11:37, Richard Biener wrote:
   I'd rather make loop_optimizer_init do nothing
if requested flags are already set and no fixup is needed

Thus sth like

Index: gcc/loop-init.c
===================================================================
--- gcc/loop-init.c     (revision 230649)
+++ gcc/loop-init.c     (working copy)
@@ -103,7 +103,11 @@ loop_optimizer_init (unsigned flags)
        calculate_dominance_info (CDI_DOMINATORS);

        if (!needs_fixup)
-       checking_verify_loop_structure ();
+       {
+         checking_verify_loop_structure ();
+         if (loops_state_satisfies_p (flags))
+           goto out;

What about flags that are present in the loops state, but not requested in flags? Should we try to clear those flags?

Thanks,
- Tom

+       }

        /* Clear all flags.  */
        if (recorded_exits)
@@ -122,11 +126,12 @@ loop_optimizer_init (unsigned flags)
    /* Apply flags to loops.  */
    apply_loop_flags (flags);

+  checking_verify_loop_structure ();
+
+out:
    /* Dump loops.  */
    flow_loops_dump (dump_file, NULL, 1);

-  checking_verify_loop_structure ();
-
    timevar_pop (TV_LOOP_INIT);
  }

Reply via email to