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:
Jan Hubicka 2004-01-16 12:30:48 +01:00 committed by Richard Henderson
parent fbf3e0dd2d
commit e24e721187
3 changed files with 12 additions and 4 deletions

View File

@ -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

View File

@ -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)))

View File

@ -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)))));
}