什么是LLVM中间表示?

时间:2012-10-17 07:57:50

标签: llvm intermediate-code

我从链接http://llvm.org/demo/尝试了LLVM演示 这是什么样的IR? HIR,MIR还是LIR?我认为,SSA表示通常用于MIR。那么,它是MIR吗?但它可以存储依赖性分析的信息。因此,它可以是一个HIR吗?

什么文件扩展名实际上代表LLVM IR,.ll或.bc?

如何获取LLVM中使用的符号表?

1 个答案:

答案 0 :(得分:7)

我不熟悉单一的,严格的定义,将IR级别与另一级别区别开来,但据我所知,它属于MIR类别。

  • 它有SSA格式,没有明确的寄存器,所以我绝对不会将它归类为低级别。
  • 它没有命名的子元素引用或高级流控制结构,所以它也不适合HIR。

在任何情况下,LLVM IR通常以 .ll 扩展名的文本文件或扩展名为 .bc 的二进制文件存储在磁盘上。两者之间的转换是微不足道的,你可以使用llvm-dis来获取 bc - > ll llvm-as ll - >的 BC 即可。二进制格式的内存效率更高,而文本格式是人类可读的。