aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>2000-05-17 14:02:22 -0700
committerRichard Henderson <rth@gcc.gnu.org>2000-05-17 14:02:22 -0700
commitd67b9d00113531e8db4cb29704c43a806bb93469 (patch)
tree35d23b03d2213753e54d33f08f4da4ba30aa2638
parent97d36f455e71c16d284bc5e2735fd174673b9e0f (diff)
downloadgcc-d67b9d00113531e8db4cb29704c43a806bb93469.zip
gcc-d67b9d00113531e8db4cb29704c43a806bb93469.tar.gz
gcc-d67b9d00113531e8db4cb29704c43a806bb93469.tar.bz2
jump.c (jump_optimize_1): Remove inactive but real insns in jump-to-next-insn optimization.
* jump.c (jump_optimize_1): Remove inactive but real insns in jump-to-next-insn optimization. From-SVN: r33966
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/jump.c7
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 577189f..ba7e67a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2000-05-17 Richard Henderson <rth@cygnus.com>
+ * jump.c (jump_optimize_1): Remove inactive but real insns
+ in jump-to-next-insn optimization.
+
+2000-05-17 Richard Henderson <rth@cygnus.com>
+
* toplev.c (rest_of_compilation): Don't call optimize_mode_switching
unless OPTIMIZE_MODE_SWITCHING. Conditionally set no_new_pseudos.
Don't call recompute_reg_usage if no_new_pseudos is true.
diff --git a/gcc/jump.c b/gcc/jump.c
index 7f42235..bdc1b1a 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -390,6 +390,13 @@ jump_optimize_1 (f, cross_jump, noop_moves, after_regscan,
{
next = next_real_insn (JUMP_LABEL (insn));
delete_jump (insn);
+
+ /* Remove the "inactive" but "real" insns (i.e. uses and
+ clobbers) in between here and there. */
+ temp = insn;
+ while ((temp = next_real_insn (temp)) != next)
+ delete_insn (temp);
+
changed = 1;
continue;
}