Commit 2a559b8c by David Malcolm Committed by David Malcolm

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
parent 31a5d8c5
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> 2018-06-06 Eric Botcazou <ebotcazou@adacore.com>
PR tree-optimization/86066 PR tree-optimization/86066
......
...@@ -139,7 +139,7 @@ extern bool ix86_expand_fp_vec_cmp (rtx[]); ...@@ -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_movcc (rtx, rtx, rtx, rtx);
extern void ix86_expand_sse_unpack (rtx, rtx, bool, bool); extern void ix86_expand_sse_unpack (rtx, rtx, bool, bool);
extern bool ix86_expand_int_addcc (rtx[]); 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 ix86_split_call_vzeroupper (rtx, rtx);
extern void x86_initialize_trampoline (rtx, rtx, rtx); extern void x86_initialize_trampoline (rtx, rtx, rtx);
extern rtx ix86_zero_extend_to_Pmode (rtx); extern rtx ix86_zero_extend_to_Pmode (rtx);
......
...@@ -15064,7 +15064,8 @@ ix86_expand_split_stack_prologue (void) ...@@ -15064,7 +15064,8 @@ ix86_expand_split_stack_prologue (void)
HOST_WIDE_INT allocate; HOST_WIDE_INT allocate;
unsigned HOST_WIDE_INT args_size; unsigned HOST_WIDE_INT args_size;
rtx_code_label *label; 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 scratch_reg = NULL_RTX;
rtx_code_label *varargs_label = NULL; rtx_code_label *varargs_label = NULL;
rtx fn; rtx fn;
...@@ -15234,7 +15235,7 @@ ix86_expand_split_stack_prologue (void) ...@@ -15234,7 +15235,7 @@ ix86_expand_split_stack_prologue (void)
if (!TARGET_64BIT) if (!TARGET_64BIT)
add_reg_note (call_insn, REG_ARGS_SIZE, GEN_INT (0)); add_reg_note (call_insn, REG_ARGS_SIZE, GEN_INT (0));
/* Indicate that this function can't jump to non-local gotos. */ /* 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 /* In order to make call/return prediction work right, we now need
to execute a return instruction. See to execute a return instruction. See
...@@ -28466,7 +28467,7 @@ construct_plt_address (rtx symbol) ...@@ -28466,7 +28467,7 @@ construct_plt_address (rtx symbol)
return tmp; return tmp;
} }
rtx rtx_insn *
ix86_expand_call (rtx retval, rtx fnaddr, rtx callarg1, ix86_expand_call (rtx retval, rtx fnaddr, rtx callarg1,
rtx callarg2, rtx callarg2,
rtx pop, bool sibcall) rtx pop, bool sibcall)
...@@ -28681,11 +28682,11 @@ ix86_expand_call (rtx retval, rtx fnaddr, rtx callarg1, ...@@ -28681,11 +28682,11 @@ ix86_expand_call (rtx retval, rtx fnaddr, rtx callarg1,
if (vec_len > 1) if (vec_len > 1)
call = gen_rtx_PARALLEL (VOIDmode, gen_rtvec_v (vec_len, vec)); 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) 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 /* Return true if the function being called was marked with attribute
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment