Apple LLVM 5.0 прагма оптимизировать

Что эквивалентно GCC #pragma GCC optimize("O0") или VS #pragma optimize("", off) в компиляторе Apple LLVM 5.0?

Мне нужно, чтобы отключить оптимизацию только для части кода.

5

Решение

Из краткого поиска не похоже, что clang / llvm поддерживает такую ​​прагму в настоящее время. Если вы не хотите отключать оптимизацию для всего файла, я предлагаю разделить то, что вы не хотите оптимизировать, в отдельный файл и установить -O0 для него отдельно.

4

Другие решения

На самом деле теперь есть способ сделать это, указав __attribute__ ((optnone)) к функции, которая упаковывает код, который вы не хотите оптимизировать.

Например, я использую его, чтобы иметь четкий эталон встроенной функции

static void BM_notoptimizedfunction(benchmark::State& state) __attribute__ ((optnone)) {
// your code here won't be optimized by clang
}

И это все !

1

По вопросам рекламы [email protected]