[WebAssembly] Implement GC for imports
Differential Revision: https://reviews.llvm.org/D44313
llvm-svn: 330454
diff --git a/lld/wasm/Writer.cpp b/lld/wasm/Writer.cpp
index 4a52b52..41aa165 100644
--- a/lld/wasm/Writer.cpp
+++ b/lld/wasm/Writer.cpp
@@ -697,6 +697,8 @@
continue;
if (Sym->isWeak() && !Config->Relocatable)
continue;
+ if (!Sym->isLive())
+ continue;
DEBUG(dbgs() << "import: " << Sym->getName() << "\n");
ImportedSymbols.emplace_back(Sym);
@@ -825,13 +827,6 @@
// Mark target type as live
File->TypeMap[Reloc.Index] = registerType(Types[Reloc.Index]);
File->TypeIsUsed[Reloc.Index] = true;
- } else if (Reloc.Type == R_WEBASSEMBLY_GLOBAL_INDEX_LEB) {
- // Mark target global as live
- GlobalSymbol *Sym = File->getGlobalSymbol(Reloc.Index);
- if (auto *G = dyn_cast<DefinedGlobal>(Sym)) {
- DEBUG(dbgs() << "marking global live: " << Sym->getName() << "\n");
- G->Global->Live = true;
- }
}
}
};