[cfe-commits] r71193 - /cfe/trunk/lib/Analysis/CFRefCount.cpp
Ted Kremenek
kremenek at apple.com
Thu May 7 16:40:42 PDT 2009
Author: kremenek
Date: Thu May 7 18:40:42 2009
New Revision: 71193
URL: http://llvm.org/viewvc/llvm-project?rev=71193&view=rev
Log:
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/trunk/lib/Analysis/CFRefCount.cpp
Modified: cfe/trunk/lib/Analysis/CFRefCount.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/CFRefCount.cpp?rev=71193&r1=71192&r2=71193&view=diff
==============================================================================
--- cfe/trunk/lib/Analysis/CFRefCount.cpp (original)
+++ cfe/trunk/lib/Analysis/CFRefCount.cpp Thu May 7 18:40:42 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