[devel] I: gcc 11.2.1 && binutils 2.37

Anton Farygin rider на basealt.ru
Сб Сен 25 11:35:33 MSK 2021


On 24.09.2021 21:29, Dmitry V. Levin wrote:
> On Fri, Sep 24, 2021 at 08:04:59PM +0300, Andrey Savchenko wrote:
>> On Fri, 24 Sep 2021 18:18:04 +0300 Dmitry V. Levin wrote:
>>> On Fri, Sep 24, 2021 at 08:48:12AM +0300, Anton Farygin wrote:
>>>> Да, Илья.
>>>>
>>>> Есть ещё вот такая статья годичной давности:
>>>> https://johnysswlab.com/link-time-optimizations-new-way-to-do-compiler-optimizations/
>>>>
>>>> и там интересная заметка про ffmpeg, в которой говорится о том, что
>>>> выигрыш в сборке с LTO может быть нулевым.
>>> Особенно если в случае LTO ещё и выключить в пакете часть ассемблерных
>>> оптимизаций.
>> Если ты внимательно читал статью, то там и в тесте без LTO они
>> оставались выключенными. А вообще, тот факт, что ради LTO
>> приходится отключать сильные оптимизации
> Не надо ради LTO отключать сильные оптимизации.
> Странно, что в ffmpeg так сделали.

Всё что сделали в ffmpeg для LTO звучит вот так:

     /* When direct symbol references are used in code passed to a 
compiler that does not support them
      *  then these references need to be converted to named asm 
constraints instead.
      * Instead of returning a direct symbol MANGLE now returns a named 
constraint for that specific symbol.
      * In order for this to work there must also be a corresponding 
entry in the asm-interface. To add this
      *  entry use the macro NAMED_CONSTRAINTS() and pass in a list of 
each symbol reference used in the
      *  corresponding block of code. (e.g. 
NAMED_CONSTRAINTS(var1,var2,var3) where var1 is the first symbol etc. ).
      * If there are already existing constraints then use 
NAMED_CONSTRAINTS_ADD to add to the existing constraint list.
      */

Сложно оценить, какая деградация производительности будет в этом месте, 
но то что она будет - это 100%.



>
> Вообще статья действительно старая в том смысле, что оперирует старыми
> версиями: gcc8 отстаёт от gcc11 на 3 года.  Гораздо интереснее было бы
> увидеть результаты по текущей версии.
Да, мне тоже было бы интересно это увидеть. Если найду время - посмотрю.





Подробная информация о списке рассылки Devel