Fix problem with dangling referrers

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4595 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2002-11-07 05:00:35 +00:00
parent f17b39ab2a
commit e83cb5316b
2 changed files with 8 additions and 2 deletions

View File

@ -158,6 +158,9 @@ FunctionModRefInfo::computeModRef(const CallInst& callInst)
if (csgNodes[i]->isRead())
callModRefInfo->setNodeIsRef(getNodeId(origNodes[i]));
}
// Drop nodemap before we delete the graph...
NodeMap.clear();
delete csgp;
}
@ -194,7 +197,6 @@ void FunctionModRefInfo::dump() const
// class IPModRef: An interprocedural pass that computes IP Mod/Ref info.
//----------------------------------------------------------------------------
// Free the FunctionModRefInfo objects cached in funcToModRefInfoMap.
//
void IPModRef::releaseMemory()
@ -215,6 +217,7 @@ void IPModRef::releaseMemory()
bool IPModRef::run(Module &theModule)
{
M = &theModule;
for (Module::const_iterator FI = M->begin(), FE = M->end(); FI != FE; ++FI)
if (! FI->isExternal())
getFuncInfo(*FI, /*computeIfMissing*/ true);

View File

@ -158,6 +158,9 @@ FunctionModRefInfo::computeModRef(const CallInst& callInst)
if (csgNodes[i]->isRead())
callModRefInfo->setNodeIsRef(getNodeId(origNodes[i]));
}
// Drop nodemap before we delete the graph...
NodeMap.clear();
delete csgp;
}
@ -194,7 +197,6 @@ void FunctionModRefInfo::dump() const
// class IPModRef: An interprocedural pass that computes IP Mod/Ref info.
//----------------------------------------------------------------------------
// Free the FunctionModRefInfo objects cached in funcToModRefInfoMap.
//
void IPModRef::releaseMemory()
@ -215,6 +217,7 @@ void IPModRef::releaseMemory()
bool IPModRef::run(Module &theModule)
{
M = &theModule;
for (Module::const_iterator FI = M->begin(), FE = M->end(); FI != FE; ++FI)
if (! FI->isExternal())
getFuncInfo(*FI, /*computeIfMissing*/ true);