Extend memcpy expansion in Transform/Utils to handle wider operand types.
authorSean Fertile <sfertile@ca.ibm.com>
Fri, 7 Jul 2017 02:00:06 +0000 (02:00 +0000)
committerSean Fertile <sfertile@ca.ibm.com>
Fri, 7 Jul 2017 02:00:06 +0000 (02:00 +0000)
commit9cd1cdf814fe6cedf50c03ada7c834df0ba79040
tree9140b5f630d6685d7be9279ab893e44726faf6d4
parent7d3eeaaa960d3824983ae664bfa5ad75c5bd1f57
Extend memcpy expansion in Transform/Utils to handle wider operand types.

Adds loop expansions for known-size and unknown-sized memcpy calls, allowing the
target to provide the operand types through TTI callbacks. The default values
for the TTI callbacks use int8 operand types and matches the existing behaviour
if they aren't overridden by the target.

Differential revision: https://reviews.llvm.org/D32536

llvm-svn: 307346
llvm/include/llvm/Analysis/TargetTransformInfo.h
llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
llvm/include/llvm/Transforms/Utils/LowerMemIntrinsics.h
llvm/lib/Analysis/TargetTransformInfo.cpp
llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp
llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.cpp
llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp
llvm/test/CodeGen/AMDGPU/lower-mem-intrinsics.ll
llvm/test/CodeGen/NVPTX/lower-aggr-copies.ll