• LLVM IR简介

    对于LLVM这样的编译框架来说,IR是非常重要的。LLVM IR(Intermediate Representation,中间表示)连接着编译器前端和编译器后端。IR的设计很大程度体现着LLVM插件化、模块化的设计哲学,LLVM的各种pass其实都是作用在LLVM IR上的。同时IR也是一个编译器组件接口。通常情况下,设计一门新的编程语言只需要完成能够生成LLVM IR的编译器前端即可,然后就可以轻松使用LLVM的各种编译优化、JIT支持、目标代码生成等功能。

    LLVM IR的表示形式

    LLVM IR有三种形式:

    内存中的表示形式,如BasicBlock,Instruction这种cpp类;
    bitcode形式,这是一种序列化的二进制表示形式;
    LLVM汇编文件形式,这也是一种序列化的表示形式,与bitcode的区别是汇编文件是可读的、字符串的形式。
    内存中的IR模型

    内存中IR模型其实就是对应LLVM实现… 【查看更多】