[objc-arc-contract] We can not move retains over instructions which can not conservat...
authorMichael Gottesman <mgottesman@apple.com>
Fri, 20 Feb 2015 00:02:49 +0000 (00:02 +0000)
committerMichael Gottesman <mgottesman@apple.com>
Fri, 20 Feb 2015 00:02:49 +0000 (00:02 +0000)
commit391935a0172f3e1e43ad64043dcba77353b8ee14
tree965574bd78970c498ad7a9305c4e108543c72e15
parent24ee447d0fcd12c1915919e835b26fbdfde74a9f
[objc-arc-contract] We can not move retains over instructions which can not conservatively be proven to not decrement the retain's RCIdentity.

I also cleaned up the code to make it more understandable for mere mortals.

<rdar://problem/19853758>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229937 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/ObjCARC/DependencyAnalysis.h
lib/Transforms/ObjCARC/ObjCARCContract.cpp
test/Transforms/ObjCARC/contract-storestrong.ll