optymalizacja gcc?

Pawel Sikora pluto w pld-linux.org
Czw, 27 Sty 2005, 15:47:36 CET


On Thu, 27 Jan 2005, Tomasz Grobelny wrote:

> Niech mi kto¶ przekonuj±co wyja¶ni dlaczego program zoptymalizowany na 686
> jest wolniejszsy od zoptymalizowanego dla 586...
>
> $ gcc -O2 -march=i586 -mcpu=i586 crctest.c crc.s
> $ ./a.out
> In C   - CRC = B02F7096, time =     16
> In ASM - CRC = B02F7096, time =     18
> $ gcc -O2 -march=i686 -mcpu=i686 crctest.c crc.s
> $ ./a.out
> In C   - CRC = B02F7096, time =     18
> In ASM - CRC = B02F7096, time =     18
> $

sprawdz sobie jeszcze -march=i[345]86 (+/- -funroll-all-loops)
486 powinno byc najwolniesze, bo ztcp. to kompilator rozdklada
punkty skoku w petlach na granicy 16 bajtow i procesor bedzie
mial duzo latania po nop-ach. na 386 i 586 punkty leza na granicy
8 bajtow. z unrollem powinien mniej skakac, wiec obstawiam,
ze 386/586+unroll beda najszybsze. sprawdz jak masz chec.


Więcej informacji o liście dyskusyjnej pld-devel-pl