将常量整数转换为值* LLVM

时间:2018-08-08 18:59:33

标签: 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)

创建指令。由于第一个参数采用Value*,因此我需要以某种方式将0转换为Value*

你能帮我吗?

1 个答案:

答案 0 :(得分:3)

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

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

在Ctx是要插入StoreInst的函数的上下文中