LLVM架构

典型的编译器架构包括:

  • Frontend:前端  功能包括词法分析、语法分析、语义分析、生成中间代码
  • Optimizer:优化器 中间代码优化
  • Backend:后端  生成机器码

 

 

 LLVM架构:

 

  • 不同的前端后端使用统一的中间代码LLVM Intermediate Representation (LLVM IR)
  • 如果需要支持一种新的编程语言,那么只需要实现一个新的前端
  • 如果需要支持一种新的硬件设备,那么只需要实现一个新的后端
  • 优化阶段是一个通用的阶段,它针对的是统一的LLVM IR,不论是支持新的编程语言,还是支持新的硬件设备,都不需要对优化阶段做修改
  • 相比之下,GCC的前端和后端没分得太开,前端后端耦合在了一起。所以GCC为了支持一门新的语言,或者为了支持一个新的目标平台,就 变得特别困难
  • LLVM现在被作为实现各种静态和运行时编译语言的通用基础结构(GCC家族、Java、.NET、Python、Ruby、Scheme、Haskell、D等)


参考:
https://www.jianshu.com/p/1367dad95445


posted on 2022-01-07 17:12  MissSimple  阅读(186)  评论(0编辑  收藏  举报

导航