diff options
author | David Malcolm <dmalcolm@redhat.com> | 2018-06-06 13:33:08 +0000 |
---|---|---|
committer | David Malcolm <dmalcolm@gcc.gnu.org> | 2018-06-06 13:33:08 +0000 |
commit | 2a559b8c77152cfa27d6b804c1d8392a5a651049 (patch) | |
tree | 2abd0370867ba79cb7018333ea2e1554629ff60e | |
parent | 31a5d8c53883cd6ed31cd9d3320a5e0185a214b8 (diff) | |
download | gcc-2a559b8c77152cfa27d6b804c1d8392a5a651049.zip gcc-2a559b8c77152cfa27d6b804c1d8392a5a651049.tar.gz gcc-2a559b8c77152cfa27d6b804c1d8392a5a651049.tar.bz2 |
ix86_expand_call: convert return type to rtx_insn *
Eliminate an "as_a <rtx_insn *>()" cast.
gcc/ChangeLog:
* config/i386/i386-protos.h (ix86_expand_call): Strengthen return
type from "rtx" to "rtx_insn *".
* config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise
for local "call_insn", removing cast.
(ix86_expand_call): Likewise, introducing a "call_insn" local.
From-SVN: r261233
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config/i386/i386-protos.h | 2 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 13 |
3 files changed, 16 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bda6ed4..2374b9e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2018-06-06 David Malcolm <dmalcolm@redhat.com> + + * config/i386/i386-protos.h (ix86_expand_call): Strengthen return + type from "rtx" to "rtx_insn *". + * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise + for local "call_insn", removing cast. + (ix86_expand_call): Likewise, introducing a "call_insn" local. + 2018-06-06 Eric Botcazou <ebotcazou@adacore.com> PR tree-optimization/86066 diff --git a/gcc/config/i386/i386-protos.h b/gcc/config/i386/i386-protos.h index 40756f5..02991a5 100644 --- a/gcc/config/i386/i386-protos.h +++ b/gcc/config/i386/i386-protos.h @@ -139,7 +139,7 @@ extern bool ix86_expand_fp_vec_cmp (rtx[]); extern void ix86_expand_sse_movcc (rtx, rtx, rtx, rtx); extern void ix86_expand_sse_unpack (rtx, rtx, bool, bool); extern bool ix86_expand_int_addcc (rtx[]); -extern rtx ix86_expand_call (rtx, rtx, rtx, rtx, rtx, bool); +extern rtx_insn *ix86_expand_call (rtx, rtx, rtx, rtx, rtx, bool); extern void ix86_split_call_vzeroupper (rtx, rtx); extern void x86_initialize_trampoline (rtx, rtx, rtx); extern rtx ix86_zero_extend_to_Pmode (rtx); diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 637c105..9568d25 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -15064,7 +15064,8 @@ ix86_expand_split_stack_prologue (void) HOST_WIDE_INT allocate; unsigned HOST_WIDE_INT args_size; rtx_code_label *label; - rtx limit, current, allocate_rtx, call_insn, call_fusage; + rtx limit, current, allocate_rtx, call_fusage; + rtx_insn *call_insn; rtx scratch_reg = NULL_RTX; rtx_code_label *varargs_label = NULL; rtx fn; @@ -15234,7 +15235,7 @@ ix86_expand_split_stack_prologue (void) if (!TARGET_64BIT) add_reg_note (call_insn, REG_ARGS_SIZE, GEN_INT (0)); /* Indicate that this function can't jump to non-local gotos. */ - make_reg_eh_region_note_nothrow_nononlocal (as_a <rtx_insn *> (call_insn)); + make_reg_eh_region_note_nothrow_nononlocal (call_insn); /* In order to make call/return prediction work right, we now need to execute a return instruction. See @@ -28466,7 +28467,7 @@ construct_plt_address (rtx symbol) return tmp; } -rtx +rtx_insn * ix86_expand_call (rtx retval, rtx fnaddr, rtx callarg1, rtx callarg2, rtx pop, bool sibcall) @@ -28681,11 +28682,11 @@ ix86_expand_call (rtx retval, rtx fnaddr, rtx callarg1, if (vec_len > 1) call = gen_rtx_PARALLEL (VOIDmode, gen_rtvec_v (vec_len, vec)); - call = emit_call_insn (call); + rtx_insn *call_insn = emit_call_insn (call); if (use) - CALL_INSN_FUNCTION_USAGE (call) = use; + CALL_INSN_FUNCTION_USAGE (call_insn) = use; - return call; + return call_insn; } /* Return true if the function being called was marked with attribute |