summaryrefslogtreecommitdiff
path: root/gcc/dse.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/dse.c')
-rw-r--r--gcc/dse.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/dse.c b/gcc/dse.c
index 2be8a942c75..98861f11044 100644
--- a/gcc/dse.c
+++ b/gcc/dse.c
@@ -2326,7 +2326,8 @@ get_call_args (rtx call_insn, tree fn, rtx *args, int nargs)
arg = TREE_CHAIN (arg), idx++)
{
enum machine_mode mode = TYPE_MODE (TREE_VALUE (arg));
- rtx reg = FUNCTION_ARG (args_so_far, mode, NULL_TREE, 1), link, tmp;
+ rtx reg, link, tmp;
+ reg = targetm.calls.function_arg (&args_so_far, mode, NULL_TREE, true);
if (!reg || !REG_P (reg) || GET_MODE (reg) != mode
|| GET_MODE_CLASS (mode) != MODE_INT)
return false;
@@ -2360,7 +2361,7 @@ get_call_args (rtx call_insn, tree fn, rtx *args, int nargs)
if (tmp)
args[idx] = tmp;
- FUNCTION_ARG_ADVANCE (args_so_far, mode, NULL_TREE, 1);
+ targetm.calls.function_arg_advance (&args_so_far, mode, NULL_TREE, true);
}
if (arg != void_list_node || idx != nargs)
return false;
@@ -3396,7 +3397,7 @@ dse_confluence_0 (basic_block bb)
out set of the src of E. If the various in or out sets are not
there, that means they are all ones. */
-static void
+static bool
dse_confluence_n (edge e)
{
bb_info_t src_info = bb_table[e->src->index];
@@ -3412,6 +3413,7 @@ dse_confluence_n (edge e)
bitmap_copy (src_info->out, dest_info->in);
}
}
+ return true;
}