diff options
author | Vladimir Makarov <vmakarov@redhat.com> | 2014-10-15 15:48:33 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@gcc.gnu.org> | 2014-10-15 15:48:33 +0000 |
commit | f54437d5f7912771af11f75bdb370dc440ab2b26 (patch) | |
tree | 6f3ad3b8727dfb842a5843b742084318f3fc84c6 /gcc/lra.c | |
parent | e631038f4b5ca08723d34c5523e47dc8c80ce602 (diff) | |
download | gcc-f54437d5f7912771af11f75bdb370dc440ab2b26.zip gcc-f54437d5f7912771af11f75bdb370dc440ab2b26.tar.gz gcc-f54437d5f7912771af11f75bdb370dc440ab2b26.tar.bz2 |
re PR rtl-optimization/63448 (ICE when compiling atlas 3.10.2)
2014-10-15 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/63448
* lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
(LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
(LRA_MAX_INHERITANCE_PASSES): Use it.
(lra_constraint_iter_after_spill): Remove.
(lra_assignment_iter): New.
(lra_assignment_iter_after_spill): New.
* lra-assigns.c (lra_assignment_iter): New.
(lra_assignment_iter_after_spill): New.
(former_reload_pseudo_spill_p): New.
(spill_for): Set up former_reload_pseudo_spill_p.
(setup_live_pseudos_and_spill_after_risky): Ditto.
(assign_by_spills): Ditto.
(lra_assign): Increment lra_assignment_iter. Print the iteration
number. Reset former_reload_pseudo_spill_p. Check
lra_assignment_iter_after_spill.
* lra.c (lra): Remove lra_constraint_iter_after_spill. Initialize
lra_assignment_iter and lra_assignment_iter_after_spill.
* lra-constraints.c (lra_constraint_iter_after_spill): Remove.
(lra_constraints): Remove code with
lra_assignment_iter_after_spill.
2014-10-15 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/63448
* gcc.target/i386/pr63448.c: New test.
From-SVN: r216270
Diffstat (limited to 'gcc/lra.c')
-rw-r--r-- | gcc/lra.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -2140,8 +2140,8 @@ lra (FILE *f) values, clear them. */ recog_init (); - lra_live_range_iter = lra_coalesce_iter = 0; - lra_constraint_iter = lra_constraint_iter_after_spill = 0; + lra_live_range_iter = lra_coalesce_iter = lra_constraint_iter = 0; + lra_assignment_iter = lra_assignment_iter_after_spill = 0; lra_inheritance_iter = lra_undo_inheritance_iter = 0; setup_reg_spill_flag (); @@ -2275,7 +2275,7 @@ lra (FILE *f) lra_eliminate (false, false); lra_constraint_new_regno_start = max_reg_num (); lra_constraint_new_insn_uid_start = get_max_uid (); - lra_constraint_iter_after_spill = 0; + lra_assignment_iter_after_spill = 0; } restore_scratches (); lra_eliminate (true, false); |