[LLVMdev] access IntegerType::getSignBit from Type *
Alexander Poddey
alexander.poddey at gmx.net
Fri Jan 23 00:16:10 PST 2015
Hi mats,
:smiting my forehead: Sure! thats it, thanks a lot.
Alex
mats petersson wrote:
> You will need to do soemthing like:
>
> IntegerType* pInt = dyn_cast<IntegerType>(pType);
> if (pInt) ... use pInt->getSignBit() ...
>
> Of course, you have already checked isIntegerTy, so it's probably fine
> to not check if the conversion was good. So you could do
> dyn_cast<IntegerType>(pType)->getSignBit()
>
> But if you are going to dyn_cast, you could as well do :
> if (IntegerType* pInt = dyn_cast<IntegerType>(pType))
> {
> ...
> }
>
> instead of if (pType.isIntegerTy) ...
>
> --
> Mats
>
> On 22 January 2015 at 10:07, Alexander Poddey <alexander.poddey at gmx.net>
> wrote:
>> Hi,
>>
>> I have a Type * which may come from an IntegerType as shown below:
>>
>> Type.getIntegerBitWidth() tells me numBits.
>> But how to extract the IntegerType.getSignBit?
>>
>> If pType isIntegerType, I need to know if it is signed or unsigned...
>>
>> How to achieve this?
>>
>> Thx
>> Alex
>>
>>
>>
>> llvm::Type * getRandomValid_IntegerType(llvm::LLVMContext &C)
>> {
>> using namespace llvm;
>>
>> //--- determine num of bits between allowed bits
>> int rI=randInt(IntegerType::MIN_INT_BITS,IntegerType::MAX_INT_BITS);
>>
>> return IntegerType::get(C, rI);
>>
>>
>> }
>>
>>
>> llvm::Type * pType=getRandomValid_IntegerType(llvm::LLVMContext &C);
>>
>> if(pType.isIntegerTy)
>> {
>> pType->getIntegerBitWidth(); // ok
>> pType->HOWTOGET_SIGN_INFO; //?
>> }
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
More information about the llvm-dev
mailing list