http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56426



--- Comment #4 from Marek Polacek <mpolacek at gcc dot gnu.org> 2013-02-25 
12:15:05 UTC ---

Goes away with -fno-tree-pre.  The thing is, PRE calls scev_finalize.  But

before loop optimizing, especially estimate_numbers_of_iterations, which calls

estimate_numbers_of_iterations_loop, SCEV should be initialized.  Or at least

estimate_numbers_of_iterations_loop should be guarded by if (scev_initialized_p

()) as on other places.  SCEV is normally initialized in tree_ssa_loop_init,

but only if number_of_loops > 1.



  if (number_of_loops () <= 1)

    return 0;



  scev_initialize ();



Would it make sense to always initialize SCEV, i.e.:

--- gcc/tree-ssa-loop.c.mp      2013-02-25 13:06:47.212132327 +0100

+++ gcc/tree-ssa-loop.c 2013-02-25 13:06:50.148141586 +0100

@@ -70,10 +70,11 @@ tree_ssa_loop_init (void)

                       | LOOPS_HAVE_RECORDED_EXITS);

   rewrite_into_loop_closed_ssa (NULL, TODO_update_ssa);



+  scev_initialize ();

+

   if (number_of_loops () <= 1)

     return 0;



-  scev_initialize ();

   return 0;

 }

?

Reply via email to