]> granicus.if.org Git - llvm/commit
Merging r195162:
authorBill Wendling <isanbard@gmail.com>
Wed, 20 Nov 2013 06:28:12 +0000 (06:28 +0000)
committerBill Wendling <isanbard@gmail.com>
Wed, 20 Nov 2013 06:28:12 +0000 (06:28 +0000)
commitdd9c5e98c87a33eae1fe0ec9e03bc41f6f3a731d
tree848344455baa0d30359ff05aa8c181466261eac0
parent8e5b91849a39173b1ce1c15e0e279b94562204b5
Merging r195162:
------------------------------------------------------------------------
r195162 | arnolds | 2013-11-19 14:20:20 -0800 (Tue, 19 Nov 2013) | 12 lines

SLPVectorizer: Fix stale for Value pointer array

We are slicing an array of Value pointers and process those slices in a loop.
The problem is that we might invalidate a later slice by vectorizing a former
slice.

Use a WeakVH to track the pointer. If the pointer is deleted or RAUW'ed we can
tell.

The test case will only fail when running with libgmalloc.

radar://15498655
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195222 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Vectorize/SLPVectorizer.cpp
test/Transforms/LoopVectorize/X86/rauw-bug.ll [new file with mode: 0644]