mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-18 03:10:26 +08:00
re PR rtl-optimization/29879 (ICE: verify_flow_info: loop_father but no loops)
2006-11-19 Andrew Pinski <pinskia@gmail.com> PR rtl-opt/29879 * fwprop.c (loops): Remove. (forward_propagate_into): Use current_loops instead of loops. (fwprop_init): Call loop_optimizer_init instead of flow_loops_find. (fwprop_done): Call loop_optimizer_finalize instead of flow_loops_free. (fwprop): Use current_loops instead of loo From-SVN: r119010
This commit is contained in:
parent
7f420d0d64
commit
f81c1b60f2
@ -1,3 +1,15 @@
|
||||
2006-11-19 Andrew Pinski <pinskia@gmail.com>
|
||||
|
||||
PR rtl-opt/29879
|
||||
* fwprop.c (loops): Remove.
|
||||
(forward_propagate_into): Use current_loops instead of
|
||||
loops.
|
||||
(fwprop_init): Call loop_optimizer_init instead of
|
||||
flow_loops_find.
|
||||
(fwprop_done): Call loop_optimizer_finalize instead of
|
||||
flow_loops_free.
|
||||
(fwprop): Use current_loops instead of loops.
|
||||
|
||||
2006-11-19 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
||||
|
||||
PR c++/8586
|
||||
|
12
gcc/fwprop.c
12
gcc/fwprop.c
@ -104,7 +104,6 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
where the first two insns are now dead. */
|
||||
|
||||
|
||||
static struct loops loops;
|
||||
static struct df *df;
|
||||
static int num_changes;
|
||||
|
||||
@ -859,7 +858,7 @@ forward_propagate_into (struct df_ref *use)
|
||||
|
||||
/* Do not propagate loop invariant definitions inside the loop if
|
||||
we are going to unroll. */
|
||||
if (loops.num > 0
|
||||
if (current_loops
|
||||
&& DF_REF_BB (def)->loop_father != DF_REF_BB (use)->loop_father)
|
||||
return;
|
||||
|
||||
@ -896,7 +895,7 @@ fwprop_init (void)
|
||||
before df_analyze, because flow_loops_find may introduce new jump
|
||||
insns (sadly) if we are not working in cfglayout mode. */
|
||||
if (flag_rerun_cse_after_loop && (flag_unroll_loops || flag_peel_loops))
|
||||
flow_loops_find (&loops);
|
||||
loop_optimizer_init (0);
|
||||
|
||||
/* Now set up the dataflow problem (we only want use-def chains) and
|
||||
put the dataflow solver to work. */
|
||||
@ -912,10 +911,7 @@ fwprop_done (void)
|
||||
df_finish (df);
|
||||
|
||||
if (flag_rerun_cse_after_loop && (flag_unroll_loops || flag_peel_loops))
|
||||
{
|
||||
flow_loops_free (&loops);
|
||||
loops.num = 0;
|
||||
}
|
||||
loop_optimizer_finalize ();
|
||||
|
||||
free_dominance_info (CDI_DOMINATORS);
|
||||
cleanup_cfg (0);
|
||||
@ -955,7 +951,7 @@ fwprop (void)
|
||||
{
|
||||
struct df_ref *use = DF_USES_GET (df, i);
|
||||
if (use)
|
||||
if (loops.num == 0
|
||||
if (!current_loops
|
||||
|| DF_REF_TYPE (use) == DF_REF_REG_USE
|
||||
|| DF_REF_BB (use)->loop_father == NULL)
|
||||
forward_propagate_into (use);
|
||||
|
Loading…
x
Reference in New Issue
Block a user