有人告诉我,clang是一个像gcc一样的驱动程序,可以做预处理、编译和链接工作。在编译和链接过程中,据我所知,做优化("-O1", "-O2", "-O3", "-Os", "-flto")的实际上是llvm。
但我只是不明白 llvm是如何涉及的。
编译源代码甚至不需要像libLLVMCore.a这样的静态库,因为debian包依赖于另一个名为libllvm-3.4(clang为3.4)的包,其中包含libLLVM-3.4.so(.1),clang是否使用这个共享库进行优化?
我已经检查了一段时间的clang源代码,发现include/clang/Driver/Options.td包含相关的选项,但不幸的是,我未能找到包含该文件的源文件,因此我仍然不知道该机制。
我希望有人能给我一些提示。
发布于 2014-11-03 13:35:32
这和GCC不太一样,所以不要花太多的时间来精确地匹配这两个人。
LLVM编译器是一种特定语言LLVM的编译器。Clang所做的是将C++代码编译到LLVM,而不进行优化。然后,Clang可以调用LLVM编译器将该LLVM代码编译为优化的程序集。
https://stackoverflow.com/questions/26715356
复制相似问题