Commits

Michael Gottesman committed 0688dbf607f
[rcid] Teach RCIdentityAnalaysis::getRCUses() how to ignore certain uses that are inert from its perspective. This includes: 1. Extract instructions which extracts a trivial part of an aggregate that has one RCIdentity. 2. Instructions which take a pointer out of ARC's control by converting it to a trivial type. This is safe to do since we can assume that the object that is convered is alive when the conversion happens. So assuming that we can conservatively find all RC users, we will have at least one RC user that post dominates the use (since otherwise we would be touching a dangling pointer). We leave it to the user of the pass to determine what is safe to do with this information. Potentially in the future it might make sense to return this information as well so that a user can use that information directly. rdar://20305817 Swift SVN r26583