aboutsummaryrefslogtreecommitdiff
path: root/gcc/ira.c
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2011-04-04 20:19:45 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2011-04-04 20:19:45 +0000
commite5b0e1cab42d2b6e364e856dcdade434b8241c17 (patch)
treed2e5f25caa57b1f1ca4267f71b4e8b1c72221732 /gcc/ira.c
parenta3935ffcb75885f82b3034c8b45bc54b14b49cff (diff)
downloadgcc-e5b0e1cab42d2b6e364e856dcdade434b8241c17.zip
gcc-e5b0e1cab42d2b6e364e856dcdade434b8241c17.tar.gz
gcc-e5b0e1cab42d2b6e364e856dcdade434b8241c17.tar.bz2
re PR target/48380 (ICE in postreload.c while building trunk)
2011-04-01 Vladimir Makarov <vmakarov@redhat.com> PR target/48380 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is not called. * ira-emit.c (emit_move_list): Update reg equiv init insn list. From-SVN: r171951
Diffstat (limited to 'gcc/ira.c')
-rw-r--r--gcc/ira.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/gcc/ira.c b/gcc/ira.c
index 0e0d0be..79deab6 100644
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -3657,8 +3657,6 @@ ira (FILE *f)
if (delete_trivially_dead_insns (get_insns (), max_reg_num ()))
df_analyze ();
- grow_reg_equivs ();
-
if (max_regno != max_regno_before_ira)
{
regstat_free_n_sets_and_refs ();
@@ -3667,10 +3665,10 @@ ira (FILE *f)
regstat_compute_ri ();
}
- allocate_initial_values (reg_equivs);
-
overall_cost_before = ira_overall_cost;
- if (ira_conflicts_p)
+ if (! ira_conflicts_p)
+ grow_reg_equivs ();
+ else
{
fix_reg_equiv_init ();
@@ -3686,6 +3684,7 @@ ira (FILE *f)
memset (ira_spilled_reg_stack_slots, 0,
max_regno * sizeof (struct ira_spilled_reg_stack_slot));
}
+ allocate_initial_values (reg_equivs);
timevar_pop (TV_IRA);