Lines Matching refs:Memcpy

475 static bool canOverlap(MemTransferBase<T> *Memcpy, ScalarEvolution *SE) {  in canOverlap()  argument
477 auto *SrcSCEV = SE->getSCEV(Memcpy->getRawSource()); in canOverlap()
478 auto *DestSCEV = SE->getSCEV(Memcpy->getRawDest()); in canOverlap()
479 if (SE->isKnownPredicateAt(CmpInst::ICMP_NE, SrcSCEV, DestSCEV, Memcpy)) in canOverlap()
485 void llvm::expandMemCpyAsLoop(MemCpyInst *Memcpy, in expandMemCpyAsLoop() argument
488 bool CanOverlap = canOverlap(Memcpy, SE); in expandMemCpyAsLoop()
489 if (ConstantInt *CI = dyn_cast<ConstantInt>(Memcpy->getLength())) { in expandMemCpyAsLoop()
491 /* InsertBefore */ Memcpy, in expandMemCpyAsLoop()
492 /* SrcAddr */ Memcpy->getRawSource(), in expandMemCpyAsLoop()
493 /* DstAddr */ Memcpy->getRawDest(), in expandMemCpyAsLoop()
495 /* SrcAlign */ Memcpy->getSourceAlign().valueOrOne(), in expandMemCpyAsLoop()
496 /* DestAlign */ Memcpy->getDestAlign().valueOrOne(), in expandMemCpyAsLoop()
497 /* SrcIsVolatile */ Memcpy->isVolatile(), in expandMemCpyAsLoop()
498 /* DstIsVolatile */ Memcpy->isVolatile(), in expandMemCpyAsLoop()
503 /* InsertBefore */ Memcpy, in expandMemCpyAsLoop()
504 /* SrcAddr */ Memcpy->getRawSource(), in expandMemCpyAsLoop()
505 /* DstAddr */ Memcpy->getRawDest(), in expandMemCpyAsLoop()
506 /* CopyLen */ Memcpy->getLength(), in expandMemCpyAsLoop()
507 /* SrcAlign */ Memcpy->getSourceAlign().valueOrOne(), in expandMemCpyAsLoop()
508 /* DestAlign */ Memcpy->getDestAlign().valueOrOne(), in expandMemCpyAsLoop()
509 /* SrcIsVolatile */ Memcpy->isVolatile(), in expandMemCpyAsLoop()
510 /* DstIsVolatile */ Memcpy->isVolatile(), in expandMemCpyAsLoop()