mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-13 00:21:18 +08:00
re PR rtl-optimization/11350 (undefined labels with -Os -fPIC)
PR opt/11350 * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal after reload. * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks, rtl_try_redirect_by_replacing_branch): Likewise. From-SVN: r75968
This commit is contained in:
parent
fbf3e0dd2d
commit
e24e721187
@ -1,3 +1,11 @@
|
||||
2004-01-16 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
PR opt/11350
|
||||
* cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
|
||||
after reload.
|
||||
* cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
|
||||
rtl_try_redirect_by_replacing_branch): Likewise.
|
||||
|
||||
2004-01-15 Geoffrey Keating <geoffk@apple.com>
|
||||
|
||||
PR pch/13689
|
||||
|
@ -1766,7 +1766,7 @@ try_optimize_cfg (int mode)
|
||||
/* If the jump insn has side effects,
|
||||
we can't kill the edge. */
|
||||
&& (GET_CODE (BB_END (b)) != JUMP_INSN
|
||||
|| (flow2_completed
|
||||
|| (reload_completed
|
||||
? simplejump_p (BB_END (b))
|
||||
: onlyjump_p (BB_END (b))))
|
||||
&& (next = merge_blocks_move (s, b, c, mode)))
|
||||
|
@ -661,7 +661,7 @@ rtl_can_merge_blocks (basic_block a,basic_block b)
|
||||
/* If the jump insn has side effects,
|
||||
we can't kill the edge. */
|
||||
&& (GET_CODE (BB_END (a)) != JUMP_INSN
|
||||
|| (flow2_completed
|
||||
|| (reload_completed
|
||||
? simplejump_p (BB_END (a)) : onlyjump_p (BB_END (a)))));
|
||||
}
|
||||
|
||||
@ -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 || flow2_completed) && tablejump_p (insn, NULL, NULL))
|
||||
if ((!optimize || reload_completed) && tablejump_p (insn, NULL, NULL))
|
||||
return false;
|
||||
|
||||
/* Avoid removing branch with side effects. */
|
||||
@ -2607,7 +2607,7 @@ cfg_layout_can_merge_blocks_p (basic_block a, basic_block b)
|
||||
/* If the jump insn has side effects,
|
||||
we can't kill the edge. */
|
||||
&& (GET_CODE (BB_END (a)) != JUMP_INSN
|
||||
|| (flow2_completed
|
||||
|| (reload_completed
|
||||
? simplejump_p (BB_END (a)) : onlyjump_p (BB_END (a)))));
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user