Как изменить оптимизацию всей вызывающей функции при вызове встроенной функции? - PullRequest
0 голосов
/ 25 марта 2019

У меня есть проект Makefile, чтобы скомпилировать кучу C-файлов.Все файлы в проекте скомпилированы с нулевым уровнем оптимизации, но некоторые функции требуют уровня оптимизации 2 (O2).Все те функции, которым требуется уровень оптимизации 2, всегда используют статическую встроенную функцию из файла заголовка.

Мое требование заключается в том, чтобы, когда функция использует эту встроенную функцию из файла заголовка, она должна автоматически менять уровень оптимизации с O0 на O2.,Есть ли какое-либо положение в GCC, которое выполняет это требование?

Я попытался изменить уровень оптимизации каждой функции, которая использует встроенную функцию, добавив атрибут GCC, __attribute__((optimize("O2"))), и он работает хорошо.Но эта встроенная функция используется более чем в 200 местах в моем проекте, и я должен изменить оптимизацию функции, используя вышеуказанную стратегию, в более чем 200 местах, что не выглядит хорошим решением для меня

include "foo.h"

void abc ()
{
 ....
}

void __attribute__((optimize("O2"))) foo()
{
 ...
 "uses inline function from foo.h"
}

abc компилируется с оптимизацией 0 из командной строки GCC.Необходимо foo() для компиляции с оптимизацией O2 без опции атрибута GCC.Я также попытался добавить атрибут GCC к действующей встроенной функции, но это не влияет на оптимизацию foo.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...