This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c/67396] [4.9/5.0 regression] Performance regression compiling variadic function with many arguments


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]