reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/CodeGen/CGExprCXX.cpp
  681     CharUnits typeSize = CGF.getContext().getTypeSizeInChars(type);
  683       = llvm::ConstantInt::get(CGF.SizeTy, typeSize.getQuantity());
  688   unsigned sizeWidth = CGF.SizeTy->getBitWidth();
  692                          CalculateCookiePadding(CGF, e).getQuantity());
  698     ConstantEmitter(CGF).tryEmitAbstract(*e->getArraySize(), e->getType());
  700     numElements = CGF.EmitScalarExpr(*e->getArraySize());
  718              = CGF.getContext().getAsConstantArrayType(type)) {
  723   CharUnits typeSize = CGF.getContext().getTypeSizeInChars(type);
  760     numElements = llvm::ConstantInt::get(CGF.SizeTy,
  773       sizeWithoutCookie = llvm::ConstantInt::get(CGF.SizeTy, allocationSize);
  781       size = llvm::Constant::getAllOnesValue(CGF.SizeTy);
  783       size = llvm::ConstantInt::get(CGF.SizeTy, allocationSize);
  813       hasOverflow = CGF.Builder.CreateICmpUGE(numElements, thresholdV);
  814       numElements = CGF.Builder.CreateTrunc(numElements, CGF.SizeTy);
  814       numElements = CGF.Builder.CreateTrunc(numElements, CGF.SizeTy);
  819         numElements = CGF.Builder.CreateSExt(numElements, CGF.SizeTy);
  819         numElements = CGF.Builder.CreateSExt(numElements, CGF.SizeTy);
  827         hasOverflow = CGF.Builder.CreateICmpSLT(numElements,
  828                               llvm::ConstantInt::get(CGF.SizeTy, minElements));
  832       numElements = CGF.Builder.CreateZExt(numElements, CGF.SizeTy);
  832       numElements = CGF.Builder.CreateZExt(numElements, CGF.SizeTy);
  835     assert(numElements->getType() == CGF.SizeTy);
  840         hasOverflow = CGF.Builder.CreateICmpULT(numElements,
  841                               llvm::ConstantInt::get(CGF.SizeTy, minElements));
  846         hasOverflow = CGF.Builder.CreateOr(hasOverflow,
  847                           CGF.Builder.CreateICmpULT(numElements,
  848                               llvm::ConstantInt::get(CGF.SizeTy, minElements)));
  863         = CGF.CGM.getIntrinsic(llvm::Intrinsic::umul_with_overflow, CGF.SizeTy);
  863         = CGF.CGM.getIntrinsic(llvm::Intrinsic::umul_with_overflow, CGF.SizeTy);
  866         llvm::ConstantInt::get(CGF.SizeTy, typeSizeMultiplier);
  868           CGF.Builder.CreateCall(umul_with_overflow, {size, tsmV});
  870       llvm::Value *overflowed = CGF.Builder.CreateExtractValue(result, 1);
  872         hasOverflow = CGF.Builder.CreateOr(hasOverflow, overflowed);
  876       size = CGF.Builder.CreateExtractValue(result, 0);
  889             llvm::ConstantInt::get(CGF.SizeTy, arraySizeMultiplier);
  890           numElements = CGF.Builder.CreateMul(numElements, asmV);
  903         = CGF.CGM.getIntrinsic(llvm::Intrinsic::uadd_with_overflow, CGF.SizeTy);
  903         = CGF.CGM.getIntrinsic(llvm::Intrinsic::uadd_with_overflow, CGF.SizeTy);
  905       llvm::Value *cookieSizeV = llvm::ConstantInt::get(CGF.SizeTy, cookieSize);
  907           CGF.Builder.CreateCall(uadd_with_overflow, {size, cookieSizeV});
  909       llvm::Value *overflowed = CGF.Builder.CreateExtractValue(result, 1);
  911         hasOverflow = CGF.Builder.CreateOr(hasOverflow, overflowed);
  915       size = CGF.Builder.CreateExtractValue(result, 0);
  922       size = CGF.Builder.CreateSelect(hasOverflow,
  923                                  llvm::Constant::getAllOnesValue(CGF.SizeTy),