diff --git a/llvm/lib/CodeGen/TypePromotion.cpp b/llvm/lib/CodeGen/TypePromotion.cpp --- a/llvm/lib/CodeGen/TypePromotion.cpp +++ b/llvm/lib/CodeGen/TypePromotion.cpp @@ -134,8 +134,9 @@ Ctx(C), OrigTy(Ty), PromotedWidth(Width), Visited(visited), Sources(sources), Sinks(sinks), SafeWrap(wrap) { ExtTy = IntegerType::get(Ctx, PromotedWidth); - assert(OrigTy->getPrimitiveSizeInBits() < ExtTy->getPrimitiveSizeInBits() - && "Original type not smaller than extended type"); + assert(OrigTy->getPrimitiveSizeInBits().getFixedSize() < + ExtTy->getPrimitiveSizeInBits().getFixedSize() && + "Original type not smaller than extended type"); } void Mutate(); @@ -809,7 +810,7 @@ bool TypePromotion::TryToPromote(Value *V, unsigned PromotedWidth) { Type *OrigTy = V->getType(); - TypeSize = OrigTy->getPrimitiveSizeInBits(); + TypeSize = OrigTy->getPrimitiveSizeInBits().getFixedSize(); SafeToPromote.clear(); SafeWrap.clear(); @@ -980,15 +981,14 @@ if (TLI->getTypeAction(ICmp->getContext(), SrcVT) != TargetLowering::TypePromoteInteger) break; - EVT PromotedVT = TLI->getTypeToTransformTo(ICmp->getContext(), SrcVT); - if (RegisterBitWidth < PromotedVT.getSizeInBits()) { + if (RegisterBitWidth < PromotedVT.getFixedSizeInBits()) { LLVM_DEBUG(dbgs() << "IR Promotion: Couldn't find target register " << "for promoted type\n"); break; } - MadeChange |= TryToPromote(I, PromotedVT.getSizeInBits()); + MadeChange |= TryToPromote(I, PromotedVT.getFixedSizeInBits()); break; } }