summaryrefslogtreecommitdiff
path: root/gcc/cfgrtl.c
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2015-06-25 17:18:12 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2015-06-25 17:18:12 +0000
commit5da5e2838d2b06cb910bbd6832be4ac3d5e8dd65 (patch)
treed4c2043c4d2fe1765f3dec6cc791fa7b0f3a1899 /gcc/cfgrtl.c
parent4b498588196a9170c9b8c9356d6825807e096228 (diff)
downloadgcc-5da5e2838d2b06cb910bbd6832be4ac3d5e8dd65.tar.gz
gcc/
* Makefile.in (TARGET_DEF): Add target-insns.def. (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h. (build/gentarget-def.o): New rule. (genprogrtl): Add target-def. * target-insns.def, gentarget-def.c: New files. * target.def: Add targetm.have_* and targetm.gen_* hooks, based on the contents of target-insns.def. * defaults.h (HAVE_simple_return, gen_simple_return): Delete. (HAVE_return, gen_return): Delete. * target-def.h: Include insn-target-def.h. * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface instead of direct calls. Rely on them to do the appropriate assertions. * function.c (gen_return_pattern): Likewise. Return an rtx_insn *. (convert_jumps_to_returns): Use targetm interface instead of direct calls. (thread_prologue_and_epilogue_insns): Likewise. * reorg.c (find_end_label, dbr_schedule): Likewise. * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise. * shrink-wrap.c (convert_to_simple_return): Likewise. (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@224979 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfgrtl.c')
-rw-r--r--gcc/cfgrtl.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c
index 20e3fc7c874..2e33dda2f81 100644
--- a/gcc/cfgrtl.c
+++ b/gcc/cfgrtl.c
@@ -1695,19 +1695,12 @@ force_nonfallthru_and_redirect (edge e, basic_block target, rtx jump_label)
if (target == EXIT_BLOCK_PTR_FOR_FN (cfun))
{
if (jump_label == ret_rtx)
- {
- if (!HAVE_return)
- gcc_unreachable ();
-
- emit_jump_insn_after_setloc (gen_return (), BB_END (jump_block), loc);
- }
+ emit_jump_insn_after_setloc (targetm.gen_return (),
+ BB_END (jump_block), loc);
else
{
gcc_assert (jump_label == simple_return_rtx);
- if (!HAVE_simple_return)
- gcc_unreachable ();
-
- emit_jump_insn_after_setloc (gen_simple_return (),
+ emit_jump_insn_after_setloc (targetm.gen_simple_return (),
BB_END (jump_block), loc);
}
set_return_jump_label (BB_END (jump_block));