[cfe-commits] r71204 - /cfe/branches/Apple/Dib/lib/Analysis/CFRefCount.cpp

Mike Stump mrs at apple.com
Thu May 7 18:45:50 PDT 2009


Author: mrs
Date: Thu May  7 20:45:50 2009
New Revision: 71204

URL: http://llvm.org/viewvc/llvm-project?rev=71204&view=rev
Log:
Merge in 71193:

Minor code cleanup in retain/release checker in preparation for some
other changes.  Instead of repeatedly checking for GC mode when
getting the return effect, just do this computation once.

Modified:
    cfe/branches/Apple/Dib/lib/Analysis/CFRefCount.cpp

Modified: cfe/branches/Apple/Dib/lib/Analysis/CFRefCount.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/Apple/Dib/lib/Analysis/CFRefCount.cpp?rev=71204&r1=71203&r2=71204&view=diff

==============================================================================
--- cfe/branches/Apple/Dib/lib/Analysis/CFRefCount.cpp (original)
+++ cfe/branches/Apple/Dib/lib/Analysis/CFRefCount.cpp Thu May  7 20:45:50 2009
@@ -585,6 +585,10 @@
   /// ScratchArgs - A holding buffer for construct ArgEffects.
   ArgEffects ScratchArgs;
   
+  /// ObjCAllocRetE - Default return effect for methods returning Objective-C
+  ///  objects.
+  RetEffect ObjCAllocRetE;
+  
   RetainSummary DefaultSummary;
   RetainSummary* StopSummary;
   
@@ -720,6 +724,8 @@
    : Ctx(ctx),
      CFDictionaryCreateII(&ctx.Idents.get("CFDictionaryCreate")),
      GCEnabled(gcenabled), AF(BPAlloc), ScratchArgs(AF.GetEmptyMap()),
+     ObjCAllocRetE(gcenabled ? RetEffect::MakeGCNotOwned()
+                             : RetEffect::MakeOwned(RetEffect::ObjC, true)),
      DefaultSummary(AF.GetEmptyMap() /* per-argument effects (none) */,
                     RetEffect::MakeNoRet() /* return effect */,
                     DoNothing /* receiver effect */,
@@ -1134,9 +1140,7 @@
   // Determine if there is a special return effect for this method.
   if (isTrackedObjCObjectType(FD->getResultType())) {
     if (FD->getAttr<NSOwnershipReturnsAttr>()) {
-      Summ.setRetEffect(isGCEnabled()
-                        ? RetEffect::MakeGCNotOwned()
-                        : RetEffect::MakeOwned(RetEffect::ObjC, true));
+      Summ.setRetEffect(ObjCAllocRetE);
     }
     else if (FD->getAttr<CFOwnershipReturnsAttr>()) {
       Summ.setRetEffect(RetEffect::MakeOwned(RetEffect::CF, true));
@@ -1159,9 +1163,7 @@
   // Determine if there is a special return effect for this method.
   if (isTrackedObjCObjectType(MD->getResultType())) {
     if (MD->getAttr<NSOwnershipReturnsAttr>()) {
-      Summ.setRetEffect(isGCEnabled()
-                        ? RetEffect::MakeGCNotOwned()
-                        : RetEffect::MakeOwned(RetEffect::ObjC, true));
+      Summ.setRetEffect(ObjCAllocRetE);
     }
     else if (MD->getAttr<CFOwnershipReturnsAttr>()) {
       Summ.setRetEffect(RetEffect::MakeOwned(RetEffect::CF, true));
@@ -1216,9 +1218,7 @@
     //  by instance methods.
     RetEffect E =
       followsFundamentalRule(S.getIdentifierInfoForSlot(0)->getName())
-      ? (isGCEnabled() ? RetEffect::MakeGCNotOwned()
-         : RetEffect::MakeOwned(RetEffect::ObjC, true))
-      : RetEffect::MakeNotOwned(RetEffect::ObjC);
+        ? ObjCAllocRetE : RetEffect::MakeNotOwned(RetEffect::ObjC);
     
     return getPersistentSummary(E, ReceiverEff, MayEscape);    
   }
@@ -1293,14 +1293,9 @@
   return Summ;
 }
 
-void RetainSummaryManager::InitializeClassMethodSummaries() {
-  
-  assert (ScratchArgs.isEmpty());
-  
-  RetEffect E = isGCEnabled() ? RetEffect::MakeGCNotOwned()
-                              : RetEffect::MakeOwned(RetEffect::ObjC, true);  
-  
-  RetainSummary* Summ = getPersistentSummary(E);
+void RetainSummaryManager::InitializeClassMethodSummaries() {  
+  assert(ScratchArgs.isEmpty());
+  RetainSummary* Summ = getPersistentSummary(ObjCAllocRetE);
   
   // Create the summaries for "alloc", "new", and "allocWithZone:" for
   // NSObject and its derivatives.
@@ -1354,10 +1349,7 @@
   addNSObjectMethSummary(GetNullarySelector("init", Ctx), InitSumm);
   
   // The next methods are allocators.
-  RetEffect E = isGCEnabled() ? RetEffect::MakeGCNotOwned()
-                              : RetEffect::MakeOwned(RetEffect::ObjC, true);
-  
-  RetainSummary* Summ = getPersistentSummary(E);  
+  RetainSummary* Summ = getPersistentSummary(ObjCAllocRetE);  
   
   // Create the "copy" selector.  
   addNSObjectMethSummary(GetNullarySelector("copy", Ctx), Summ);  
@@ -1366,7 +1358,7 @@
   addNSObjectMethSummary(GetNullarySelector("mutableCopy", Ctx), Summ);
   
   // Create the "retain" selector.
-  E = RetEffect::MakeReceiverAlias();
+  RetEffect E = RetEffect::MakeReceiverAlias();
   Summ = getPersistentSummary(E, IncRefMsg);
   addNSObjectMethSummary(GetNullarySelector("retain", Ctx), Summ);
   





More information about the cfe-commits mailing list