Lines Matching full:memcpy
9 // This pass implements IR lowering for the llvm.memcpy, llvm.memmove,
201 // TODO: Should this consider the address space of the memcpy? in canEmitLibcall()
206 // TODO: Handle atomic memcpy and memcpy.inline
216 case Intrinsic::memcpy: { in expandMemIntrinsicUses()
217 auto *Memcpy = cast<MemCpyInst>(Inst); in expandMemIntrinsicUses() local
218 Function *ParentFunc = Memcpy->getFunction(); in expandMemIntrinsicUses()
220 if (shouldExpandMemIntrinsicWithSize(Memcpy->getLength(), TTI)) { in expandMemIntrinsicUses()
222 canEmitLibcall(TM, ParentFunc, RTLIB::MEMCPY)) in expandMemIntrinsicUses()
226 expandMemCpyAsLoop(Memcpy, TTI); in expandMemIntrinsicUses()
228 Memcpy->eraseFromParent(); in expandMemIntrinsicUses()
234 // Only expand llvm.memcpy.inline with non-constant length in this in expandMemIntrinsicUses()
236 // length memcpy intrinsics undisturbed. in expandMemIntrinsicUses()
237 auto *Memcpy = cast<MemCpyInlineInst>(Inst); in expandMemIntrinsicUses() local
238 if (isa<ConstantInt>(Memcpy->getLength())) in expandMemIntrinsicUses()
241 Function *ParentFunc = Memcpy->getFunction(); in expandMemIntrinsicUses()
243 expandMemCpyAsLoop(Memcpy, TTI); in expandMemIntrinsicUses()
245 Memcpy->eraseFromParent(); in expandMemIntrinsicUses()
308 case Intrinsic::memcpy: in lowerIntrinsics()