Lines Matching refs:Memcpy
517 static bool canOverlap(MemTransferBase<T> *Memcpy, ScalarEvolution *SE) { in canOverlap() argument
519 auto *SrcSCEV = SE->getSCEV(Memcpy->getRawSource()); in canOverlap()
520 auto *DestSCEV = SE->getSCEV(Memcpy->getRawDest()); in canOverlap()
521 if (SE->isKnownPredicateAt(CmpInst::ICMP_NE, SrcSCEV, DestSCEV, Memcpy)) in canOverlap()
527 void llvm::expandMemCpyAsLoop(MemCpyInst *Memcpy, in expandMemCpyAsLoop() argument
530 bool CanOverlap = canOverlap(Memcpy, SE); in expandMemCpyAsLoop()
531 if (ConstantInt *CI = dyn_cast<ConstantInt>(Memcpy->getLength())) { in expandMemCpyAsLoop()
533 /* InsertBefore */ Memcpy, in expandMemCpyAsLoop()
534 /* SrcAddr */ Memcpy->getRawSource(), in expandMemCpyAsLoop()
535 /* DstAddr */ Memcpy->getRawDest(), in expandMemCpyAsLoop()
537 /* SrcAlign */ Memcpy->getSourceAlign().valueOrOne(), in expandMemCpyAsLoop()
538 /* DestAlign */ Memcpy->getDestAlign().valueOrOne(), in expandMemCpyAsLoop()
539 /* SrcIsVolatile */ Memcpy->isVolatile(), in expandMemCpyAsLoop()
540 /* DstIsVolatile */ Memcpy->isVolatile(), in expandMemCpyAsLoop()
545 /* InsertBefore */ Memcpy, in expandMemCpyAsLoop()
546 /* SrcAddr */ Memcpy->getRawSource(), in expandMemCpyAsLoop()
547 /* DstAddr */ Memcpy->getRawDest(), in expandMemCpyAsLoop()
548 /* CopyLen */ Memcpy->getLength(), in expandMemCpyAsLoop()
549 /* SrcAlign */ Memcpy->getSourceAlign().valueOrOne(), in expandMemCpyAsLoop()
550 /* DestAlign */ Memcpy->getDestAlign().valueOrOne(), in expandMemCpyAsLoop()
551 /* SrcIsVolatile */ Memcpy->isVolatile(), in expandMemCpyAsLoop()
552 /* DstIsVolatile */ Memcpy->isVolatile(), in expandMemCpyAsLoop()