[llvm-commits] [llvm] r42930 - /llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp

Chris Lattner clattner at apple.com
Fri Oct 12 22:22:34 PDT 2007


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



More information about the llvm-commits mailing list