Apple LLVM 5.0 编译指示优化

Apple LLVM 5.0 pragma optimize

本文关键字:指示 优化 编译 LLVM Apple      更新时间:2023-10-16

Apple LLVM 5.0编译器中,GCC的#pragma GCC optimize("O0")或VS的#pragma optimize("", off)相当于什么?

我需要它来禁用一段代码的优化。

从简短的搜索来看,clang/llvm目前似乎不支持这样的编译指示。如果您不想关闭整个文件的优化,我建议您将您不想优化的内容分解到一个单独的文件中,并在其上单独设置 -O0。

实际上,

现在有一种方法可以通过指定对包装您不想优化的代码的函数的__attribute__ ((optnone))来做到这一点。

例如,我正在使用它来获得内联函数的明确基准

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

就是这样!