Patchwork patch to fix PR55430

login
register
mail settings
Submitter Vladimir Makarov
Date Nov. 23, 2012, 3:56 p.m.
Message ID <50AF9CA8.5030304@redhat.com>
Download mbox | patch
Permalink /patch/201357/
State New
Headers show

Comments

Vladimir Makarov - Nov. 23, 2012, 3:56 p.m.
On 12-11-23 7:42 AM, Uros Bizjak wrote:
> Hello!
>
>>>    The following patch fixes
>>>
>>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55430
>>>
>>>    The patch was successfully bootstrapped and tested on x86/x86-64.
>>>
>>>    Committed as rev. 193742.
>>>
>>> 2012-11-22  Vladimir Makarov  <vmakarov@redhat.com>
>>>
>>>          PR middle-end/55430
>>>          * lra.c: Move #include "hard-reg-set.h" before #include "rtl.h".
>>>          (new_insn_reg): Update biggest_mode.
>>>          (collect_non_operand_hard_regs): Check eliminable regs too.
>>>          (initialize_lra_reg_info_element): Initialize biggest_mode.
>>>          (add_regs_to_insn_regno_info): Ignore non-allocatable
>>>          non-eliminable hard regs.
>>>          (lra.c): Move setting lra_no_alloc_regs before
>>>          init_insn_recog_data.
>>>          * lra-constraints.c (simplify_operand_subreg): Add a comment.
>>>          (lra_constraints): Ignore equivalent memory of
>>>          regs occuring in paradoxical subregs.
>>>          * lra-lives.c (lra_create_live_ranges): Add a comment.
>>>
>>>
>>>
I've committed the following patchto fix the problem.

2012-11-23  Vladimir Makarov  <vmakarov@redhat.com>

         * lra.c (lra): Move init_reg_info and expand_reg_info calls before
         init_insn_recog_data.

Patch

Index: lra.c
===================================================================
--- lra.c	(revision 193755)
+++ lra.c	(working copy)
@@ -2212,6 +2212,9 @@  lra (FILE *f)
 
   COPY_HARD_REG_SET (lra_no_alloc_regs, ira_no_alloc_regs);
 
+  init_reg_info ();
+  expand_reg_info ();
+
   init_insn_recog_data ();
 
 #ifdef ENABLE_CHECKING
@@ -2228,9 +2231,6 @@  lra (FILE *f)
      pseudo creation.  */
   lra_in_progress = 1;
 
-  init_reg_info ();
-  expand_reg_info ();
-
   /* Function remove_scratches can creates new pseudos for clobbers --
      so set up lra_constraint_new_regno_start before its call to
      permit changing reg classes for pseudos created by this