[Bug c/67396] [4.9/5.0 regression] Performance regression compiling variadic function with many arguments
ppluzhnikov at google dot com
gcc-bugzilla@gcc.gnu.org
Sun Aug 30 16:36:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67396
Paul Pluzhnikov <ppluzhnikov at google dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jh at suse dot cz
--- Comment #1 from Paul Pluzhnikov <ppluzhnikov at google dot com> ---
This is "caused" by r206947:
2014-01-22 Jan Hubicka <jh@suse.cz>
+ * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
+ Enable for generic and recent AMD targets.
+
+2014-01-22 Jan Hubicka <jh@suse.cz>
+
* combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
ARG_SIZE note when adjustment was eliminated.
Index: gcc/config/i386/x86-tune.def
===================================================================
--- gcc/config/i386/x86-tune.def (revision 206946)
+++ gcc/config/i386/x86-tune.def (revision 206947)
@@ -146,7 +146,7 @@
use of the frame pointer in 32bit mode. */
DEF_TUNE (X86_TUNE_ACCUMULATE_OUTGOING_ARGS, "accumulate_outgoing_args",
m_PPRO | m_P4_NOCONA | m_BONNELL | m_SILVERMONT | m_INTEL
- | m_AMD_MULTIPLE | m_GENERIC)
+ | m_ATHLON_K8)
/* X86_TUNE_PROLOGUE_USING_MOVE: Do not use push/pop in prologues that are
considered on critical path. */
The patch appears to be backwards from what the commit message says though?
$ time gcc-svn-r206948/bin/gcc -c -O2 t.c -mtune=k8
real 0m1.411s
user 0m1.391s
sys 0m0.019s
$ time gcc-svn-r206948/bin/gcc -c -O2 t.c
^C
real 1m31.462s
user 0m0.000s
sys 0m0.006s
$ time gcc-svn-r206948/bin/gcc -c -O2 t.c -mtune=generic
^C
real 1m14.054s
user 0m0.000s
sys 0m0.004s
More information about the Gcc-bugs
mailing list