#103 optimization

open
nobody
None
5
2012-09-07
2005-07-19
Keith
No

$ patch -p0 < opt.diff
patching file src/cpu/core_dyn_x86/risc_x86.h' patching filesrc/gui/render_scalers.cpp'
patching file src/gui/render_templates.h' patching filesrc/hardware/gus.cpp'
patching file src/hardware/mpu401.cpp' patching filesrc/hardware/ymf262.c'

Depending, some stuff is 2x like gus handling, major speed up for some functions(gen_lea near 2x, finddynreg is 20%), etc, etc, but overall it's just 3-4% speed gain by my measuring. Note though, I'm cpu bound & finddynreg passes the normalxxx video routines as big-o once cycles pass 13-16k or so, varies depending which renderer is used, so guys with beefier cpus that can handle higher cycle settings should actually see more improvement(I know, I know, not fair that the guys with beefier systems get a bigger benefit:). There's also some code clean up so some things are more readable, simplified, reduced. Have a look-see.

Discussion

1 2 3 > >> (Page 1 of 3)
  • Keith
    Keith
    2005-07-19

     
    Attachments
  • Keith
    Keith
    2005-07-20

    Logged In: YES
    user_id=1008467

    There's also a bug fix or two in there like correcting
    define order so that finddynreg uses bx.

     
  • Keith
    Keith
    2005-07-21

    Logged In: YES
    user_id=1008467

    There's a bug in the gus optimizations introduced at the
    last minute from tyding it up for release. I'll update when
    I figure it out.

     
  • Keith
    Keith
    2005-07-22

     
    Attachments
  • Keith
    Keith
    2005-07-22

    Logged In: YES
    user_id=1008467

    Yep, t'was a tydy bug.

     
  • Keith
    Keith
    2005-09-13

     
    Attachments
  • Keith
    Keith
    2005-09-13

    Logged In: YES
    user_id=1008467

    applied to latest cvs.

     
  • Keith
    Keith
    2005-10-02

    Logged In: YES
    user_id=1008467

    I'm getting a big drop in cpu utilization(2.1ghz 256k ath
    xp) with the small changes in fast.diff. Rather than rattle
    off numbers, run it; should be apparent.

    These kind of changes wd thinks should be left up to the
    compiler.
    wd puts too much faith in gcc's optimizing ability as it
    didn't do such tuning as assumed by optimizations being
    turned on:
    export CFLAGS="-s -O3 -pipe -fomit-frame-pointer
    -march=athlon-xp"
    export CXXFLAGS="-s -O3 -pipe -fomit-frame-pointer
    -march=athlon-xp"
    ./configure --enable-core-inline

     
  • Keith
    Keith
    2005-10-02

     
    Attachments
  • c2woody
    c2woody
    2005-10-03

    Logged In: YES
    user_id=1304940

    The statement is from a thread about dynamic core
    optimizations, and i was talking about that part in your patch
    only.

     
1 2 3 > >> (Page 1 of 3)