On Oct 12, 2007, at 1:10 PM, Devang Patel wrote:

> +        // Destination pointer type is always i8 *
> +        if (Size == 8)
> +          NewPtrTy = PointerType::get(Type::Int64Ty);
> +        else if (Size == 4)
> +          NewPtrTy = PointerType::get(Type::Int32Ty);
> +        else if (Size == 2)
> +          NewPtrTy = PointerType::get(Type::Int16Ty);
> +        else if (Size == 1)
> +          NewPtrTy = PointerType::get(Type::Int8Ty);

How about:

if (Size && Size <= 8 && (Size&(Size-1)))
   NewPtrTy = PointerType::get(IntegerType::get(Size));

If you don't like "(Size&(Size-1)", use MathExtras.h isPow2 methods.

Thanks Devang,

-Chris
_______________________________________________
llvm-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to