如何在LLVM中创建ConstantInt?

win*_*zel 9 llvm

我不知道如何在LLVM中创建ConstantInt-我知道我想要创建的数字,但我不确定如何使ConstantInt表示该数字; 我似乎无法在文档中找到我需要的构造函数.

我认为它必须符合

ConstantInt consVal = new ConstantInt(something here).
Run Code Online (Sandbox Code Playgroud)

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

Geo*_*edy 7

LLVM中的大多数内容是通过静态方法调用而不是直接使用构造函数创建的.一个原因是可以返回现有对象而不是创建新实例.

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


小智 6

要生成 32 位整数:

llvm::ConstantInt::get(context, llvm::APInt(/*nbits*/32, value, /*bool*/is_signed));
Run Code Online (Sandbox Code Playgroud)