summaryrefslogtreecommitdiff
path: root/gcc/reload1.c
diff options
context:
space:
mode:
authorsteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>2013-11-13 22:55:49 +0000
committersteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>2013-11-13 22:55:49 +0000
commitcd3161168d05b1cb003b6c95a68224ceed4d1b06 (patch)
treec0544da5ab78cc2a30727ef7c2fc441c94407305 /gcc/reload1.c
parent579f61ef294af10b117fbd181760d7c8c269fa6b (diff)
downloadgcc-cd3161168d05b1cb003b6c95a68224ceed4d1b06.tar.gz
* cfgrtl.c (can_fallthru): Reorder code to move tablejump check up.
Make that check explicit. BB_HEAD cannot be NULL, remove check for it. * haifa-sched.c (ready_remove_first_dispatch): Check INSN_P before looking at INSN_CODE. * reload1.c (delete_dead_insn) Do not expect JUMP_TABLE_DATA to be an active_insn_p object, respect basic block boundaries. * reorg.c (follow_jumps): Use invariant that JUMP_TABLE_DATA always follows immediately after the jump table data label. * config/nds32/nds32.c (nds32_output_casesi_pc_relative): Likewise. * config/sh/sh.c (barrier_align): Likewise. Rearrange code such that JUMP_TABLE_DATA is not expected to be an active_insn_p object. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204758 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r--gcc/reload1.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 204685da316..a40e16b12c3 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -2123,7 +2123,8 @@ delete_dead_insn (rtx insn)
block local equivalences. Instead of trying to figure out the exact
circumstances where we can delete the potentially dead insns, just
let DCE do the job. */
- if (prev && GET_CODE (PATTERN (prev)) == SET
+ if (prev && BLOCK_FOR_INSN (prev) == BLOCK_FOR_INSN (insn)
+ && GET_CODE (PATTERN (prev)) == SET
&& (prev_dest = SET_DEST (PATTERN (prev)), REG_P (prev_dest))
&& reg_mentioned_p (prev_dest, PATTERN (insn))
&& find_regno_note (insn, REG_DEAD, REGNO (prev_dest))