[clang] [CIR] Lower __builtin_memcpy/mempcpy to cir.libc.memcpy (PR #225845)
Mariya Podchishchaeva via cfe-commits
cfe-commits at lists.llvm.org
Thu Sep 24 04:26:03 PDT 2026
================
@@ -2376,7 +2376,24 @@ RValue CIRGenFunction::emitBuiltinExpr(const GlobalDecl &gd, unsigned builtinID,
case Builtin::BImemcpy:
case Builtin::BI__builtin_memcpy:
case Builtin::BImempcpy:
- case Builtin::BI__builtin_mempcpy:
+ case Builtin::BI__builtin_mempcpy: {
+ mlir::Location loc = getLoc(e->getSourceRange());
+ Address dest = emitPointerWithAlignment(e->getArg(0));
+ Address src = emitPointerWithAlignment(e->getArg(1));
+ mlir::Value sizeVal = emitScalarExpr(e->getArg(2));
+ Address destCast = dest.withElementType(builder, cgm.voidTy);
+ Address srcCast = src.withElementType(builder, cgm.voidTy);
+ assert(!cir::MissingFeatures::sanitizers());
+ builder.createMemCpy(loc, destCast, srcCast, sizeVal);
+ if (builtinID == Builtin::BImempcpy ||
----------------
Fznamznon wrote:
good catch, thanks, fixed
https://github.com/llvm/llvm-project/pull/225845
More information about the cfe-commits
mailing list