Don't instantiate GC metadata for declarations.
llvm-svn: 54895
This commit is contained in:
parent
a337916c6c
commit
e431adbfc7
|
@ -99,7 +99,9 @@ getOrCreateCollector(const Module *M, const std::string &Name) {
|
||||||
}
|
}
|
||||||
|
|
||||||
CollectorMetadata &CollectorModuleMetadata::get(const Function &F) {
|
CollectorMetadata &CollectorModuleMetadata::get(const Function &F) {
|
||||||
|
assert(!F.isDeclaration() && "Can only get GCFunctionInfo for a definition!");
|
||||||
assert(F.hasCollector());
|
assert(F.hasCollector());
|
||||||
|
|
||||||
function_map_type::iterator I = Map.find(&F);
|
function_map_type::iterator I = Map.find(&F);
|
||||||
if (I != Map.end())
|
if (I != Map.end())
|
||||||
return *I->second;
|
return *I->second;
|
||||||
|
|
|
@ -144,7 +144,7 @@ bool LowerIntrinsics::doInitialization(Module &M) {
|
||||||
CollectorModuleMetadata *CMM = getAnalysisToUpdate<CollectorModuleMetadata>();
|
CollectorModuleMetadata *CMM = getAnalysisToUpdate<CollectorModuleMetadata>();
|
||||||
assert(CMM && "LowerIntrinsics didn't require CollectorModuleMetadata!?");
|
assert(CMM && "LowerIntrinsics didn't require CollectorModuleMetadata!?");
|
||||||
for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
|
for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
|
||||||
if (I->hasCollector())
|
if (!I->isDeclaration() && I->hasCollector())
|
||||||
CMM->get(*I); // Instantiate the Collector.
|
CMM->get(*I); // Instantiate the Collector.
|
||||||
|
|
||||||
bool MadeChange = false;
|
bool MadeChange = false;
|
||||||
|
|
Loading…
Reference in New Issue