LLVM 可以用于生成优化的 C 代码吗

219*_*CID 2 c llvm llvm-clang llvm-c++-api

是否可以使用 LLVM 读取 C 代码并使其更快?我已经看到很多关于使用 LLVM 将 C++ 转换为(不可读的)C 代码的讨论,但我想知道 LLVM 是否可以读取 C 代码,并生成一个具有相同功能的文件(代码,而不是可执行文件)速度更快。

arn*_*rnt 5

不。

LLVM 有一个 C 后端,因此您可以通过 LLVM IR 将 C 编译为 C 并在此过程中应用优化传递,但是您要问的既不是该后端的设计目标,也不是整个 LLVM 的设计目标。如果它适用于任何特定情况,那么这只是一个快乐的巧合。

LLVM 的目标之一是使用类似于各种当前硬件的后端生成快速代码。然而,C 甚至没有试图模仿现代处理器。相当合理,比最新的硅奇迹年长五十岁。