[WebAssembly] Refactor order of creation for SyntheticFunction
Previously we created __wasm_call_ctors with null InputFunction, and
added the InputFunction later. Now we create the SyntheticFunction with
null body, and set the body later.
Differential Revision: https://reviews.llvm.org/D44206
llvm-svn: 327149
diff --git a/lld/wasm/SymbolTable.cpp b/lld/wasm/SymbolTable.cpp
index 6375358..a722472 100644
--- a/lld/wasm/SymbolTable.cpp
+++ b/lld/wasm/SymbolTable.cpp
@@ -119,11 +119,13 @@
}
DefinedFunction *SymbolTable::addSyntheticFunction(StringRef Name,
- const WasmSignature *Type,
- uint32_t Flags) {
+ uint32_t Flags,
+ InputFunction *Function) {
DEBUG(dbgs() << "addSyntheticFunction: " << Name << "\n");
assert(!find(Name));
- return replaceSymbol<DefinedFunction>(insert(Name).first, Name, Flags, Type);
+ SyntheticFunctions.emplace_back(Function);
+ return replaceSymbol<DefinedFunction>(insert(Name).first, Name, Flags,
+ nullptr, Function);
}
DefinedData *SymbolTable::addSyntheticDataSymbol(StringRef Name,
@@ -137,6 +139,7 @@
InputGlobal *Global) {
DEBUG(dbgs() << "addSyntheticGlobal: " << Name << " -> " << Global << "\n");
assert(!find(Name));
+ SyntheticGlobals.emplace_back(Global);
return replaceSymbol<DefinedGlobal>(insert(Name).first, Name, Flags, nullptr,
Global);
}