1

我正在使用链接时间优化 ( lto ) 和O2优化级别使用修改版本的clang编译项目。O0 和 O1 做得很好,但遗憾的是 O2删除了一些对函数的调用。有没有办法告诉优化省略特定功能?我已经尝试过使用变量以及没有成功。volatile__attribute__ ((optimize("0")))

也欢迎仅在 llvm IR 级别上直接提供的解决方案。

编辑:也许我应该更详细地解释一下情况。修改后的 clang 添加了对与 clang 一起构建的自定义运行时库的调用。其中一些插入的调用会被优化掉。

4

2 回答 2

4

我相信 __attribute(used)__(GCC)或llvm.used(LLVM)是你正在寻找的。

于 2017-02-21T01:05:17.050 回答
-1

添加__attribute__((noinline))将防止如此指定的功能消失。您也可以使用-fno-inline.

于 2015-12-11T23:17:44.160 回答