if (Ty->isInteger()) {
if (isSigned) {
// Calculate 011111111111111...
- unsigned TypeBits = Ty->getPrimitiveSize()*8;
+ unsigned TypeBits = Ty->getPrimitiveSizeInBits();
int64_t Val = INT64_MAX; // All ones
Val >>= 64-TypeBits; // Shift out unwanted 1 bits...
return ConstantInt::get(Ty, Val);
if (Ty->isInteger()) {
if (isSigned) {
// Calculate 1111111111000000000000
- unsigned TypeBits = Ty->getPrimitiveSize()*8;
+ unsigned TypeBits = Ty->getPrimitiveSizeInBits();
int64_t Val = -1; // All ones
Val <<= TypeBits-1; // Shift over to the right spot
return ConstantInt::get(Ty, Val);
/// correspond to the possible range of values as if the source range had been
/// zero extended.
ConstantRange ConstantRange::zeroExtend(const Type *Ty) const {
- assert(getLower()->getType()->getPrimitiveSize() < Ty->getPrimitiveSize() &&
- "Not a value extension");
+ unsigned SrcTySize = getLower()->getType()->getPrimitiveSizeInBits();
+ assert(SrcTySize < Ty->getPrimitiveSizeInBits() && "Not a value extension");
if (isFullSet()) {
// Change a source full set into [0, 1 << 8*numbytes)
- unsigned SrcTySize = getLower()->getType()->getPrimitiveSize();
return ConstantRange(Constant::getNullValue(Ty),
- ConstantInt::get(Ty, 1ULL << SrcTySize*8));
+ ConstantInt::get(Ty, 1ULL << SrcTySize));
}
Constant *Lower = getLower();
/// correspond to the possible range of values as if the source range had been
/// truncated to the specified type.
ConstantRange ConstantRange::truncate(const Type *Ty) const {
- assert(getLower()->getType()->getPrimitiveSize() > Ty->getPrimitiveSize() &&
- "Not a value truncation");
- uint64_t Size = 1ULL << Ty->getPrimitiveSize()*8;
+ unsigned SrcTySize = getLower()->getType()->getPrimitiveSizeInBits();
+ assert(SrcTySize > Ty->getPrimitiveSize() && "Not a value truncation");
+ uint64_t Size = 1ULL << Ty->getPrimitiveSizeInBits();
if (isFullSet() || getSetSize() >= Size)
return ConstantRange(getType());
: SCEV(scTruncate), Op(op), Ty(ty) {
assert(Op->getType()->isInteger() && Ty->isInteger() &&
"Cannot truncate non-integer value!");
- assert(Op->getType()->getPrimitiveSize() > Ty->getPrimitiveSize() &&
- "This is not a truncating conversion!");
+ assert(Op->getType()->getPrimitiveSizeInBits() > Ty->getPrimitiveSizeInBits()
+ && "This is not a truncating conversion!");
}
SCEVTruncateExpr::~SCEVTruncateExpr() {
: SCEV(scZeroExtend), Op(op), Ty(ty) {
assert(Op->getType()->isInteger() && Ty->isInteger() &&
"Cannot zero extend non-integer value!");
- assert(Op->getType()->getPrimitiveSize() < Ty->getPrimitiveSize() &&
- "This is not an extending conversion!");
+ assert(Op->getType()->getPrimitiveSizeInBits() < Ty->getPrimitiveSizeInBits()
+ && "This is not an extending conversion!");
}
SCEVZeroExtendExpr::~SCEVZeroExtendExpr() {
const Type *SrcTy = V->getType();
assert(SrcTy->isInteger() && Ty->isInteger() &&
"Cannot truncate or zero extend with non-integer arguments!");
- if (SrcTy->getPrimitiveSize() == Ty->getPrimitiveSize())
+ if (SrcTy->getPrimitiveSizeInBits() == Ty->getPrimitiveSizeInBits())
return V; // No conversion
- if (SrcTy->getPrimitiveSize() > Ty->getPrimitiveSize())
+ if (SrcTy->getPrimitiveSizeInBits() > Ty->getPrimitiveSizeInBits())
return SCEVTruncateExpr::get(V, Ty);
return SCEVZeroExtendExpr::get(V, Ty);
}
if (Ty->isInteger()) {
if (isSigned) {
// Calculate 011111111111111...
- unsigned TypeBits = Ty->getPrimitiveSize()*8;
+ unsigned TypeBits = Ty->getPrimitiveSizeInBits();
int64_t Val = INT64_MAX; // All ones
Val >>= 64-TypeBits; // Shift out unwanted 1 bits...
return ConstantInt::get(Ty, Val);
if (Ty->isInteger()) {
if (isSigned) {
// Calculate 1111111111000000000000
- unsigned TypeBits = Ty->getPrimitiveSize()*8;
+ unsigned TypeBits = Ty->getPrimitiveSizeInBits();
int64_t Val = -1; // All ones
Val <<= TypeBits-1; // Shift over to the right spot
return ConstantInt::get(Ty, Val);
/// correspond to the possible range of values as if the source range had been
/// zero extended.
ConstantRange ConstantRange::zeroExtend(const Type *Ty) const {
- assert(getLower()->getType()->getPrimitiveSize() < Ty->getPrimitiveSize() &&
- "Not a value extension");
+ unsigned SrcTySize = getLower()->getType()->getPrimitiveSizeInBits();
+ assert(SrcTySize < Ty->getPrimitiveSizeInBits() && "Not a value extension");
if (isFullSet()) {
// Change a source full set into [0, 1 << 8*numbytes)
- unsigned SrcTySize = getLower()->getType()->getPrimitiveSize();
return ConstantRange(Constant::getNullValue(Ty),
- ConstantInt::get(Ty, 1ULL << SrcTySize*8));
+ ConstantInt::get(Ty, 1ULL << SrcTySize));
}
Constant *Lower = getLower();
/// correspond to the possible range of values as if the source range had been
/// truncated to the specified type.
ConstantRange ConstantRange::truncate(const Type *Ty) const {
- assert(getLower()->getType()->getPrimitiveSize() > Ty->getPrimitiveSize() &&
- "Not a value truncation");
- uint64_t Size = 1ULL << Ty->getPrimitiveSize()*8;
+ unsigned SrcTySize = getLower()->getType()->getPrimitiveSizeInBits();
+ assert(SrcTySize > Ty->getPrimitiveSize() && "Not a value truncation");
+ uint64_t Size = 1ULL << Ty->getPrimitiveSizeInBits();
if (isFullSet() || getSetSize() >= Size)
return ConstantRange(getType());