|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Valentin Nechayev 2:5020/400 20 May 2003 10:19:41 To : Oleg Drokin Subject : Re: SuSE 8.2 sucks ??? -------------------------------------------------------------------------------- >>> Oleg Drokin wrote: VN>> А вот и документация к этому в info gcc - надо только было знать, что VN>> искать, после того, как увидел глазами код: `-malign-jumps=NUM' Align VN>> instructions that are only jumped to to a 2 raised to a NUM byte VN>> boundary. If `-malign-jumps' is not specified, the default is 2 if VN>> optimizing for a 386, and 4 if optimizing for a 486 unless gas 2.8 (or VN>> later) is being used in which case the default is to align the VN>> instruction on a 16 byte boundary if it is less than 8 bytes away. OD> Вроде как я такую байду не крутил. Так сказано же - по дефолту 4, то есть выравнивание на 2**4 == 16 байт. Что и происходит. А какой gas в этой зюзе? VN>> Hу вот так вот оно хранит объектники - в поле такого смещения всегда VN>> fc ff ff ff (-4 то есть), пока не сделает окончательный бинарник или so. OD> Гм, я когда прошлый рз смотрел в сам бинарь - не обратил внимания, завтра OD> скомпилю старый код и погляжу. Hаверняка выровняется все. OK, интересно, хотя на 99% уверен, что выровняется ;) VN>> Про кучу нопов я тогда ничего не говорил, только предполагал ;) VN>> Добавьте -malign-jumps=2 -malign-functions=2 и сравните результат. OD> Двойных джампов все равно быть не должно. А они есть. Hу значит что-то в оптимизаторе поплыло. Вообще у gcc оптимизатор хреновейший в плане распределения по уровням. Задашь -O0 - будет куча кода вида movl %eax,%edx movl %edx,%eax movl %eax,%eax movl %eax,%eax а в 3.0 оно вообще умудрялось константы вычислять в runtime. задашь -O1 - отладчик начнёт лажать, потому что строки сдвинулись. Промежуточного уровня, при котором бы хотя бы просто цепочки метаний по регистрам сжимались, а границы операторов не нарушались, отсутствует. -netch- --- ifmail v.2.15dev5 * Origin: Dark side of coredump (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/736879534ec8.html, оценка из 5, голосов 10
|