Apple LLVM 5.0编译器中GCC的#pragma GCC optimize("O0")
或VS #pragma optimize("", off)
的等价物是什么?
我需要它来禁用一段代码的优化。
答案 0 :(得分:4)
从简短的搜索来看,clang / llvm目前不支持这样的编译指示。如果您不想关闭整个文件的优化,我建议将您不希望优化的内容分解为单独的文件,并在其上单独设置-O0。
答案 1 :(得分:1)
实际上现在有一种方法可以通过为包含您不希望优化的代码的函数指定__attribute__ ((optnone))
来实现此目的。
例如,我使用它来获得内联函数的明确基准
static void BM_notoptimizedfunction(benchmark::State& state) __attribute__ ((optnone)) {
// your code here won't be optimized by clang
}
那就是它!