首先编译器内部大概分成前端 分析 优化 后端 这几个大概的步骤
llvm的构成:前端就是把高级语言例如c语言转换成IR 这个过程中需要词法分析和语法分析 而例如Clang这样的轻型编译器就是做的这个工作 后端就是把生成的IR转换成汇编
在生成AST之前 通常 parser会先生成一个parse tree
然后通过AST把C语言转换成llvm IR
接下来一步是优化 例如gcc中的-O0 -O3这种 下图中上面是优化前 下面是优化后
最后一步就是汇编指令的生成 llvm IR可以转换成risc-v 或 x86 或 arm这些汇编指令 也称为后端



