From 8897c9ce64705907e7e27c649f49ea460b14538a Mon Sep 17 00:00:00 2001 From: Nathan Froyd <froydnj@codesourcery.com> Date: Sat, 9 Oct 2010 00:44:46 +0000 Subject: [PATCH] builtins.c (fold_call_stmt): Don't copy gimple call arguments into a temporary array. * builtins.c (fold_call_stmt): Don't copy gimple call arguments into a temporary array. From-SVN: r165213 --- gcc/ChangeLog | 5 +++++ gcc/builtins.c | 16 +++++----------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 182337f101b3..a560cc701b3f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-10-08 Nathan Froyd <froydnj@codesourcery.com> + + * builtins.c (fold_call_stmt): Don't copy gimple call arguments + into a temporary array. + 2010-10-08 Jakub Jelinek <jakub@redhat.com> PR tree-optimization/45903 diff --git a/gcc/builtins.c b/gcc/builtins.c index 0579f758cf50..1764cb445663 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -13627,26 +13627,20 @@ fold_call_stmt (gimple stmt, bool ignore) && !gimple_call_va_arg_pack_p (stmt)) { int nargs = gimple_call_num_args (stmt); + tree *args = (nargs > 0 + ? gimple_call_arg_ptr (stmt, 0) + : &error_mark_node); if (avoid_folding_inline_builtin (fndecl)) return NULL_TREE; if (DECL_BUILT_IN_CLASS (fndecl) == BUILT_IN_MD) { - return targetm.fold_builtin (fndecl, nargs, - (nargs > 0 - ? gimple_call_arg_ptr (stmt, 0) - : &error_mark_node), ignore); + return targetm.fold_builtin (fndecl, nargs, args, ignore); } else { if (nargs <= MAX_ARGS_TO_FOLD_BUILTIN) - { - tree args[MAX_ARGS_TO_FOLD_BUILTIN]; - int i; - for (i = 0; i < nargs; i++) - args[i] = gimple_call_arg (stmt, i); - ret = fold_builtin_n (loc, fndecl, args, nargs, ignore); - } + ret = fold_builtin_n (loc, fndecl, args, nargs, ignore); if (!ret) ret = gimple_fold_builtin_varargs (fndecl, stmt, ignore); if (ret) -- GitLab