LLVM IR中的类型
LLVM后端如何从中间表示处理类型(i32、i32*、…) 例如:LLVM IR中的类型,llvm,llvm-ir,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 } 示例中的类型有什么好处?来自文档: LLVM类型系统是中间表示的最重要特性之一。类型化允许直接
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
}
示例中的类型有什么好处?来自文档:
LLVM类型系统是中间表示的最重要特性之一。类型化允许直接在中间表示上执行大量优化,而无需在转换之前进行额外的分析。强大的类型系统使读取生成的代码变得更容易,并支持在正常的三地址代码表示上无法执行的新颖分析和转换
从文件:
LLVM类型系统是中间表示的最重要特性之一。类型化允许直接在中间表示上执行大量优化,而无需在转换之前进行额外的分析。强大的类型系统使读取生成的代码变得更容易,并支持在正常的三地址代码表示上无法执行的新颖分析和转换
不幸的是,文档中没有给出一个优化示例,这对于未键入的IR来说很棘手。不幸的是,文档中没有给出一个优化示例,这对于未键入的IR来说很棘手。