On Wed, Sep 19, 2012 at 10:00 PM, Aurelien Jarno <aurel...@aurel32.net> wrote:
> This patch series rework the copy propagation in order to generate
> better code. The first two patches are cleanup and bug fixes, the third
> patch is the heart of the series, and the remaining ones are small
> optimizations using the new copy propagation.
>
> I have measured a decrease of the generated code size of about 4%, with
> a gain in speed between 0 and 2% depending on the workload.
>
> For better benefits in ARM emulation, it should be used with the setcond
> patches series I have sent a few days ago.

Using this patch series along with the ARM one, I got a nice gain of
speed in user mode for SPECCPU 2k gcc:  without the patches the
integrate.i data set runs in 13.6s, with them the time is reduced to 12.4s
(host CPU is i5 2400 64-bit mode). Nice job!


Laurent

> Aurelien Jarno (9):
>   tcg/optimizer: remove TCG_TEMP_ANY
>   tcg/optimizer: check types in copy propagation
>   tcg/optimizer: rework copy progagation
>   tcg/optimize: do copy propagation for all operations
>   tcg/optimize: optimize "op r, a, a => mov r, a"
>   tcg/optimize: optimize "op r, a, a => movi r, 0"
>   tcg/optimize: further optimize brcond/setcond
>   tcg/optimize: prefer the "op a, a, b" form for commutative ops
>   tcg: remove #ifdef #endif around TCGOpcode tests
>
>  tcg/optimize.c |  326 
> ++++++++++++++++++++++++++++++++++----------------------
>  tcg/tcg.c      |   16 +--
>  2 files changed, 200 insertions(+), 142 deletions(-)
>
> --
> 1.7.10.4
>
>

Reply via email to