|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Rinat H. Sadretdinow 2:5020/400 17 Feb 2008 13:32:19 To : Andrey Zhukov Subject : Re: Ubantu 7.10 server паpоль -------------------------------------------------------------------------------- Andrey Zhukov wrote: IY>>> PS Про то, что на современные многоконвейрные процессоры IY>>> тебе кодогенератор ещё и более эффективный код сгенерит, IY>>> чем ты сам напишешь, ты, конечно, и не слышал никогда... RHS>> Такие сказки я слышал. Hо кодогенератор что, не люди делали? > AZ> Автомат для распайки деталек на плату тоже люди делали. AZ> Хочешь с паяльником в руках посоревноваться с ним по скорости AZ> и качеству работы? ;) Hе надо сравнивать тёплое с мягким в данном случае. Хардвара софтваре рознь. RHS>> Так что не надо, я руками и распаралелю всё что надо, RHS>> и такты сэкономлю, и проч, и проч. > AZ> Ребятам из intel подобные вещи по силам (судя по intel AZ> performance primitives), а вот тебе - ты уж извини, не верю. AZ> Мне, впрочем, тоже. А ребята из Intel что, из другого теста слеплены? Они марсиане? Почему это они могут, а мы с тобой не можем? Так что не надо. Зачем в mplayer критичные участки кода на ассемблере сделаны? Чтобы посоревноваться с кодогенератором или всё-таки потому, что руками получается лучше, чем у кодогенератора? Ах, ну да. Кодогенератор не умеет MMX, SSE, 3DNow!, etc. Так почему это руками можно соптимизировать, а в то, что можно с таким же успехом соптимизировать использование general purpose registers ты не веришь? AZ> Кстати, видел в студии Build -> Profile Guided Optimization? Это AZ> ты тоже руками сделаешь, да? ;) Hе в "hello,world", разумеется, AZ> а в программе тысяч на 10 строк кода, хотя-бы. Я такое не видел. Поэтому понятия не имею что это такое. Как сгенерить на C такой вот код (тут я использовал C просто для построения необходимого кода, ибо надо было сделать одинаково для полутора сотни функций): "EXPORT_C void %s_%u(void*, void*, void*, void*)\n" "{\n" "asm (\"\n" " stmfd sp!,{r0-r3,lr}\n" "\n" " mov r0,sp\n" " bl before_%s\n" "\n" " ldmia sp,{r0-r3}\n" "\n" " bl %s\n" "\n" " stmia sp,{r0-r3}\n" "\n" " mov r0,sp\n" " bl after_%s\n" "\n" " ldmfd sp!,{r0-r3,lr}\n" "\");\n" "}\n\n"; Hо сгенерённый код должен быть *именно* *такой*. Компиляторы C/C++ идут лесом. Согласен, не оптимально, можно сделать оптимальнее. Hо мне в тот момент надо было сделать просто чтобы работало. Hа C я как бы не старался не смог бы этого добиться. -- Пока! --- ifmail v.2.15dev5.4 * Origin: SYS3175 (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/25864c2bf84d9.html, оценка из 5, голосов 10
|