summaryrefslogtreecommitdiffstats
path: root/gcc
diff options
context:
space:
mode:
authorgeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>2004-01-17 07:46:49 +0000
committergeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>2004-01-17 07:46:49 +0000
commitf0874fc3634475bd4337928f0dcf3a7c02eeb7a1 (patch)
tree390dbdb10bedab490d434c7af0fe7cd3ed62c00b /gcc
parent71cd80961f6f2230ff873dcd39fef4fa0882f14b (diff)
downloadppe42-gcc-f0874fc3634475bd4337928f0dcf3a7c02eeb7a1.tar.gz
ppe42-gcc-f0874fc3634475bd4337928f0dcf3a7c02eeb7a1.zip
* cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
even after reload, just don't remove the actual jump tables. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76028 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/cfgrtl.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 47112590d00..b039e860ee2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-01-16 Geoffrey Keating <geoffk@apple.com>
+
+ * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
+ even after reload, just don't remove the actual jump tables.
+
2004-01-17 J. Brobecker <brobecker@gnat.com>
* dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c
index c1b17455345..9bf10f5fd8c 100644
--- a/gcc/cfgrtl.c
+++ b/gcc/cfgrtl.c
@@ -703,7 +703,7 @@ try_redirect_by_replacing_jump (edge e, basic_block target, bool in_cfglayout)
if (tmp || !onlyjump_p (insn))
return false;
- if ((!optimize || reload_completed) && tablejump_p (insn, NULL, NULL))
+ if ((!optimize || flow2_completed) && tablejump_p (insn, NULL, NULL))
return false;
/* Avoid removing branch with side effects. */
@@ -793,7 +793,7 @@ try_redirect_by_replacing_jump (edge e, basic_block target, bool in_cfglayout)
/* Recognize a tablejump that we are converting to a
simple jump and remove its associated CODE_LABEL
and ADDR_VEC or ADDR_DIFF_VEC. */
- if (tablejump_p (insn, &label, &table))
+ if (! reload_completed && tablejump_p (insn, &label, &table))
delete_insn_chain (label, table);
barrier = next_nonnote_insn (BB_END (src));
OpenPOWER on IntegriCloud