您好,欢迎访问代理记账网站
移动应用 微信公众号 联系我们

咨询热线 -

电话 15988168888

联系客服
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

LLVM IR 理解

LLVM IR 理解
LLVM IR表示
LLVM IR有三个不同的形式:
内存中编译中间语言(IR)
保存在硬盘上的 bitcode(.bc 文件,适合快速被一个 JIT 编译器加载)
一个可读性的汇编语言表示(.ll 文件)。
LLVM为高效编译转换和分析,提供一个强大的中间表示。LLVM 的三种不同的形式都是等价的。以下是三种表示的转化方式。
在这里插入图片描述

LLVM 语言在轻量、底层、同时富有表现力,类型化,易于扩展。LLVM IR 语言目标是成为一种"通用中间语言",通过足够低层次,使高级语言可以清晰的映射。通过提供类型信息,LLVM IR 语言可作为优化的目标:
例如,通过指针分析,可以证明,一个 C 自动变量,从不当前函数之外访问,允许被提升到一个简单的 SSA 值,而不是一个堆变量。
LLVM接口构建IR代码
LLVM提供很多API,用于操作IR。使用这些接口,直接在内存中生成IR,直接运行,输出结果。(开发一种新的编程语言,完成词法语法解析后,利用LLVM 接口生成有效的中间代码,很快编译到目标平台上。)
LLVM IR 结构:
在这里插入图片描述

llvm是编译器后端,前端词语法分析,要生成机器代码。首先定义一个虚拟机,生成字节代码,将代码转化成对应系统结构。编译过程中,加入了流程控制,让开发者介入。
开发一种新的编程语言,在词法,语法解析完成后,生成中间代码,然后优化,最后编译成目标机器码。llvm 中间代码,效率高,可读性好。按照语法规则,利用llvm操作IR接口,生成等价的IR。如何编译成目标代码呢?llvm不仅仅是虚拟机,实现了模块化的优化策略和多种后端,后面都交给llvm。
总之:开发一种新编程语言,需要完成词法和语法解析,根据接口,生成可用的IR。
LLVM IR编译归纳图
在这里插入图片描述


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进