【LLVM编译器系列1】llvm IR概述

LLVM IR提出的好处

首先解释IR是什么意思,IR就是源码翻译到某种中间的标识,英文是Intermediate Representation,简称IR,最后IR根据运行硬件的体系结构翻译为汇编语言。IR的好处如下:

  1. 对于一些优化技术与硬件平台无关,因此在IR层完成此类优化,这样所有的硬件平台都可以受用此类优化技术,减少了开发量。例如对于删除死代码或者常量折叠等优化技术,在源代码转化为IR的过程中,就可以完成,这样同样优化可以在不同硬件平台上运行。

LLVM的结构设计

常见的编译器组成部分:前端(front-end),中端(middle-end)和后端(back-end),各个端的功能不尽相同:

前端:将源语言翻译成IR。

中断:各种pass完成对IR的优化。

后端:把优化后的IR翻译成目标语言。

LLVM同样是此类设计,如下图:

LLVM IR总体结构

IR也是一种代码程序,本节先大概介绍其组成结构:

  1. IR的基本单位是module。

  2. 一个module中拥有多个顶层实体,例如function和global variable

  3. function的define中至少有一个basicblock。

  4. 每个basicblock中包含多个instruction。

总结

本节主要粗狂介绍LLVM IR部分,后续章节根据LLVM官方资料进行逐步介绍。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值