From 4bccb39ebaecc3c91ea8aee58dc0c71d5a7e3b95 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Thu, 25 Jun 2015 17:18:12 +0000 Subject: Makefile.in (TARGET_DEF): Add target-insns.def. 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. From-SVN: r224979 --- gcc/cfgrtl.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) (limited to 'gcc/cfgrtl.c') diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c index 20e3fc7..2e33dda 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)); -- cgit v1.1