#gcc #compiler-optimization
#gcc #оптимизация компилятора
Вопрос:
Например:
Есть функция A:
void functionA();
и функция B:
void functionB() {
functionA();
}
если функция вызывается только functionB во всем проекте, будет ли GCC (или другой компилятор) автоматически помещать functionA в functionB как часть кода functionB?
Или я должен использовать -O3 для принудительного включения встроенной функции в GCC?
Ответ №1:
GCC может встроить функцию на основе следующих правил:
С помощью -O1, если функция статична и вызывается только один раз.
С помощью -O2, если ожидается, что тело будет меньше кода вызова функции.
С помощью -O3 gcc рассмотрит возможность встраивания всех функций.
Источник: https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html