[Bug tree-optimization/56426] [4.8 Regression] Segmentation fault in find_var_scev_info, at tree-scalar-evolution.c:358

mpolacek at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Feb 25 12:15:00 GMT 2013


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;
 }
?



More information about the Gcc-bugs mailing list