Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.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
C++ 将常量整型转换为值*LLVM_C++_Performance_Optimization_Compiler Construction_Llvm - Fatal编程技术网

C++ 将常量整型转换为值*LLVM

C++ 将常量整型转换为值*LLVM,c++,performance,optimization,compiler-construction,llvm,C++,Performance,Optimization,Compiler Construction,Llvm,我正在尝试创建一个IR指令 store i32 0, i32* %3, align 4 我正在使用这个方法 StoreInst *CreateAlignedStore(Value *Val, Value *Ptr, unsigned Align, bool isVolatile = false) 创建指令。由于第一个参数采用值*,因此我需要将0转换为Value* 你能帮我一下吗?你可以使用llvm::Constant作为*val,llvm常量继承自Value。为0创建常量的一种方法是 llv

我正在尝试创建一个IR指令

store i32 0, i32* %3, align 4
我正在使用这个方法

StoreInst *CreateAlignedStore(Value *Val, Value *Ptr, unsigned Align, bool isVolatile = false)
创建指令。由于第一个参数采用
值*
,因此我需要将
0
转换为
Value*


你能帮我一下吗?

你可以使用llvm::Constant作为*val,llvm常量继承自Value。为0创建常量的一种方法是

llvm::ConstantInt::get(llvm::Type::getInt64Ty(Ctx), 0)

如果Ctx是要将StoreInst插入到的函数的上下文,

IRBuilder
中也有一种方便的方法,就是使用IRBuilder来实现这一点,并且它起到了作用。非常感谢你。我想学习上下文的东西,虽然我没有得到它。如何获得Ctx的值以及上下文的含义是什么?同样,多亏了你们两位,你们可以通过getContext()函数从函数、BasicBlock或模块中获取Contect。关于上下文的解释,请查看llvm文档