Lines Matching defs:MemCpy
1256 /// We've found that the (upward scanning) memory dependence of \p MemCpy is
1258 /// weren't copied over by \p MemCpy.
1275 bool MemCpyOptPass::processMemSetMemCpyDependence(MemCpyInst *MemCpy,
1279 if (!BAA.isMustAlias(MemSet->getDest(), MemCpy->getDest()))
1286 Value *SrcSize = MemCpy->getLength();
1288 SimplifyQuery(MemCpy->getDataLayout(), DT, AC, MemCpy)))
1293 if (isModSet(BAA.getModRefInfo(MemCpy, MemoryLocation::getForSource(MemCpy))))
1301 MSSA->getMemoryAccess(MemCpy)))
1305 Value *Dest = MemCpy->getRawDest();
1308 if (mayBeVisibleThroughUnwinding(Dest, MemSet, MemCpy))
1323 MemCpy->getDestAlign().valueOrOne());
1328 IRBuilder<> Builder(MemCpy);
1335 assert(MemSet->getParent() == MemCpy->getParent() &&
1356 assert(isa<MemoryDef>(MSSA->getMemoryAccess(MemCpy)) &&
1357 "MemCpy must be a MemoryDef");
1360 auto *LastDef = cast<MemoryDef>(MSSA->getMemoryAccess(MemCpy));
1417 bool MemCpyOptPass::performMemCpyToMemSetOptzn(MemCpyInst *MemCpy,
1422 if (!BAA.isMustAlias(MemSet->getRawDest(), MemCpy->getRawSource()))
1426 Value *CopySize = MemCpy->getLength();
1446 MemoryLocation MemCpyLoc = MemoryLocation::getForSource(MemCpy);
1452 if (hasUndefContents(MSSA, BAA, MemCpy->getSource(), MD, CopySize))
1461 IRBuilder<> Builder(MemCpy);
1463 Builder.CreateMemSet(MemCpy->getRawDest(), MemSet->getOperand(1),
1464 CopySize, MemCpy->getDestAlign());
1465 auto *LastDef = cast<MemoryDef>(MSSA->getMemoryAccess(MemCpy));