使用 CLANG/LLVM 编译器减少代码的执行时间

发布于 2024-10-18 00:37:08 字数 192 浏览 5 评论 0原文

嗯...当我在寻找一个好的编译器时,我遇到了 clang/LLVM。该编译器给出的结果与其他编译器(如 icc、pgi)相同。但问题是关于这个编译器的教程很少......请让我知道在哪里可以找到关于 clang 编译器的教程。

注: 我使用以下标志编译了我的 c 代码 clang -O3 -mfpmath=sse file.c

Well... When i was searching for a good compiler I came across clang/LLVM. This compiler gives me same result as other compilers like icc, pgi. But the problem is there are very few tutorials on this compiler... Kindly let me know where can I find the tutorials on the clang compiler.

Note by:
I have compiled my c code using the following flags clang -O3 -mfpmath=sse file.c

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

神经暖 2024-10-25 00:37:08

Clang(命令行编译器)采用与 gcc 兼容的选项,但接受并忽略 GCC 采用的许多标志(例如 -mfpmath=sse)。我们的目标是生成开箱即用的良好代码。有一些标志允许 clang 违反语言标准,这些标准在某些情况下可能有用,例如 -ffast-math。

如果您正在寻求良好的性能,我强烈建议尝试链接时间优化,它允许 clang 跨应用程序中的源文件进行优化。根据您所在的平台,可以通过将 -O4 传递给编译器来启用此功能。如果您使用的是 Linux,则需要使用“gold”链接器(请参阅 http://llvm.org/docs/GoldPlugin。 html)。如果您使用的是 Mac,它应该“适用于”任何最新版本的 Xcode。

Clang (the command line compiler) takes gcc-compatible options, but accepts and ignores a lot of flags that GCC takes (like -mfpmath=sse). We aim to generate good code out of the box. There are some flags that allow clang to violate the language standards that can be useful in some scenarios, like -ffast-math though.

If you're looking for good performance, I highly recommend experimenting with link-time-optimization, which allows clang to optimize across source files in your application. Depending on what platform you're on, this is enabled by passing -O4 to the compiler. If you're on linux, you need to use the "gold" linker (see http://llvm.org/docs/GoldPlugin.html). If you're on the mac, it should "just work" with any recent version of Xcode.

总攻大人 2024-10-25 00:37:08

clang 不是编译器,它只是 LLVM 编译器的前端。因此,当您调用 clang 时,它会解析 c/c++ 文件,但优化和代码生成是在 LLVM 本身中处理的。

您可以在这里找到 LLVM 优化和分析选项的文档:http://llvm.org/docs/Passes。 html

完整的文档在这里 http://llvm.org/docs/

另外有用的选项是此处列出 http://linux.die.net/man/1/llvmc (我建议 clang 也会接受其中的大多数)

The clang is not a compiler, it is just frontend of LLVM compiler. So, when you calls clang, it parses c/c++ file but the optimization and code generation is handled in LLVM itself.

Here you can found a documentation of LLVM optimization and analysis options: http://llvm.org/docs/Passes.html

The full documentation is here http://llvm.org/docs/

Also useful options are listed here http://linux.die.net/man/1/llvmc (I suggest clang will accept most of them too)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文