Don't let arbitrary calls disrupt nested retain+release pairs if
authorDan Gohman <gohman@apple.com>
Fri, 12 Aug 2011 00:26:31 +0000 (00:26 +0000)
committerDan Gohman <gohman@apple.com>
Fri, 12 Aug 2011 00:26:31 +0000 (00:26 +0000)
commita7f7db2ebd4d3ca5c4e50cb2f9047dd85a34c6c8
treec07154f310001973c81952f15fb53dfdb9dc3b42
parentd8e48c48215c8aaa87b19245efac8a490c693d17
Don't let arbitrary calls disrupt nested retain+release pairs if
the retains and releases all use the same SSA pointer value.

Also, don't let CFG hazards disrupt nested retain+release pair
optimizations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137399 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Scalar/ObjCARC.cpp
test/Transforms/ObjCARC/cfg-hazards.ll
test/Transforms/ObjCARC/nested.ll [new file with mode: 0644]