OT:programovani v C

Miroslav Šinko sinkomiro@gmail.com
Úterý Červen 16 11:02:52 CEST 2009


Urcite bude problem s kniznicou, alebo kompilatorom, taketo chovanie
predsa nie je normalne... Ked sme pozerali asm, tak pri
neoptimalizovanej verzii kompilator volal memcpy, ktora pouzila bytovy
pristup bez ohladu na typ predanych pointerov a aj bez ohladu na
pouzitie explicitneho pretypovania. Pri zapnuti optimalizacie
kompilator nevolal funkciu, ale inline pouzil kopirovaci kod, ktory
*predpokladal* zarovnany pointer. No a teraz je otazka, ci ten kod bol
z kniznice a kompilator ho len skopiroval ako inline (t.j. chyba je v
optimalizovanej verzii funkcie v kniznici - ma vobec kniznica rozne
verzie funkcii?), alebo sa kompilator vykaslal na kniznicu a pouzil
svoju metodu miesto memcpy ("inteligentny" kompilator, ktory pozna
klucove slovo memcpy, ale nedomysli dosledky)...
Nakoniec pri explicitnom pretypovani kompilator aj pri zapnutej
optimalizacii vola kniznicnu funkciu call-om a vsetko funguje spravne.

miro


2009/6/16 Jaroslav Buchta <jaroslav.buchta@gmail.com>:
> Ale to byla nejaka spatna knihovna, ne? Co jsem pouzival ja a zrovna memcpy
> jsem zkoumal, tak si to pekne zarovnalo kopirovanim zacatku a konce po
> bytech a zbytek to vzalo po 32b slovech...



Další informace o konferenci Hw-list