LLVM IR中的类型

时间:2017-07-09 20:42:11

标签: llvm llvm-ir

LLVM后端如何处理来自中间表示的类型(i32,i32 *,...)?

例如:

define i32 @main() #0 {
    %2 = alloca i32, align 4
    %3 = load i32, i32* %2, align 4
    %4 = add nsw i32 %3, 54
    store i32 %4, i32* %2, align 4
    ret i32 0
}

示例中的类型有什么好处?

1 个答案:

答案 0 :(得分:3)

来自LLVMs文档:

  

LLVM类型系统是中间表示的最重要特征之一。通过键入可以直接对中间表示执行多个优化,而无需在转换之前对侧进行额外的分析。强类型系统使得更容易读取生成的代码,并实现在正常的三个地址代码表示上无法执行的新颖分析和转换。