GCC Conundrum
Shlomi Fish
shlomif at iglu.org.il
Sun Jun 7 01:24:24 IDT 2009
I'm getting strange results (and counter-intuitive ones) when trying to
compile a program using gcc-4.4.0-3mnb2 on Mandriva Linux Cooker.
The program in question is:
https://svn.berlios.de/svnroot/repos/fc-solve/trunk/fc-solve/source
(you can checkout it using "svn co").
And I'm getting the following benchmark timings: (in seconds)
{{{{{{
dump:126.027262926102
dump-2:124.866523981094
dump-3:125.149952888489
dump-4:125.010930776596
dump-aft-reboot:127.221956968307
dump-flip:123.10272693634
dump-flip-2:121.934360027313
dump-flip-3:121.98522400856
dump-old:130.334769010544
dump-old-aft-reboot:122.411857128143
}}}}}}
dump-old is of an old revision before I rebooted. dump-old-aft-reboot is the
same version after I reboot the computer.
The dump-flip's are after doing "./Tatzer -l p4b" and then "make" (and "make
install") and then running:
./freecell-solver-range-parallel-solve 1 32000 500 -l gi
The dump-[234] are after doing "./Tatzer -l p4b --without-flip". What this
flag does is define the FCS_WITHOUT_CARD_FLIPPING macro, which in turn toggles
some #ifndef's in the code that eliminate a lot of code. I verified that with
"--without-flip" binaries are smaller.
My question is: why is the --without-flip binaries slower than the ones with
the flipping logic? So far my best bet is that with the flipping logic enabled
(but underused) the code aligns to have fewer cache misses and that it is just
a co-incidence that this is the case.
I'll appreciate any insights.
Regards,
Shlomi Fish
--
-----------------------------------------------------------------
Shlomi Fish http://www.shlomifish.org/
The Case for File Swapping - http://xrl.us/bjn7i
God gave us two eyes and ten fingers so we will type five times as much as we
read.
More information about the Linux-il
mailing list