我想我知道clang和llvm之间的区别但同时我很困惑。我知道clang是前端,它将接受程序并进行hexing-parsing-ast创建,然后创建IR(LLVM IR)。
然后LLVM作为后端接受此IR,对其进行优化并为目标体系结构创建程序集。那是对的吗 ? 我还读到llvm没有链接器。那么在OS X上如何处理?另外我如何看待llvm生成的程序集?x
答案 0 :(得分:1)
然后LLVM作为后端接受此IR,对其进行优化并为目标体系结构创建程序集。那是对的吗 ?
你所描述的一切听起来都很正确,除了对于几个目标架构,LLVM实际上直接生成二进制文件,而不必经过中间组装打印阶段。
我还读到llvm没有链接器。那么在OS X上如何处理?
您使用系统链接器ld
。
另外,我如何看待llvm生成的程序集?
反汇编输出二进制文件(例如,使用otool
)或使用clang -S
生成汇编而不是二进制输出。