Add fstdarg-opt
authorTom de Vries <tom@codesourcery.com>
Wed, 18 Feb 2015 21:16:20 +0000 (21:16 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Wed, 18 Feb 2015 21:16:20 +0000 (21:16 +0000)
2015-02-18  Tom de Vries  <tom@codesourcery.com>

* common.opt (fstdarg-opt): New option.
* tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
* doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
(@item -fstdarg-opt): New item.

From-SVN: r220800

gcc/ChangeLog
gcc/common.opt
gcc/doc/invoke.texi
gcc/tree-stdarg.c

index 35bcf40f566c02f7f2748001b19d8cb00be0f578..4919a5f2ddb32ad656cef304f2e9ccc8d063eb57 100644 (file)
@@ -1,3 +1,10 @@
+2015-02-18  Tom de Vries  <tom@codesourcery.com>
+
+       * common.opt (fstdarg-opt): New option.
+       * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
+       * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
+       (@item -fstdarg-opt): New item.
+
 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR target/65064
index e0d4a1dd828123907cb1f35e57197aafc749473e..4fa12f5fa3813167312b0ad2c24e79bb8eb7859c 100644 (file)
@@ -2069,6 +2069,10 @@ fssa-phiopt
 Common Report Var(flag_ssa_phiopt) Optimization
 Optimize conditional patterns using SSA PHI nodes
 
+fstdarg-opt
+Common Report Var(flag_stdarg_opt) Init(1) Optimization
+Optimize amount of stdarg registers saved to stack at start of function
+
 fvariable-expansion-in-unroller
 Common Report Var(flag_variable_expansion_in_unroller) Optimization
 Apply variable expansion when loops are unrolled
index 4a79b48dfafc50bf7700dce7c970d31a4d0f5529..ef4cc75ba5d5abed2a40a8e50f346d6498b4bae7 100644 (file)
@@ -430,7 +430,7 @@ Objective-C and Objective-C++ Dialects}.
 -fshrink-wrap -fsignaling-nans -fsingle-precision-constant @gol
 -fsplit-ivs-in-unroller -fsplit-wide-types -fssa-phiopt @gol
 -fstack-protector -fstack-protector-all -fstack-protector-strong @gol
--fstack-protector-explicit -fstrict-aliasing @gol
+-fstack-protector-explicit -fstdarg-opt -fstrict-aliasing @gol
 -fstrict-overflow -fthread-jumps -ftracer -ftree-bit-ccp @gol
 -ftree-builtin-call-dce -ftree-ccp -ftree-ch @gol
 -ftree-coalesce-inline-vars -ftree-coalesce-vars -ftree-copy-prop @gol
@@ -9867,6 +9867,11 @@ references to local frame addresses.
 Like @option{-fstack-protector} but only protects those functions which
 have the @code{stack_protect} attribute
 
+@item -fstdarg-opt
+@opindex fstdarg-opt
+Optimize the prologue of variadic argument functions with respect to usage of
+those arguments.
+
 @item -fsection-anchors
 @opindex fsection-anchors
 Try to reduce the number of symbolic address calculations by using
index 2cf0ca3ec8f4387e9014d9043c1432ad03f0001e..17d51a20fd31458cc05a071994c56415ee15625a 100644 (file)
@@ -704,8 +704,9 @@ public:
   /* opt_pass methods: */
   virtual bool gate (function *fun)
     {
-      /* This optimization is only for stdarg functions.  */
-      return fun->stdarg != 0;
+      return (flag_stdarg_opt
+             /* This optimization is only for stdarg functions.  */
+             && fun->stdarg != 0);
     }
 
   virtual unsigned int execute (function *);