Clang编译器阶段

时间:2016-07-19 09:52:13

标签: clang llvm

Clang Compiler是基于LLVM基础架构构建的,Clang前端采用C / C ++源代码并生成LLVM-IR,它负责使用优化器和代码生成?

由于策略性地放置优化器传递库并按顺序调用以生成优化代码,指定的顺序在哪里,谁也生成目标代码?这是Clang前端程序的一部分还是有其他程序可以进行优化和生成?

1 个答案:

答案 0 :(得分:2)

实际上有两个clang,可以这么说。

一个是前端:它只是解析,构建抽象语法树(AST),并应用各种语义检查。它还可以做一些静态分析和其他有用的事情。可以使用-cc1选项访问前端,例如:clang -cc1 -ast-dump

第二个是驱动程序:它从前端获取AST并在应用一些优化时发出LLVM IR,然后进行所有其他魔术,例如构建目标文件和将各种组件链接在一起。当调用clang main.c或类似命令时,通常会发生这种情况。

请考虑查看两个铿锵声提供的帮助:

clang -help
clang -help-hidden
clang -cc1 -help
clang -cc1 -help-hidden