[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)
commit0fc2accb587b2748fac55663f077babdae68861f
tree0918dd33443b8aab619c18d4d7a27bd66d3f4883
parent5ab64de62bbea1a02ae611a50ec443cbccd72e7b
[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>

llvm-svn: 229937
llvm/lib/Transforms/ObjCARC/DependencyAnalysis.h
llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp
llvm/test/Transforms/ObjCARC/contract-storestrong.ll