aboutsummaryrefslogtreecommitdiff
path: root/gcc/sched-deps.c
diff options
context:
space:
mode:
authorSteven Bosscher <steven@gcc.gnu.org>2012-10-16 22:05:17 +0000
committerSteven Bosscher <steven@gcc.gnu.org>2012-10-16 22:05:17 +0000
commitda4fdf2d3ff45366d9378882ad1646306ceee305 (patch)
treeeafbca96b0b0771fa77620d1cff5cfc0a8a8b8be /gcc/sched-deps.c
parentf841b68397bb8b15ea570a7a86c5414f62cc9774 (diff)
downloadgcc-da4fdf2d3ff45366d9378882ad1646306ceee305.zip
gcc-da4fdf2d3ff45366d9378882ad1646306ceee305.tar.gz
gcc-da4fdf2d3ff45366d9378882ad1646306ceee305.tar.bz2
rtl.h (get_call_rtx_from): New prototype.
* rtl.h (get_call_rtx_from): New prototype. * rtlanal.c (get_call_rtx_from): New function. * calls.c (emit_call_1): Use it. * dse.c (scan_insn): Likewise * dwarf2out.c (dwarf2out_var_location): Likewise. * sched-deps.c (call_may_noreturn_p): Likewise. * var-tracking.c (prepare_call_arguments): Likewise. * config/sh/sh.c (sh_adjust_cost): Likewise. From-SVN: r192516
Diffstat (limited to 'gcc/sched-deps.c')
-rw-r--r--gcc/sched-deps.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c
index 936a131..b9ffb2d 100644
--- a/gcc/sched-deps.c
+++ b/gcc/sched-deps.c
@@ -3425,14 +3425,8 @@ call_may_noreturn_p (rtx insn)
&& !RTL_LOOPING_CONST_OR_PURE_CALL_P (insn))
return false;
- call = PATTERN (insn);
- if (GET_CODE (call) == PARALLEL)
- call = XVECEXP (call, 0, 0);
- if (GET_CODE (call) == SET)
- call = SET_SRC (call);
- if (GET_CODE (call) == CALL
- && MEM_P (XEXP (call, 0))
- && GET_CODE (XEXP (XEXP (call, 0), 0)) == SYMBOL_REF)
+ call = get_call_rtx_from (insn);
+ if (call && GET_CODE (XEXP (XEXP (call, 0), 0)) == SYMBOL_REF)
{
rtx symbol = XEXP (XEXP (call, 0), 0);
if (SYMBOL_REF_DECL (symbol)