Implement proper ObjC ARC objc_retainBlock "escape" analysis, so that
authorDan Gohman <gohman@apple.com>
Fri, 13 Jan 2012 00:39:07 +0000 (00:39 +0000)
committerDan Gohman <gohman@apple.com>
Fri, 13 Jan 2012 00:39:07 +0000 (00:39 +0000)
commit79522dc569d3fb51b4a12cdacf24b82e5d5992d2
tree155572c5b2633ce80ea31001c04c9aa3eae10e30
parentddfda5cd1648c4cae12e6f62c3d86a36be3aefe4
Implement proper ObjC ARC objc_retainBlock "escape" analysis, so that
the optimizer doesn't eliminate objc_retainBlock calls which are needed
for their side effect of copying blocks onto the heap.
This implements rdar://10361249.

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