编译器与链接相关
GCC
编译流程:
Frontend pass :
通过源码生成 Abstract Syntax Tree (AST)
Middle-end pass :
将 AST 转换为 GIMPLE 中间表达(high-level,语言无关)
将 GIMPLE 转换为 SSA (Static Single Assignment) 格式
Backend pass :
将 GIMPLE 转换为 low level, 机器无关的中间表达 RTL (Register Transfer Language)
IPA : Interprocedural Analysis,考虑多个函数或多个文件的优化
使用 -fdump-passes
编译选项输出 GCC 使用的所有 pass-fdump-tree-all
输出所有 gimple pass-fdump-rtl-all
输出所有 RTL pass
编译选项:
-m
: 机器相关选项
LLVM
llvm IR