Подтвердить что ты не робот

Что означает суффикс функции GCC "isra"?

При профилировании программы, скомпилированной с помощью gcc, я заметил такие функции, как foo.isra.3. Что указывает isra? Я замечаю, что одна из функций вызывается только в нескольких местах, и один из аргументов всегда указывается как буквальное значение. Может быть, это означает, что это вариант функции, оптимизированной для определенных аргументов?

4b9b3361

Ответ 1

В соответствии с комментарием этот отчет об ошибке (и аналогичные комментарии, которые я мог найти):

ISRA - это имя переменной, которая создается с помощью IPA SRA...

IPA SRA является опцией :

-fipa-SRA

Выполнять межпроцедурную скалярную замену агрегатов, удаление неиспользуемых параметров и замену параметров, переданных по ссылке, по параметрам, переданным по значению.

Включено на уровнях -O2, -O3 и -Os.

Скорее всего, это версия функции с этими оптимизациями.

В случае, о котором вы упомянули, возможно, что он заменяет pass-by-reference на pass-by-value, поскольку он не знает, что не нужно передавать литерал по ссылке.