retain checker: Don't bother using a FoldingSet to unique summaries.

We never compare summaries by their pointers, and we create only a
handful of them when analyzing a given function.

llvm-svn: 70824
This commit is contained in:
Ted Kremenek 2009-05-04 04:30:18 +00:00
parent 33955dd28f
commit 1bff64e309
1 changed files with 3 additions and 24 deletions

View File

@ -530,9 +530,6 @@ class VISIBILITY_HIDDEN RetainSummaryManager {
// Typedefs.
//==-----------------------------------------------------------------==//
typedef llvm::FoldingSet<RetainSummary>
SummarySetTy;
typedef llvm::DenseMap<FunctionDecl*, RetainSummary*>
FuncSummariesTy;
@ -551,10 +548,7 @@ class VISIBILITY_HIDDEN RetainSummaryManager {
/// GCEnabled - Records whether or not the analyzed code runs in GC mode.
const bool GCEnabled;
/// SummarySet - A FoldingSet of uniqued summaries.
SummarySetTy SummarySet;
/// FuncSummaries - A map from FunctionDecls to summaries.
FuncSummariesTy FuncSummaries;
@ -782,25 +776,10 @@ RetainSummary*
RetainSummaryManager::getPersistentSummary(ArgEffects AE, RetEffect RetEff,
ArgEffect ReceiverEff,
ArgEffect DefaultEff,
bool isEndPath) {
// Generate a profile for the summary.
llvm::FoldingSetNodeID profile;
RetainSummary::Profile(profile, AE, RetEff, DefaultEff, ReceiverEff,
isEndPath);
// Look up the uniqued summary, or create one if it doesn't exist.
void* InsertPos;
RetainSummary* Summ = SummarySet.FindNodeOrInsertPos(profile, InsertPos);
if (Summ)
return Summ;
bool isEndPath) {
// Create the summary and return it.
Summ = (RetainSummary*) BPAlloc.Allocate<RetainSummary>();
RetainSummary *Summ = (RetainSummary*) BPAlloc.Allocate<RetainSummary>();
new (Summ) RetainSummary(AE, RetEff, DefaultEff, ReceiverEff, isEndPath);
SummarySet.InsertNode(Summ, InsertPos);
return Summ;
}