forked from OSchip/llvm-project
fb99a493be
Summary: This change is part of step five in the series of changes to remove alignment argument from memcpy/memmove/memset in favour of alignment attributes. In particular, this changes the LoopIdiom pass to cease using the old IRBuilder CreateMemCpy single-alignment APIs in favour of the new API that allows setting source and destination alignments independently. This allows us to be slightly more aggressive in setting the alignment of memcpy calls that loop idiom creates. Steps: Step 1) Remove alignment parameter and create alignment parameter attributes for memcpy/memmove/memset. ( rL322965, rC322964, rL322963 ) Step 2) Expand the IRBuilder API to allow creation of memcpy/memmove with differing source and dest alignments. ( rL323597 ) Step 3) Update Clang to use the new IRBuilder API. ( rC323617 ) Step 4) Update Polly to use the new IRBuilder API. ( rL323618 ) Step 5) Update LLVM passes that create memcpy/memmove calls to use the new IRBuilder API, and those that use use MemIntrinsicInst::[get|set]Alignment() to use [get|set]DestAlignment() and [get|set]SourceAlignment() instead. ( rL323886, rL323891, rL324148, rL324273, rL324278, rL324384, rL324395, rL324402 ) Step 6) Remove the single-alignment IRBuilder API for memcpy/memmove, and the MemIntrinsicInst::[get|set]Alignment() methods. Reference http://lists.llvm.org/pipermail/llvm-dev/2015-August/089384.html http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20151109/312083.html llvm-svn: 324626 |
||
---|---|---|
.. | ||
AMDGPU | ||
ARM | ||
X86 | ||
basic-address-space.ll | ||
basic.ll | ||
crash.ll | ||
ctpop-multiple-users-crash.ll | ||
debug-line.ll | ||
int_sideeffect.ll | ||
lir-heurs-multi-block-loop.ll | ||
memset_noidiom.ll | ||
non-canonical-loop.ll | ||
non-integral-pointers.ll | ||
nontemporal_store.ll | ||
pr28196.ll | ||
pr33114.ll | ||
scev-invalidation.ll | ||
struct.ll | ||
struct_pattern.ll | ||
unordered-atomic-memcpy-noarch.ll | ||
unroll.ll | ||
unsafe.ll | ||
unwind.ll |