]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
builtins.c (fold_call_stmt): Don't copy gimple call arguments into a temporary array.
authorNathan Froyd <froydnj@codesourcery.com>
Sat, 9 Oct 2010 00:44:46 +0000 (00:44 +0000)
committerNathan Froyd <froydnj@gcc.gnu.org>
Sat, 9 Oct 2010 00:44:46 +0000 (00:44 +0000)
* builtins.c (fold_call_stmt): Don't copy gimple call arguments
into a temporary array.

From-SVN: r165213

gcc/ChangeLog
gcc/builtins.c

index 182337f101b31e0e0e05136b34f8045faa9ecf18..a560cc701b3fb6a4578e725f5a661ad25b527368 100644 (file)
@@ -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
index 0579f758cf50876e3b55bef7f0cbeae037ace995..1764cb445663def83eafa7a482212f522e7e95df 100644 (file)
@@ -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)