LLVM编流程

LLVM概念

LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time)。对开发者保持开放,并兼容已有脚本
##传统编译器设计

截屏2022-02-21 下午3.14.36.png
####编译器前端(Frontend)
编译器前端的任务是解析源代码(编译阶段),它会进行 词法分析语法分析语义分析、检查源代码是否存在错误,然后构建抽象语法树(Abstract Syntax Tree AST),LLVM的前端还会生成中间代码(intermediate representation,简称IR),可以理解为llvm是编译器 + 优化器, 接收的是IR中间代码,输出的还是IR,给后端,经过后端翻译成目标指令集
#####优化器 Optimizer
优化器负责进行各种优化,改善代码的运行时间,例如消除冗余计算等
####后端 Backend(代码生成器 Code Generator)
将代码映射到目标指令集,生成机器代码,并且进行机器代码相关的代码优化
##iOS的编译器架构
OC、C、C++使用的编译器前端是ClangSwiftswift,后端都是LLVM
截屏2022-02-21 下午3.20.06.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值