是否有与Clang/LLVM等价的#pragma或属性,用于设置optimize("2")?

编程语言 2026-07-10

在一个以 clang 为基础的构建系统中,编译数百个C 模块,采用 -O1 级别的优化。我需要把这两个函数(或它们所在的模块)的优化级别提升到 -O2 级别或更高。到目前为止我所了解到的是,gcc 可以通过优化指令和属性来实现,示例如下:

#pragma GCC optimize ("O3")

__attribute__((optimize("3")))

但似乎 clang 并不支持这样的构造?

我是不是漏掉了什么?是否可以使用 clang 来实现函数级别的优化定义?


更新:构建系统对所有模块使用相同的选项,特别是优化选项。我在寻找一种不需要修改makefiles层级的解决方案。

解决方案

因为这个pragma不被支持,且你也不想改变构建系统,我能想到的唯一变通办法是把这些函数移到一个单独的.c/.cpp文件中,并在你的构建规则中为该文件提供所需的优化标志。

(不确定你使用的是哪种构建系统)但大多数构建系统都允许为特定文件设置自定义标志。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章