Linkowanie statyczne.
    Pawel Sikora 
    pluto w pld-linux.org
       
    Czw,  4 Lis 2004, 11:42:06 CET
    
    
  
On Thu, 4 Nov 2004, Roman Werpachowski wrote:
> Pawel Sikora wrote:
>> On Thu, 4 Nov 2004, Piotr Wawrzyniak wrote:
>> 
>>> glibc kompilowa³em z trochê innymi flagami ni¿ jest to robione w pld, mo¿e 
>>> to
>>> jest problemem.
>>> [piotr w timemachine ~/programowanie]$ echo $CFLAGS
>>> -Os -march=pentium4 -mcpu=pentium4 -mfpmath=sse -msse2 -mmmx -s -pipe -z
>>> combreloc -DBDEBUG -DG_DISABLE_ASSERT -fomit-frame-pointer
>> 
>> 
>> -msse2 -mmmx sa wlaczane przez -march=pentium4 wiec ich podawanie
>> jest w tym przypadku zbedne.
>
> Tak na marginesie, to co daje? Wg info gcc przeczniki jedynie umoliwiaj 
> korzystanie z rozszerzonych instrukcji, tak wic nie wystarczy programu 
> przekompilowa, trzeba go przepisa.
no bo umozliwiaja. ot prosty przyklad:
typedef double d2[2];
d2 x, y, z;
void test()
{
     z[0] = x[0] + y[0];
     z[1] = x[1] + y[1];
}
gcc -s -S e.c -O2 -fomit-frame-pointer -ffast-math -march=pentium4
test:
         fldl    y
         faddl   x
         fstpl   z
         fldl    y+8
         faddl   x+8
         fstpl   z+8
         ret
gcc -s -S e.c -O2 -fomit-frame-pointer -ffast-math -march=pentium4
-mfpmath=sse
test:
         movsd   y, %xmm0
         addsd   x, %xmm0
         movsd   %xmm0, z
         movsd   y+8, %xmm0
         addsd   x+8, %xmm0
         movsd   %xmm0, z+8
         ret
jak widac kompilator umie skorzystac takze z sseX.
jednakoz duzo lepsze efekty daje przepisanie kodu pod katem
rownoleglych obliczen. przydatne sa wtedy typy i metody
zdefiniowane w plikach:
/usr/lib/gcc/pentium3-pld-linux/3.4.3/include/emmintrin.h
/usr/lib/gcc/pentium3-pld-linux/3.4.3/include/mmintrin.h
/usr/lib/gcc/pentium3-pld-linux/3.4.3/include/pmmintrin.h
/usr/lib/gcc/pentium3-pld-linux/3.4.3/include/xmmintrin.h
    
    
Więcej informacji o liście dyskusyjnej pld-devel-pl