什么是LLVM中间表示?

什么是LLVM中间表示?,llvm,intermediate-code,Llvm,Intermediate Code,我已经从链接中尝试了LLVM演示 这是什么样的IR?HIR,MIR还是LIR?我认为SSA表示法通常用于和平号。那么,这是和平号吗?但它可以存储相关分析的信息。因此,它可以是HIR吗 什么文件扩展名实际代表LLVM IR、.ll或.bc 如何获得LLVM中使用的符号表?我不熟悉一个单一的、严格的定义来区分一个级别的IR和另一个级别的IR,但据我所知,它属于MIR类别 它有SSA形式,没有显式寄存器,所以我绝对不会将其归类为低级 它没有命名的子元素引用或高级流控制结构,因此也不适合HIR 在任

我已经从链接中尝试了LLVM演示 这是什么样的IR?HIR,MIR还是LIR?我认为SSA表示法通常用于和平号。那么,这是和平号吗?但它可以存储相关分析的信息。因此,它可以是HIR吗

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


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

我不熟悉一个单一的、严格的定义来区分一个级别的IR和另一个级别的IR,但据我所知,它属于MIR类别

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

在任何情况下,LLVM IR通常以扩展名为.ll的文本文件或扩展名为.bc的二进制文件的形式存储在磁盘上。两者之间的转换非常简单,您可以对bc->ll使用
llvm-dis
,对ll->bc使用
llvm-as
。二进制格式的内存效率更高,而文本格式是人类可读的。

具有LLVM IR文本表示的文件具有
.ll
扩展名,二进制格式-
.bc