Home | History | Annotate | Download | only in CodeGen

Lines Matching defs:numElements

550                                         llvm::Value *&numElements,
569 // We multiply the size of all dimensions for NumElements.
570 // e.g for 'int[2][3]', ElemType is 'int' and NumElements is 6.
571 numElements = CGF.EmitScalarExpr(e->getArraySize());
572 assert(isa<llvm::IntegerType>(numElements->getType()));
583 = cast<llvm::IntegerType>(numElements->getType());
604 dyn_cast<llvm::ConstantInt>(numElements)) {
613 // We want to do all this arithmetic in size_t. If numElements is
628 // Scale numElements by that. This might overflow, but we don't
631 numElements = llvm::ConstantInt::get(CGF.SizeTy,
660 // 1) if isSigned, we need to check whether numElements is negative;
662 // numElements is larger than something representable in size_t;
663 // 3) if minElements > 0, we need to check whether numElements is smaller
666 // sizeWithoutCookie := numElements * typeSizeMultiplier
684 hasOverflow = CGF.Builder.CreateICmpUGE(numElements, thresholdV);
685 numElements = CGF.Builder.CreateTrunc(numElements, CGF.SizeTy);
690 numElements = CGF.Builder.CreateSExt(numElements, CGF.SizeTy);
698 hasOverflow = CGF.Builder.CreateICmpSLT(numElements,
703 numElements = CGF.Builder.CreateZExt(numElements, CGF.SizeTy);
706 assert(numElements->getType() == CGF.SizeTy);
711 hasOverflow = CGF.Builder.CreateICmpULT(numElements,
718 CGF.Builder.CreateICmpULT(numElements,
723 size = numElements;
728 // This step also causes numElements to be scaled up by the
749 // Also scale up numElements by the array size multiplier.
755 numElements = size;
761 numElements = CGF.Builder.CreateMul(numElements, asmV);
765 // numElements doesn't need to be scaled.
833 llvm::Value *numElements) {
840 Builder.CreateInBoundsGEP(beginPtr, numElements, "array.end");
884 if (llvm::ConstantInt *constNum = dyn_cast<llvm::ConstantInt>(numElements)) {
954 llvm::Value *NumElements,
974 CGF.EmitCXXAggrConstructorCall(Ctor, NumElements, NewPtr,
985 CGF.EmitNewArrayInitializer(E, ElementType, NewPtr, NumElements);
1173 llvm::Value *numElements = 0;
1176 EmitCXXNewAllocSize(*this, E, minElements, numElements,
1273 numElements,
1281 EmitNewInitializer(*this, E, allocType, result, numElements,
1450 llvm::Value *NumElements;
1456 llvm::Value *NumElements,
1459 : Ptr(Ptr), OperatorDelete(OperatorDelete), NumElements(NumElements),
1487 Size = CGF.Builder.CreateMul(Size, NumElements);
1512 llvm::Value *numElements = 0;
1516 numElements, allocatedPtr, cookieSize);
1524 numElements, elementType,
1529 assert(numElements && "no element count for a type with a destructor!");
1532 CGF.Builder.CreateInBoundsGEP(deletedPtr, numElements, "delete.end");