Предполагая, что f
не зависит от какого-либо глобального состояния и не вызывает побочных эффектов, вы можете пометить его атрибутом const
:
int f(int i) __attribute__((const));
Если f
полагается на глобальное состояние, но все еще обладает свойством, что это чистая функция от его входов и глобального состояния (и не вызывает побочных эффектов), вы можете использовать слегка более слабый атрибут pure
.
Эти атрибуты позволяют gcc оптимизировать больше, чем могли бы, хотя я не знаю, будут ли они полезны в вашем случае.Посмотрите на сгенерированный ассемблерный код и посмотрите, помогут ли они.