`ConstantInt::getTrue (LLVMContext &Context)` 和 `ConstantInt::getTrue (Type *Ty)` 有什么区别?

What's the difference between `ConstantInt::getTrue (LLVMContext &Context)` and `ConstantInt::getTrue (Type *Ty)`?

我在 llvm::ConstantInt 文档中找到了 2 个 API:

  1. static ConstantInt *ConstantInt::getTrue (LLVMContext &Context): https://llvm.org/doxygen/classllvm_1_1ConstantInt.html#a82dbbd8e3688b0bc1eedb338864d0d0c

  2. static Constant *ConstantInt::getTrue (Type *Ty): https://llvm.org/doxygen/classllvm_1_1ConstantInt.html#a1d728e83e9e0fa85b0b58b33ec9c3197

但我不知道这两个 API 有什么区别?

前者构造了一个ConstantInt,其中有i1类型,而后者允许你自己指定类型。这可能对构建 i8 0i16 1 等有用。