aboutsummaryrefslogtreecommitdiff
path: root/gcc/lra.c
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2013-09-10 15:37:57 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2013-09-10 15:37:57 +0000
commitb0681c9e51cafab3bf40c1997e7da9e3d13bdefd (patch)
tree0a7a73889f7b810825425d92ac8210b4254413e0 /gcc/lra.c
parent14c34330495ec168199e0f9694cc39f74c3dbe56 (diff)
downloadgcc-b0681c9e51cafab3bf40c1997e7da9e3d13bdefd.zip
gcc-b0681c9e51cafab3bf40c1997e7da9e3d13bdefd.tar.gz
gcc-b0681c9e51cafab3bf40c1997e7da9e3d13bdefd.tar.bz2
lra.c (lra): Clear lra_optional_reload_pseudos before every constraint pass.
2013-09-10 Vladimir Makarov <vmakarov@redhat.com> * lra.c (lra): Clear lra_optional_reload_pseudos before every constraint pass. * lra-constraints.c (curr_insn_transform): Switch on optional reloads. Check destination too to check move insn. (undo_optional_reloads): Add check that the original peudo did not changed its allocation and the optional reload was inherited on last inheritance pass. Break loop after deciding to keep optional reload. (lra_undo_inheritance): Add check that inherited pseudo still in memory. From-SVN: r202468
Diffstat (limited to 'gcc/lra.c')
-rw-r--r--gcc/lra.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/lra.c b/gcc/lra.c
index ef69526..df457f5 100644
--- a/gcc/lra.c
+++ b/gcc/lra.c
@@ -2315,6 +2315,7 @@ lra (FILE *f)
{
for (;;)
{
+ bitmap_clear (&lra_optional_reload_pseudos);
/* We should try to assign hard registers to scratches even
if there were no RTL transformations in
lra_constraints. */
@@ -2365,7 +2366,6 @@ lra (FILE *f)
if (! live_p)
lra_clear_live_ranges ();
}
- bitmap_clear (&lra_optional_reload_pseudos);
}
bitmap_clear (&lra_subreg_reload_pseudos);
bitmap_clear (&lra_inheritance_pseudos);