Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:NumElements

467                                         llvm::Value *&numElements,
486 // We multiply the size of all dimensions for NumElements.
487 // e.g for 'int[2][3]', ElemType is 'int' and NumElements is 6.
488 numElements = CGF.EmitScalarExpr(e->getArraySize());
489 assert(isa<llvm::IntegerType>(numElements->getType()));
500 = cast<llvm::IntegerType>(numElements->getType());
521 dyn_cast<llvm::ConstantInt>(numElements)) {
530 // We want to do all this arithmetic in size_t. If numElements is
545 // Scale numElements by that. This might overflow, but we don't
548 numElements = llvm::ConstantInt::get(CGF.SizeTy,
577 // 1) if isSigned, we need to check whether numElements is negative;
579 // numElements is larger than something representable in size_t;
580 // 3) if minElements > 0, we need to check whether numElements is smaller
583 // sizeWithoutCookie := numElements * typeSizeMultiplier
601 hasOverflow = CGF.Builder.CreateICmpUGE(numElements, thresholdV);
602 numElements = CGF.Builder.CreateTrunc(numElements, CGF.SizeTy);
607 numElements = CGF.Builder.CreateSExt(numElements, CGF.SizeTy);
615 hasOverflow = CGF.Builder.CreateICmpSLT(numElements,
620 numElements = CGF.Builder.CreateZExt(numElements, CGF.SizeTy);
623 assert(numElements->getType() == CGF.SizeTy);
628 hasOverflow = CGF.Builder.CreateICmpULT(numElements,
635 CGF.Builder.CreateICmpULT(numElements,
640 size = numElements;
645 // This step also causes numElements to be scaled up by the
666 // Also scale up numElements by the array size multiplier.
672 numElements = size;
678 numElements = CGF.Builder.CreateMul(numElements, asmV);
682 // numElements doesn't need to be scaled.
755 llvm::Value *NumElements,
863 llvm::ConstantInt *ConstNum = dyn_cast<llvm::ConstantInt>(NumElements);
895 NumElements = Builder.CreateSub(
896 NumElements,
897 llvm::ConstantInt::get(NumElements->getType(), InitListElements));
898 EmitCXXAggrConstructorCall(Ctor, NumElements, CurPtr,
933 Builder.CreateInBoundsGEP(BeginPtr, NumElements, "array.end");
988 llvm::Value *NumElements,
991 CGF.EmitNewArrayInitializer(E, ElementType, NewPtr, NumElements,
1224 llvm::Value *numElements = nullptr;
1227 EmitCXXNewAllocSize(*this, E, minElements, numElements,
1297 numElements,
1305 EmitNewInitializer(*this, E, allocType, result, numElements,
1474 llvm::Value *NumElements;
1480 llvm::Value *NumElements,
1483 : Ptr(Ptr), OperatorDelete(OperatorDelete), NumElements(NumElements),
1511 Size = CGF.Builder.CreateMul(Size, NumElements);
1534 llvm::Value *numElements = nullptr;
1538 numElements, allocatedPtr, cookieSize);
1546 numElements, elementType,
1551 assert(numElements && "no element count for a type with a destructor!");
1554 CGF.Builder.CreateInBoundsGEP(deletedPtr, numElements, "delete.end");