clang和llvm之间的混淆

时间:2015-03-28 15:42:26

标签: clang llvm

我想我知道clang和llvm之间的区别但同时我很困惑。我知道clang是前端,它将接受程序并进行hexing-parsing-ast创建,然后创建IR(LLVM IR)。

然后LLVM作为后端接受此IR,对其进行优化并为目标体系结构创建程序集。那是对的吗 ? 我还读到llvm没有链接器。那么在OS X上如何处理?另外我如何看待llvm生成的程序集?x

1 个答案:

答案 0 :(得分:1)

  

然后LLVM作为后端接受此IR,对其进行优化并为目标体系结构创建程序集。那是对的吗 ?

你所描述的一切听起来都很正确,除了对于几个目标架构,LLVM实际上直接生成二进制文件,而不必经过中间组装打印阶段。

  

我还读到llvm没有链接器。那么在OS X上如何处理?

您使用系统链接器ld

  

另外,我如何看待llvm生成的程序集?

反汇编输出二进制文件(例如,使用otool)或使用clang -S生成汇编而不是二进制输出。