Clang编译器基于LLVM基础设施,Clang前端采用C/C++源代码并生成LLVM,谁负责使用优化器和代码生成?
由于优化器pass库将被战略性地放置,并按生成优化代码的顺序调用,那么指定的顺序在哪里,谁也生成目标代码?这是Clang前端程序的一部分,还是还有其他程序来进行优化和生成?
发布于 2016-07-19 13:18:11
可以说,实际上有两个clang。
一个是前端:它只做解析,构建抽象语法树(AST),并应用各种语义检查。它还可以做一些静态分析和其他有用的事情。可以使用-cc1选项访问前端,例如:clang -cc1 -ast-dump。
第二种是驱动程序:它在应用一些优化的同时,从前端获取AST并发射LLVM IR,然后使所有其他魔术,如构建对象文件和将各种组件连接在一起。这通常是在调用clang main.c或类似命令时发生的情况。
请考虑看看这两个响尾蛇提供的帮助:
clang -help
clang -help-hidden
clang -cc1 -help
clang -cc1 -help-hiddenhttps://stackoverflow.com/questions/38455089
复制相似问题