如何创建一个LLVM ConstantInt?(How to create a ConstantIn

2019-09-01 06:04发布

我不知道如何创建一个ConstantInt在LLVM-我知道我想创建的数量,但我不确定我怎样才能使代表该号码ConstantInt; 我似乎无法找到我需要的文档中的构造函数。

我想那一定是沿着线

ConstantInt consVal = new ConstantInt(something here).

我知道,我想这是一个int类型,我知道我的价值......我只是想创建一个数字!

Answer 1:

在LLVM大多数事情都是通过静态方法调用,而不是直接使用构造函数创建的。 原因之一是,现有的对象可以被返回而不是创建一个新的实例。

该ConstantInt的静态成员有许多的创建方法。 你可能最感兴趣的get (Type *Ty, uint64_t V, bool isSigned=false)如果您还没有一个整数类型, IntegerType::get (LLVMContext &C, unsigned NumBits)



Answer 2:

若要使一个32位整数:

llvm::ConstantInt::get(context, llvm::APInt(/*nbits*/32, value, /*bool*/is_signed));


Answer 3:

要创建一个32-bit整数常数:

llvm::Type *i32_type = llvm::IntegerType::getInt32Ty(llvm_context);
llvm::Constant *i32_val = llvm::ConstantInt::get(i32_type, -1/*value*/, true);


Answer 4:

ConstantInt* const_int32  = ConstantInt::get( Context , APInt(32, StringRef("10"), 10));

其中,APINT(32,StringRef( “10”),10); 从串“10”得到的int值与基座10。



文章来源: How to create a ConstantInt in LLVM?
标签: llvm