LLVM IR是否具有重复变量名的作用域?
我是LLVM新手,LLVM IR是否有重复变量名的作用域 例如:LLVM IR是否具有重复变量名的作用域?,llvm,llvm-ir,Llvm,Llvm Ir,我是LLVM新手,LLVM IR是否有重复变量名的作用域 例如: @x = global i32 0 define void @hello() { %x = alloca i32, align 4 } @x变量名是否与%x重复?如果您尝试编写一个代码来处理这些变量,您会发现答案是否 要访问@x,您必须使用模块::GetGlobalVariable方法,该方法显然无法获取%x。类似地,要访问%x,您必须迭代函数s基本块,查找名为“x”的指令。是的,%x不是一个变量,而是一条指令 最后,
@x = global i32 0
define void @hello() {
%x = alloca i32, align 4
}
@x
变量名是否与%x
重复?如果您尝试编写一个代码来处理这些变量,您会发现答案是否
要访问@x
,您必须使用模块::GetGlobalVariable
方法,该方法显然无法获取%x
。类似地,要访问%x
,您必须迭代函数
s基本块
,查找名为“x”的指令。是的,%x
不是一个变量,而是一条指令
最后,在文本IR级别,这些值也不能以任何方式混合,因为LLVM中的全局值前缀为@
,而本地值前缀为%