This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
I'd like to give some my ideas. Seeing is always believing, but you can see more if you add flag '-v' to see what gcc done to your code. Once you got a conclusion, it may works on one platform. In the cross platform developing, I will choose 'currect' code first. BTW, if your are interested on x86 optimising, a group has done a lot of effect. (http://goof.com/pcg/) ----- Original Message ----- From: "Robert de Bath" <robert$@home-box.demon.co.uk> To: <crossgcc@sources.redhat.com> Sent: Sunday, January 14, 2001 7:47 PM Subject: Are you optimising properly? > I has a thought today ... These modern processors, Athlons PIII's even > the now venerable K6 try very hard to optimise the x86 instructions they > collect into jobs for all their internal units. It seemed to me that > compiler optimisation wouldn't make any difference 'cause the processor > does so much itself. > > But it does ... in an unexpected way. > > I dusted off a copy of the old dhrystone 1.1 benchmark and complied it up ... > The numbers were all in the supercomputer range of course :-) > > Riddle me this ... why does it run about 10% faster when I optimise for > space than it does when I go all out for speed? > > $ gcc -v > Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.2/specs > gcc version 2.95.2 20000220 (Debian GNU/Linux) > > PIII - 750 > > $ cc dhrystone.c ; ./a.out > This machine benchmarks at 633218 dhrystones/second > $ cc -O2 dhrystone.c ; ./a.out > This machine benchmarks at 866454 dhrystones/second > $ cc -O6 dhrystone.c ; ./a.out > This machine benchmarks at 859864 dhrystones/second > $ cc -Os dhrystone.c ; ./a.out > This machine benchmarks at 982045 dhrystones/second > $ > > K6-II 450 > $ cc dhrystone.c ; ./a.out > This machine benchmarks at 332348 dhrystones/second > $ cc -O2 dhrystone.c ; ./a.out > This machine benchmarks at 487460 dhrystones/second > $ cc -O6 dhrystone.c ; ./a.out > This machine benchmarks at 496377 dhrystones/second > $ cc -Os dhrystone.c ; ./a.out > This machine benchmarks at 539380 dhrystones/second > $ cc -mcpu=k6 -Os dhrystone.c ; ./a.out > This machine benchmarks at 541724 dhrystones/second > $ cc -march=k6 -Os dhrystone.c ; ./a.out > This machine benchmarks at 542061 dhrystones/second > $ > > It seems to apply to other programs too, not just synthetic benchmarks. > It makes me wonder if everybody else is wrong. :-) > > The -mcpu= options have a small effect, -march has a tiny bit more. > > The K6-II runs hotter too with -Os, implying that it _is_ doing more work. > > -- > Rob. (Robert de Bath <http://poboxes.com/rdebath>) > <rdebath @ poboxes.com> <http://www.cix.co.uk/~mayday> > > > > > ------ > Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ > Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com > ------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |