forked from OSchip/llvm-project
[ThinLTO] Don't try to import alias unless aliasee can be imported
With r264503, aliases are now being added to the GlobalsToImport set even when their aliasees can't be imported due to their linkage type. While the importing worked correctly (the aliases imported as declarations) due to the logic in doImportAsDefinition, there is no point to adding them to the GlobalsToImport set. Additionally, with D18487 it was resulting in incorrectly printing a message indicating that the alias was imported. To avoid this, delay adding aliases to the GlobalsToImport set until after the linkage type of the aliasee is checked. This patch is part of D18487. llvm-svn: 264536
This commit is contained in:
parent
01bb2406a3
commit
9aae395fa8
|
@ -322,14 +322,14 @@ bool FunctionImporter::importFunctions(
|
|||
continue;
|
||||
auto GUID = GV.getGUID();
|
||||
if (ImportGUIDs.count(GUID)) {
|
||||
GV.materialize();
|
||||
GlobalsToImport.insert(&GV);
|
||||
// Alias can't point to "available_externally". However when we import
|
||||
// linkOnceODR the linkage does not change. So we import the aliasee
|
||||
// only in this case
|
||||
// linkOnceODR the linkage does not change. So we import the alias
|
||||
// and aliasee only in this case.
|
||||
const GlobalObject *GO = GV.getBaseObject();
|
||||
if (!GO->hasLinkOnceODRLinkage())
|
||||
continue;
|
||||
GV.materialize();
|
||||
GlobalsToImport.insert(&GV);
|
||||
GlobalsToImport.insert(GO);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue