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