我不知道如何创建一个ConstantInt在LLVM-我知道我想创建的数量,但我不确定我怎样才能使代表该号码ConstantInt; 我似乎无法找到我需要的文档中的构造函数。
我想那一定是沿着线
ConstantInt consVal = new ConstantInt(something here).
我知道,我想这是一个int类型,我知道我的价值......我只是想创建一个数字!
我不知道如何创建一个ConstantInt在LLVM-我知道我想创建的数量,但我不确定我怎样才能使代表该号码ConstantInt; 我似乎无法找到我需要的文档中的构造函数。
我想那一定是沿着线
ConstantInt consVal = new ConstantInt(something here).
我知道,我想这是一个int类型,我知道我的价值......我只是想创建一个数字!
在LLVM大多数事情都是通过静态方法调用,而不是直接使用构造函数创建的。 原因之一是,现有的对象可以被返回而不是创建一个新的实例。
该ConstantInt的静态成员有许多的创建方法。 你可能最感兴趣的get (Type *Ty, uint64_t V, bool isSigned=false)
如果您还没有一个整数类型, IntegerType::get (LLVMContext &C, unsigned NumBits)
若要使一个32位整数:
llvm::ConstantInt::get(context, llvm::APInt(/*nbits*/32, value, /*bool*/is_signed));
要创建一个32-bit
整数常数:
llvm::Type *i32_type = llvm::IntegerType::getInt32Ty(llvm_context);
llvm::Constant *i32_val = llvm::ConstantInt::get(i32_type, -1/*value*/, true);
ConstantInt* const_int32 = ConstantInt::get( Context , APInt(32, StringRef("10"), 10));
其中,APINT(32,StringRef( “10”),10); 从串“10”得到的int值与基座10。