From: vmakarov Date: Thu, 10 May 2012 19:58:01 +0000 (+0000) Subject: 2012-05-10 Vladimir Makarov X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b105f58b4aa96cd82be033ba1da049ac8aba74ec;p=thirdparty%2Fgcc.git 2012-05-10 Vladimir Makarov PR rtl-optimization/53125 * ira.c (ira): Call find_moveable_pseudos or move_unallocated_pseudos if only ira_conflicts_p is true. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187373 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 06834adab756..1809d7c2abee 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2012-05-10 Vladimir Makarov + + PR rtl-optimization/53125 + * ira.c (ira): Call find_moveable_pseudos or + move_unallocated_pseudos if only ira_conflicts_p is true. + 2012-05-10 Uros Bizjak * config/i386/i386.md (*movoi_internal_avx): Handle diff --git a/gcc/ira.c b/gcc/ira.c index 456c5f0bcb3b..f0d885c88134 100644 --- a/gcc/ira.c +++ b/gcc/ira.c @@ -4125,7 +4125,12 @@ ira (FILE *f) } allocated_reg_info_size = max_reg_num (); - find_moveable_pseudos (); + + /* It is not worth to do such improvement when we use a simple + allocation because of -O0 usage or because the function is too + big. */ + if (ira_conflicts_p) + find_moveable_pseudos (); max_regno_before_ira = max_reg_num (); ira_setup_eliminable_regset (); @@ -4234,7 +4239,10 @@ ira (FILE *f) max_regno * sizeof (struct ira_spilled_reg_stack_slot)); } allocate_initial_values (reg_equivs); - move_unallocated_pseudos (); + + /* See comment for find_moveable_pseudos call. */ + if (ira_conflicts_p) + move_unallocated_pseudos (); } static void