C++ 将常量整型转换为值*LLVM
我正在尝试创建一个IR指令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
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文档