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  <vmaka...@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  <vmaka...@redhat.com>

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


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

Reply via email to