Lines Matching defs:numElements
708 llvm::Value *&numElements,
729 numElements =
731 if (!numElements)
732 numElements = CGF.EmitScalarExpr(*e->getArraySize());
733 assert(isa<llvm::IntegerType>(numElements->getType()));
744 = cast<llvm::IntegerType>(numElements->getType());
765 dyn_cast<llvm::ConstantInt>(numElements)) {
774 // We want to do all this arithmetic in size_t. If numElements is
789 // Scale numElements by that. This might overflow, but we don't
792 numElements = llvm::ConstantInt::get(CGF.SizeTy,
821 // 1) if isSigned, we need to check whether numElements is negative;
823 // numElements is larger than something representable in size_t;
824 // 3) if minElements > 0, we need to check whether numElements is smaller
827 // sizeWithoutCookie := numElements * typeSizeMultiplier
845 hasOverflow = CGF.Builder.CreateICmpUGE(numElements, thresholdV);
846 numElements = CGF.Builder.CreateTrunc(numElements, CGF.SizeTy);
851 numElements = CGF.Builder.CreateSExt(numElements, CGF.SizeTy);
859 hasOverflow = CGF.Builder.CreateICmpSLT(numElements,
864 numElements = CGF.Builder.CreateZExt(numElements, CGF.SizeTy);
867 assert(numElements->getType() == CGF.SizeTy);
872 hasOverflow = CGF.Builder.CreateICmpULT(numElements,
879 CGF.Builder.CreateICmpULT(numElements,
884 size = numElements;
889 // This step also causes numElements to be scaled up by the
910 // Also scale up numElements by the array size multiplier.
916 numElements = size;
922 numElements = CGF.Builder.CreateMul(numElements, asmV);
926 // numElements doesn't need to be scaled.
1599 llvm::Value *numElements = nullptr;
1602 EmitCXXNewAllocSize(*this, E, minElements, numElements,
1738 numElements,
1763 numElements);
1765 EmitNewInitializer(*this, E, allocType, elementTy, result, numElements,
2042 llvm::Value *numElements = nullptr;
2046 numElements, allocatedPtr, cookieSize);
2054 numElements, elementType,
2059 assert(numElements && "no element count for a type with a destructor!");
2067 deletedPtr.getElementType(), arrayBegin, numElements, "delete.end");