[SROA] Use NewOffsetBegin in the unsplit case for memset merely for
authorChandler Carruth <chandlerc@gmail.com>
Wed, 26 Feb 2014 04:45:24 +0000 (04:45 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Wed, 26 Feb 2014 04:45:24 +0000 (04:45 +0000)
commitf28c057c421122d0d0355e3cef496ef2de7a1f7f
tree071d26d8db68e60ac6a8f36bf6213aae9c3da001
parentf11f7a49b9ea1c5be61ad5ddca3eb0d42891f422
[SROA] Use NewOffsetBegin in the unsplit case for memset merely for
consistency with memcpy rewriting, and fix a latent bug in the alignment
management for memset.

The alignment issue is that getAdjustedAllocaPtr is computing the
*relative* offset into the new alloca, but the alignment isn't being set
to the relative offset, it was using the the absolute offset which is
into the old alloca.

I don't think its possible to write a test case that actually reaches
this code where the resulting alignment would be observably different,
but the intent was clearly to use the relative offset within the new
alloca.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202229 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Scalar/SROA.cpp