aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@cygnus.co.uk>1999-12-14 12:40:02 +0000
committerBernd Schmidt <crux@gcc.gnu.org>1999-12-14 12:40:02 +0000
commite483bf9c62e9fa8c89e55d1bd527d4710e47e083 (patch)
tree2e5e982add263664b4d7762bdad0a5d567cf22eb /gcc
parent0a326ec99a63b868ff94e337f606d7110436338f (diff)
downloadgcc-e483bf9c62e9fa8c89e55d1bd527d4710e47e083.zip
gcc-e483bf9c62e9fa8c89e55d1bd527d4710e47e083.tar.gz
gcc-e483bf9c62e9fa8c89e55d1bd527d4710e47e083.tar.bz2
Undo one misguided optimization attempt in previous change.
From-SVN: r30915
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/reload1.c15
2 files changed, 8 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 91bb220..a4423d0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
1999-12-14 Bernd Schmidt <bernds@cygnus.co.uk>
+ * reload1.c (reload): Can't avoid select_reload_regs/finish_spills
+ if something changed. Back out that part of yesterday's changes.
+
* loop.c (loop_max_reg): New static variable.
(loop_optimize): Initialize it. Eliminate one unnecessary call to
max_reg_num.
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 4bdcaf8..bedcebb 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -948,18 +948,13 @@ reload (first, global, dumpfile)
}
}
- /* No point in trying to select reload registers if we know we're
- going to re-run everything again. */
- if (! something_changed)
- {
- select_reload_regs (dumpfile);
+ select_reload_regs (dumpfile);
+ if (failure)
+ goto failed;
- if (failure)
- goto failed;
+ if (insns_need_reload != 0 || did_spill)
+ something_changed |= finish_spills (global, dumpfile);
- if (insns_need_reload != 0 || did_spill)
- something_changed |= finish_spills (global, dumpfile);
- }
if (! something_changed)
break;