aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKazu Hirata <kazu@gcc.gnu.org>2004-12-12 03:05:20 +0000
committerKazu Hirata <kazu@gcc.gnu.org>2004-12-12 03:05:20 +0000
commitc431e4997fcca052667b780341ddf4df5f6eb55c (patch)
tree9f2ee440767bb3cd740aecbb2cc28f4fd9dfb61d /gcc
parent00fc055e0580c479a325b6f6c11324d12ec6b557 (diff)
downloadgcc-c431e4997fcca052667b780341ddf4df5f6eb55c.zip
gcc-c431e4997fcca052667b780341ddf4df5f6eb55c.tar.gz
gcc-c431e4997fcca052667b780341ddf4df5f6eb55c.tar.bz2
lcm.c (optimize_mode_switching): Free ptr even when mode_set is NULL_RTX.
* lcm.c (optimize_mode_switching): Free ptr even when mode_set is NULL_RTX. From-SVN: r92044
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/lcm.c22
2 files changed, 17 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c2e5865..66b4708 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,9 @@
-2004-12-11 Roger Sayle <roger@eyesopen.com>
+2004-12-12 Kazu Hirata <kazu@cs.umass.edu>
+
+ * lcm.c (optimize_mode_switching): Free ptr even when mode_set
+ is NULL_RTX.
+
+2004-12-12 Roger Sayle <roger@eyesopen.com>
* reg-stack.c (change_stack): Avoid placing the new top-of-stack in
its correct location during popping if we need to permute the stack
diff --git a/gcc/lcm.c b/gcc/lcm.c
index 2c4f3fa..25df2e6 100644
--- a/gcc/lcm.c
+++ b/gcc/lcm.c
@@ -1274,17 +1274,17 @@ optimize_mode_switching (FILE *file)
mode_set = get_insns ();
end_sequence ();
- /* Do not bother to insert empty sequence. */
- if (mode_set == NULL_RTX)
- continue;
-
- emited = true;
- if (NOTE_P (ptr->insn_ptr)
- && (NOTE_LINE_NUMBER (ptr->insn_ptr)
- == NOTE_INSN_BASIC_BLOCK))
- emit_insn_after (mode_set, ptr->insn_ptr);
- else
- emit_insn_before (mode_set, ptr->insn_ptr);
+ /* Insert MODE_SET only if it is nonempty. */
+ if (mode_set != NULL_RTX)
+ {
+ emited = true;
+ if (NOTE_P (ptr->insn_ptr)
+ && (NOTE_LINE_NUMBER (ptr->insn_ptr)
+ == NOTE_INSN_BASIC_BLOCK))
+ emit_insn_after (mode_set, ptr->insn_ptr);
+ else
+ emit_insn_before (mode_set, ptr->insn_ptr);
+ }
}
free (ptr);