Add ifunc support to ModuleSymbolTable.

Do that by creating a global_values, which is similar to
global_objects, but also iterates over aliases and ifuncs.

llvm-svn: 299018
This commit is contained in:
Rafael Espindola
2017-03-29 19:26:26 +00:00
parent c8f0aeccda
commit b26bc7fddc
3 changed files with 30 additions and 5 deletions

View File

@@ -43,12 +43,8 @@ void ModuleSymbolTable::addModule(Module *M) {
else
FirstMod = M;
for (Function &F : *M)
SymTab.push_back(&F);
for (GlobalVariable &GV : M->globals())
for (GlobalValue &GV : M->global_values())
SymTab.push_back(&GV);
for (GlobalAlias &GA : M->aliases())
SymTab.push_back(&GA);
CollectAsmSymbols(*M, [this](StringRef Name, BasicSymbolRef::Flags Flags) {
SymTab.push_back(new (AsmSymbols.Allocate()) AsmSymbol(Name, Flags));