diff options
author | Vladimir Makarov <vmakarov@redhat.com> | 2012-11-29 19:00:38 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@gcc.gnu.org> | 2012-11-29 19:00:38 +0000 |
commit | f681cf9564b61c663e0c313eec30d5748899e4cd (patch) | |
tree | 09b1d973942771fe75b8e6a6e269af1b84644dd2 /gcc/lra.c | |
parent | e97cae968277a19dda737090e48d85eef270112e (diff) | |
download | gcc-f681cf9564b61c663e0c313eec30d5748899e4cd.zip gcc-f681cf9564b61c663e0c313eec30d5748899e4cd.tar.gz gcc-f681cf9564b61c663e0c313eec30d5748899e4cd.tar.bz2 |
re PR middle-end/55456 (454.calculix in SPEC CPU 2006 is miscompiled)
2012-11-29 Vladimir Makarov <vmakarov@redhat.com>
PR middle-end/55456
* lra-int.h (lra_new_regno_start): New external.
* lra.c (lra_new_regno_start): New global.
(lra): Set up lra_new_regno_start.
* lra-constraints.c (match_reload): Sync values only for original
pseudos.
From-SVN: r193948
Diffstat (limited to 'gcc/lra.c')
-rw-r--r-- | gcc/lra.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -2151,6 +2151,9 @@ update_inc_notes (void) /* Set to 1 while in lra. */ int lra_in_progress; +/* Start of pseudo regnos before the LRA. */ +int lra_new_regno_start; + /* Start of reload pseudo regnos before the new spill pass. */ int lra_constraint_new_regno_start; @@ -2235,7 +2238,7 @@ lra (FILE *f) so set up lra_constraint_new_regno_start before its call to permit changing reg classes for pseudos created by this simplification. */ - lra_constraint_new_regno_start = max_reg_num (); + lra_constraint_new_regno_start = lra_new_regno_start = max_reg_num (); remove_scratches (); scratch_p = lra_constraint_new_regno_start != max_reg_num (); |