llvm-6502/lib
Michael Gottesman 8915e014e0 [objc-arc] Introduce the concept of RCIdentity and rename all relevant functions to use that name. NFC.
The RCIdentity root ("Reference Count Identity Root") of a value V is a
dominating value U for which retaining or releasing U is equivalent to
retaining or releasing V. In other words, ARC operations on V are
equivalent to ARC operations on U.

This is a useful property to ascertain since we can use this in the ARC
optimizer to make it easier to match up ARC operations by always mapping
ARC operations to RCIdentityRoots instead of pointers themselves. Then
we perform pairing of retains, releases which are applied to the same
RCIdentityRoot.

In general, the two ways that we see RCIdentical values in ObjC are via:

  1. PointerCasts
  2. Forwarding Calls that return their argument verbatim.

As such in ObjC, two RCIdentical pointers must always point to the same
memory location.

Previously this concept was implicit in the code and various methods
that dealt with this concept were given functional names that did not
conform to any name in the "ARC" model. This often times resulted in
code that was hard for the non-ARC acquanted to understand resulting in
unhappiness and confusion.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229796 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-19 00:42:38 +00:00
..
Analysis Reformat. 2015-02-18 08:36:14 +00:00
AsmParser IR: Drop scope from MDTemplateParameter 2015-02-19 00:37:21 +00:00
Bitcode IR: Drop scope from MDTemplateParameter 2015-02-19 00:37:21 +00:00
CodeGen Add an IR-to-IR test for dwarf EH preparation using opt 2015-02-18 23:17:41 +00:00
DebugInfo
ExecutionEngine Don't deference the section_end() iterator. 2015-02-17 20:07:28 +00:00
Fuzzer
IR IR: Drop scope from MDTemplateParameter 2015-02-19 00:37:21 +00:00
IRReader
LineEditor
Linker Prefer SmallVector::append/insert over push_back loops. 2015-02-17 15:29:18 +00:00
LTO
MC Add r228980 back. 2015-02-17 20:48:01 +00:00
Object [Object] Support reading 64-bit MIPS ELF archives 2015-02-17 18:54:22 +00:00
Option Prefer SmallVector::append/insert over push_back loops. 2015-02-17 15:29:18 +00:00
ProfileData InstrProf: Don't combine expansion regions with code regions 2015-02-18 19:01:06 +00:00
Support Prefer SmallVector::append/insert over push_back loops. 2015-02-17 15:29:18 +00:00
TableGen
Target Avoid using a self-referential initializer and fix up uses. 2015-02-19 00:22:47 +00:00
Transforms [objc-arc] Introduce the concept of RCIdentity and rename all relevant functions to use that name. NFC. 2015-02-19 00:42:38 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile