>  SCEVHandle SCEVTruncateExpr::get(const SCEVHandle &Op, const Type  
> *Ty) {
>    if (SCEVConstant *SC = dyn_cast<SCEVConstant>(Op))
> -    return SCEVUnknown::get(ConstantExpr::getCast(SC->getValue(),  
> Ty));
> +    return SCEVUnknown::get(
> +        ConstantExpr::getTruncOrBitCast(SC->getValue(), Ty));

Shouldn't this one always bit a truncate?

>  SCEVHandle SCEVZeroExtendExpr::get(const SCEVHandle &Op, const  
> Type *Ty) {
>    if (SCEVConstant *SC = dyn_cast<SCEVConstant>(Op))
> -    return SCEVUnknown::get(ConstantExpr::getCast(SC->getValue(),  
> Ty));
> +    return SCEVUnknown::get(
> +        ConstantExpr::getZExtOrBitCast(SC->getValue(), Ty));

Likewise, always a zext?

> @@ -998,11 +1000,10 @@
>        Constant *LHSCV = LHSC->getValue();
>        Constant *RHSCV = RHSC->getValue();
>        if (LHSCV->getType()->isUnsigned())
> -        LHSCV = ConstantExpr::getInferredCast(
> -            LHSCV, false, LHSCV->getType()->getSignedVersion(),  
> true);
> +        LHSCV = ConstantExpr::getBitCast(LHSCV,
> +                                         LHSCV->getType()- 
> >getSignedVersion());
>        if (RHSCV->getType()->isUnsigned())
> -        RHSCV = ConstantExpr::getInferredCast(
> -            RHSCV, false, LHSCV->getType(), true);
> +        RHSCV = ConstantExpr::getBitCast(RHSCV, LHSCV->getType());
>        return SCEVUnknown::get(ConstantExpr::getSDiv(LHSCV, RHSCV));
>      }
>    }

As I mentioned before, these casts can all go away.  sdiv is signless  
now.

-Chris
_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to