1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 20:43:44 +02:00
llvm-mirror/lib
Michael Gottesman 0c2ffd01ef [objc-arc] Added ImpreciseAutoreleaseSet to track autorelease calls that were once autoreleaseRV instructions.
Due to the semantics of ARC, we must be extremely conservative with autorelease
calls inserted by the frontend since ARC gaurantees that said object will be in
the autorelease pool after that point, an optimization invariant that the
optimizer must respect.

On the other hand, we are allowed significantly more flexibility with
autoreleaseRV instructions.

Often times though this flexibility is disrupted by early transformations which
transform objc_autoreleaseRV => objc_autorelease if said instruction is no
longer being used as part of an RV pair (generally due to inlining). Since we
can not tell the difference in between an autorelease put into place by the
frontend and one created through said ``strength reduction'' we can not perform
these optimizations.

The addition of this set gets around said issues by allowing us to differentiate
in between said two cases.

rdar://problem/13697741.

llvm-svn: 180222
2013-04-24 22:18:18 +00:00
..
Analysis Struct-path aware TBAA: update getMostGenericTBAA 2013-04-22 23:00:44 +00:00
Archive Fix auto_ptr is deprecated warnings 2013-02-26 21:20:35 +00:00
AsmParser Fix for PR 14965: Better error message for GEP with partially defined contents 2013-04-22 17:03:42 +00:00
Bitcode Move C++ code out of the C headers and into either C++ headers 2013-04-22 22:47:22 +00:00
CodeGen MI Sched: eliminate local vreg copies. 2013-04-24 15:54:43 +00:00
DebugInfo Use zlib to uncompress debug sections in DWARF parser. 2013-04-23 10:17:34 +00:00
ExecutionEngine Fix dependency layering issues caused by r180112. 2013-04-23 22:53:53 +00:00
IR Add some constraints to use of 'returned': 2013-04-23 16:31:56 +00:00
IRReader Measure time that IR parsing took as part of the -time-passes measurement. 2013-04-03 15:33:45 +00:00
Linker Move C++ code out of the C headers and into either C++ headers 2013-04-22 22:47:22 +00:00
MC Align the __LD,__compact_unwind section. 2013-04-24 03:11:14 +00:00
Object Use pointers to iterate over symbols. 2013-04-24 19:47:55 +00:00
Option
Support Testing for _XCR_XFEATURE_ENABLED_MASK instead of a specific MSVC version because some MSVC 2010 SP1 installations do not have the _xgetbv intrinsic. Patch thanks to Serge Pavlov! 2013-04-23 17:38:44 +00:00
TableGen Allow TableGen DAG arguments to be just a name. 2013-03-24 19:36:51 +00:00
Target Hexagon: Use multiclass for combine and STri[bhwd]_shl_V4 instructions. 2013-04-23 21:17:40 +00:00
Transforms [objc-arc] Added ImpreciseAutoreleaseSet to track autorelease calls that were once autoreleaseRV instructions. 2013-04-24 22:18:18 +00:00
CMakeLists.txt Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00
LLVMBuild.txt Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00
Makefile Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00