Lines Matching defs:numElements
714 llvm::Value *&numElements,
735 numElements = ConstantEmitter(CGF).tryEmitAbstract(
737 if (!numElements)
738 numElements = CGF.EmitScalarExpr(*e->getArraySize());
739 assert(isa<llvm::IntegerType>(numElements->getType()));
750 = cast<llvm::IntegerType>(numElements->getType());
771 dyn_cast<llvm::ConstantInt>(numElements)) {
780 // We want to do all this arithmetic in size_t. If numElements is
795 // Scale numElements by that. This might overflow, but we don't
798 numElements = llvm::ConstantInt::get(CGF.SizeTy,
827 // 1) if isSigned, we need to check whether numElements is negative;
829 // numElements is larger than something representable in size_t;
830 // 3) if minElements > 0, we need to check whether numElements is smaller
833 // sizeWithoutCookie := numElements * typeSizeMultiplier
851 hasOverflow = CGF.Builder.CreateICmpUGE(numElements, thresholdV);
852 numElements = CGF.Builder.CreateTrunc(numElements, CGF.SizeTy);
857 numElements = CGF.Builder.CreateSExt(numElements, CGF.SizeTy);
865 hasOverflow = CGF.Builder.CreateICmpSLT(numElements,
870 numElements = CGF.Builder.CreateZExt(numElements, CGF.SizeTy);
873 assert(numElements->getType() == CGF.SizeTy);
878 hasOverflow = CGF.Builder.CreateICmpULT(numElements,
885 CGF.Builder.CreateICmpULT(numElements,
890 size = numElements;
895 // This step also causes numElements to be scaled up by the
916 // Also scale up numElements by the array size multiplier.
922 numElements = size;
928 numElements = CGF.Builder.CreateMul(numElements, asmV);
932 // numElements doesn't need to be scaled.
1605 llvm::Value *numElements = nullptr;
1608 EmitCXXNewAllocSize(*this, E, minElements, numElements,
1744 numElements,
1769 numElements);
1771 EmitNewInitializer(*this, E, allocType, elementTy, result, numElements,
2039 llvm::Value *numElements = nullptr;
2043 numElements, allocatedPtr, cookieSize);
2051 numElements, elementType,
2056 assert(numElements && "no element count for a type with a destructor!");
2064 deletedPtr.getElementType(), arrayBegin, numElements, "delete.end");