【发布时间】:2013-11-15 03:22:52
【问题描述】:
在 Apple LLVM 5.0 编译器中,GCC 的 #pragma GCC optimize("O0") 或 VS 的 #pragma optimize("", off) 是什么?
我需要它来禁用一段代码的优化。
【问题讨论】:
在 Apple LLVM 5.0 编译器中,GCC 的 #pragma GCC optimize("O0") 或 VS 的 #pragma optimize("", off) 是什么?
我需要它来禁用一段代码的优化。
【问题讨论】:
实际上,现在有一种方法可以做到这一点,方法是为包装您不想优化的代码的函数指定 __attribute__ ((optnone))。
例如,我使用它来获得内联函数的明确基准
static void BM_notoptimizedfunction(benchmark::State& state) __attribute__ ((optnone)) {
// your code here won't be optimized by clang
}
就是这样!
【讨论】:
从简短的搜索来看,clang/llvm 目前似乎不支持这样的 pragma。如果您不想关闭整个文件的优化,我建议将您不希望优化的内容分解到一个单独的文件中,并在其上单独设置 -O0。
【讨论】: