PR 8502
* cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
jumps post reload.
Co-Authored-By: Jan Hubicka <jh@suse.cz>
From-SVN: r59003
+2002-11-11 Graham Stott <graham.stott@btinternet.com>
+ Jan Hubicka <jh@suse.cz>
+
+ PR 8502
+ * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
+ jumps post reload.
+
2002-11-08 H.J. Lu <hjl@gnu.org>
Fix c/5351 and optimization/7591.
edge tmp;
rtx set;
int fallthru = 0;
+ rtx table;
/* Verify that all targets will be TARGET. */
for (tmp = src->succ; tmp; tmp = tmp->succ_next)
if (tmp || !onlyjump_p (insn))
return false;
+ if (reload_completed && JUMP_LABEL (insn)
+ && (table = NEXT_INSN (JUMP_LABEL (insn))) != NULL_RTX
+ && GET_CODE (table) == JUMP_INSN
+ && (GET_CODE (PATTERN (table)) == ADDR_VEC
+ || GET_CODE (PATTERN (table)) == ADDR_DIFF_VEC))
+ return false;
+
/* Avoid removing branch with side effects. */
set = single_set (insn);
if (!set || side_effects_p (set))