Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在LLVM IR中将变量设置为0_Llvm_Llvm Ir - Fatal编程技术网

在LLVM IR中将变量设置为0

在LLVM IR中将变量设置为0,llvm,llvm-ir,Llvm,Llvm Ir,是否可以在LLVM-IR中将变量设置为0(或任何其他数字)?我的搜索找到了下面的3行代码段,但是有什么比下面的解决方案更简单的吗 %ptr = alloca i32 ; yields i32*:ptr store i32 3, i32* %ptr ; yields void %val = load i32, i32* %ptr ; yields

是否可以在LLVM-IR中将变量设置为
0
(或任何其他数字)?我的搜索找到了下面的3行代码段,但是有什么比下面的解决方案更简单的吗

%ptr = alloca i32                               ; yields i32*:ptr
store i32 3, i32* %ptr                          ; yields void
%val = load i32, i32* %ptr                      ; yields i32:val = i32 3
要将值设置为零(通常为null),可以使用

Constant::getNullValue(Type)
要使用任意常量设置值,可以使用
ConstantInt::get()
,但需要首先识别上下文,如下所示:

LLVMContext &context = function->getContext();
/* or BB->getContext(), BB can be any basic block in the function */
Value* constVal = ConstantInt::get(Type::getInt32Ty(context), 3);
要将值设置为零(通常为null),可以使用

Constant::getNullValue(Type)
要使用任意常量设置值,可以使用
ConstantInt::get()
,但需要首先识别上下文,如下所示:

LLVMContext &context = function->getContext();
/* or BB->getContext(), BB can be any basic block in the function */
Value* constVal = ConstantInt::get(Type::getInt32Ty(context), 3);
要将值设置为零(通常为null),可以使用

Constant::getNullValue(Type)
要使用任意常量设置值,可以使用
ConstantInt::get()
,但需要首先识别上下文,如下所示:

LLVMContext &context = function->getContext();
/* or BB->getContext(), BB can be any basic block in the function */
Value* constVal = ConstantInt::get(Type::getInt32Ty(context), 3);
要将值设置为零(通常为null),可以使用

Constant::getNullValue(Type)
要使用任意常量设置值,可以使用
ConstantInt::get()
,但需要首先识别上下文,如下所示:

LLVMContext &context = function->getContext();
/* or BB->getContext(), BB can be any basic block in the function */
Value* constVal = ConstantInt::get(Type::getInt32Ty(context), 3);

LLVM-IR采用静态单赋值(SSA)形式,因此每个变量只赋值一次。如果要为内存区域赋值,只需使用存储操作,如示例所示:

store i32 3, i32* %ptr     

第二个参数的类型是
i32*
,这意味着它是指向32位长整数的指针

LLVM-IR是静态单赋值(SSA)形式,因此每个变量只赋值一次。如果要为内存区域赋值,只需使用存储操作,如示例所示:

store i32 3, i32* %ptr     

第二个参数的类型是
i32*
,这意味着它是指向32位长整数的指针

LLVM-IR是静态单赋值(SSA)形式,因此每个变量只赋值一次。如果要为内存区域赋值,只需使用存储操作,如示例所示:

store i32 3, i32* %ptr     

第二个参数的类型是
i32*
,这意味着它是指向32位长整数的指针

LLVM-IR是静态单赋值(SSA)形式,因此每个变量只赋值一次。如果要为内存区域赋值,只需使用存储操作,如示例所示:

store i32 3, i32* %ptr     

第二个参数的类型是
i32*
,这意味着它是指向32位长整数的指针

如果只想将预先存在的内存位置设置为0,则第二行就是所需的全部。如果只想将预先存在的内存位置设置为0,则第二行就是所需的全部。如果只想将预先存在的内存位置设置为0,则第二行就是所需的全部。如果只想将预先存在的内存位置设置为0,第二行就是你所需要的。