Home | History | Annotate | Download | only in CodeGen

Lines Matching defs:numElements

694                                         llvm::Value *&numElements,
713 // We multiply the size of all dimensions for NumElements.
714 // e.g for 'int[2][3]', ElemType is 'int' and NumElements is 6.
715 numElements =
717 if (!numElements)
718 numElements = CGF.EmitScalarExpr(*e->getArraySize());
719 assert(isa<llvm::IntegerType>(numElements->getType()));
730 = cast<llvm::IntegerType>(numElements->getType());
751 dyn_cast<llvm::ConstantInt>(numElements)) {
760 // We want to do all this arithmetic in size_t. If numElements is
775 // Scale numElements by that. This might overflow, but we don't
778 numElements = llvm::ConstantInt::get(CGF.SizeTy,
807 // 1) if isSigned, we need to check whether numElements is negative;
809 // numElements is larger than something representable in size_t;
810 // 3) if minElements > 0, we need to check whether numElements is smaller
813 // sizeWithoutCookie := numElements * typeSizeMultiplier
831 hasOverflow = CGF.Builder.CreateICmpUGE(numElements, thresholdV);
832 numElements = CGF.Builder.CreateTrunc(numElements, CGF.SizeTy);
837 numElements = CGF.Builder.CreateSExt(numElements, CGF.SizeTy);
845 hasOverflow = CGF.Builder.CreateICmpSLT(numElements,
850 numElements = CGF.Builder.CreateZExt(numElements, CGF.SizeTy);
853 assert(numElements->getType() == CGF.SizeTy);
858 hasOverflow = CGF.Builder.CreateICmpULT(numElements,
865 CGF.Builder.CreateICmpULT(numElements,
870 size = numElements;
875 // This step also causes numElements to be scaled up by the
896 // Also scale up numElements by the array size multiplier.
902 numElements = size;
908 numElements = CGF.Builder.CreateMul(numElements, asmV);
912 // numElements doesn't need to be scaled.
983 Address BeginPtr, llvm::Value *NumElements,
1061 llvm::ConstantInt *ConstNum = dyn_cast<llvm::ConstantInt>(NumElements);
1140 llvm::ConstantInt *ConstNum = dyn_cast<llvm::ConstantInt>(NumElements);
1173 NumElements = Builder.CreateSub(
1174 NumElements,
1175 llvm::ConstantInt::get(NumElements->getType(), InitListElements));
1176 EmitCXXAggrConstructorCall(Ctor, NumElements, CurPtr, CCE,
1209 unsigned NumElements = 0;
1211 NumElements = CXXRD->getNumBases();
1214 ++NumElements;
1216 if (ILE->getNumInits() == NumElements)
1219 --NumElements;
1220 if (ILE->getNumInits() == NumElements && TryMemsetInitialization())
1234 NumElements, "array.end");
1293 Address NewPtr, llvm::Value *NumElements,
1297 CGF.EmitNewArrayInitializer(E, ElementType, ElementTy, NewPtr, NumElements,
1573 llvm::Value *numElements = nullptr;
1576 EmitCXXNewAllocSize(*this, E, minElements, numElements,
1713 numElements,
1739 SkippedChecks, numElements);
1741 EmitNewInitializer(*this, E, allocType, elementTy, result, numElements,
1779 llvm::Value *NumElements,
1781 assert((!NumElements && CookieSize.isZero()) ||
1814 if (NumElements)
1815 Size = Builder.CreateMul(Size, NumElements);
1994 llvm::Value *NumElements;
2000 llvm::Value *NumElements,
2003 : Ptr(Ptr), OperatorDelete(OperatorDelete), NumElements(NumElements),
2007 CGF.EmitDeleteCall(OperatorDelete, Ptr, ElementType, NumElements,
2018 numElements = nullptr;
2022 numElements, allocatedPtr, cookieSize);
2030 numElements, elementType,
2035 assert(numElements && "no element count for a type with a destructor!");
2043 deletedPtr.getElementType(), arrayBegin, numElements, "delete.end");