Move some assertion checks so they can do more complete checking.

llvm-svn: 69643
This commit is contained in:
Dan Gohman 2009-04-21 00:55:22 +00:00
parent 3214d12325
commit 413e91f440
1 changed files with 8 additions and 6 deletions

View File

@ -201,10 +201,6 @@ SCEVTruncateExpr::SCEVTruncateExpr(const SCEVHandle &op, const Type *ty)
assert((Op->getType()->isInteger() || isa<PointerType>(Op->getType())) &&
(Ty->isInteger() || isa<PointerType>(Ty)) &&
"Cannot truncate non-integer value!");
assert((!Op->getType()->isInteger() || !Ty->isInteger() ||
Op->getType()->getPrimitiveSizeInBits() >
Ty->getPrimitiveSizeInBits()) &&
"This is not a truncating conversion!");
}
SCEVTruncateExpr::~SCEVTruncateExpr() {
@ -255,8 +251,6 @@ SCEVSignExtendExpr::SCEVSignExtendExpr(const SCEVHandle &op, const Type *ty)
assert((Op->getType()->isInteger() || isa<PointerType>(Op->getType())) &&
(Ty->isInteger() || isa<PointerType>(Ty)) &&
"Cannot sign extend non-integer value!");
assert(Op->getType()->getPrimitiveSizeInBits() < Ty->getPrimitiveSizeInBits()
&& "This is not an extending conversion!");
}
SCEVSignExtendExpr::~SCEVSignExtendExpr() {
@ -654,6 +648,10 @@ SCEVHandle SCEVAddRecExpr::evaluateAtIteration(SCEVHandle It,
//===----------------------------------------------------------------------===//
SCEVHandle ScalarEvolution::getTruncateExpr(const SCEVHandle &Op, const Type *Ty) {
assert(getTargetData().getTypeSizeInBits(Op->getType()) >
getTargetData().getTypeSizeInBits(Ty) &&
"This is not a truncating conversion!");
if (SCEVConstant *SC = dyn_cast<SCEVConstant>(Op))
return getUnknown(
ConstantExpr::getTrunc(SC->getValue(), Ty));
@ -702,6 +700,10 @@ SCEVHandle ScalarEvolution::getZeroExtendExpr(const SCEVHandle &Op,
}
SCEVHandle ScalarEvolution::getSignExtendExpr(const SCEVHandle &Op, const Type *Ty) {
assert(getTargetData().getTypeSizeInBits(Op->getType()) <
getTargetData().getTypeSizeInBits(Ty) &&
"This is not an extending conversion!");
if (SCEVConstant *SC = dyn_cast<SCEVConstant>(Op)) {
const Type *IntTy = Ty;
if (isa<PointerType>(IntTy)) IntTy = getTargetData().getIntPtrType();