[PATCH i386]: Enable push/pop in pro/epilogue for modern CPUs

Uros Bizjak ubizjak@gmail.com
Sun Dec 9 13:50:00 GMT 2012


> I noticed in prologue/epilogue, GCC prefers to use MOVs followed by a
> SP adjustment instead of a sequence of pushes/pops. The preference to
> the MOVs are good for old CPU micro-architectures (before pentium-4,
> K10), because it breaks the data dependency.  In modern
> micro-architecture, push/pop is implemented using a mechanism called
> stack engine. The data dependency is removed by the hardware, and
> push/pop becomes very cheap (1 uOp, 1 cycle latency), and they are
> smaller. There is no longer the need to avoid using them.   This is
> also what ICC does.

> 2012-12-08  Xinliang David Li  <davidxl@google.com>
>            * config/i386/i386.c: Eanble push/pop in pro/epilogue for moderen CPUs.


OK for mainline SVN.


More information about the Gcc-patches mailing list