Lines Matching refs:sym

92   for (const Symbol *sym : symtab->symbols()) {  in writeBody()  local
93 if (sym->isLive()) { in writeBody()
94 if (sym->isExported() && sym->isTLS() && isa<DefinedData>(sym)) { in writeBody()
95 exportInfo.push_back(sym); in writeBody()
97 if (sym->isUndefWeak()) { in writeBody()
98 importInfo.push_back(sym); in writeBody()
107 for (const Symbol *sym : exportInfo) { in writeBody() local
108 LLVM_DEBUG(llvm::dbgs() << "export info: " << toString(*sym) << "\n"); in writeBody()
109 StringRef name = sym->getName(); in writeBody()
110 if (auto *f = dyn_cast<DefinedFunction>(sym)) { in writeBody()
117 writeUleb128(sub.os, sym->flags, "sym flags"); in writeBody()
127 for (const Symbol *sym : importInfo) { in writeBody() local
128 LLVM_DEBUG(llvm::dbgs() << "imports info: " << toString(*sym) << "\n"); in writeBody()
129 StringRef module = sym->importModule.value_or(defaultModule); in writeBody()
130 StringRef name = sym->importName.value_or(sym->getName()); in writeBody()
133 writeUleb128(sub.os, sym->flags, "sym flags"); in writeBody()
172 void ImportSection::addGOTEntry(Symbol *sym) { in addGOTEntry() argument
174 if (sym->hasGOTIndex()) in addGOTEntry()
176 LLVM_DEBUG(dbgs() << "addGOTEntry: " << toString(*sym) << "\n"); in addGOTEntry()
177 sym->setGOTIndex(numImportedGlobals++); in addGOTEntry()
182 sym->forceExport = true; in addGOTEntry()
184 gotSymbols.push_back(sym); in addGOTEntry()
187 void ImportSection::addImport(Symbol *sym) { in addImport() argument
189 StringRef module = sym->importModule.value_or(defaultModule); in addImport()
190 StringRef name = sym->importName.value_or(sym->getName()); in addImport()
191 if (auto *f = dyn_cast<FunctionSymbol>(sym)) { in addImport()
195 importedSymbols.emplace_back(sym); in addImport()
200 } else if (auto *g = dyn_cast<GlobalSymbol>(sym)) { in addImport()
204 importedSymbols.emplace_back(sym); in addImport()
209 } else if (auto *t = dyn_cast<TagSymbol>(sym)) { in addImport()
213 importedSymbols.emplace_back(sym); in addImport()
219 assert(TableSymbol::classof(sym)); in addImport()
220 auto *table = cast<TableSymbol>(sym); in addImport()
224 importedSymbols.emplace_back(sym); in addImport()
257 for (const Symbol *sym : importedSymbols) { in writeBody() local
259 import.Field = sym->importName.value_or(sym->getName()); in writeBody()
260 import.Module = sym->importModule.value_or(defaultModule); in writeBody()
262 if (auto *functionSym = dyn_cast<FunctionSymbol>(sym)) { in writeBody()
265 } else if (auto *globalSym = dyn_cast<GlobalSymbol>(sym)) { in writeBody()
268 } else if (auto *tagSym = dyn_cast<TagSymbol>(sym)) { in writeBody()
272 auto *tableSym = cast<TableSymbol>(sym); in writeBody()
279 for (const Symbol *sym : gotSymbols) { in writeBody() local
284 if (isa<DataSymbol>(sym)) in writeBody()
288 import.Field = sym->getName(); in writeBody()
393 for (Symbol *sym : internalGotSymbols) in assignIndexes()
394 sym->setGOTIndex(globalIndex++); in assignIndexes()
404 void GlobalSection::addInternalGOTEntry(Symbol *sym) { in addInternalGOTEntry() argument
406 if (sym->requiresGOT) in addInternalGOTEntry()
408 LLVM_DEBUG(dbgs() << "addInternalGOTEntry: " << sym->getName() << " " in addInternalGOTEntry()
409 << toString(sym->kind()) << "\n"); in addInternalGOTEntry()
410 sym->requiresGOT = true; in addInternalGOTEntry()
411 if (auto *F = dyn_cast<FunctionSymbol>(sym)) { in addInternalGOTEntry()
415 internalGotSymbols.push_back(sym); in addInternalGOTEntry()
426 for (const Symbol *sym : internalGotSymbols) { in generateRelocationCode() local
427 if (TLS != sym->isTLS()) in generateRelocationCode()
430 if (auto *d = dyn_cast<DefinedData>(sym)) { in generateRelocationCode()
433 if (sym->isTLS()) in generateRelocationCode()
442 } else if (auto *f = dyn_cast<FunctionSymbol>(sym)) { in generateRelocationCode()
453 assert(isa<UndefinedData>(sym)); in generateRelocationCode()
458 writeUleb128(os, sym->getGOTIndex(), "got_entry"); in generateRelocationCode()
472 for (const Symbol *sym : internalGotSymbols) { in writeBody() local
474 if (!sym->isStub) { in writeBody()
478 if (!config->extendedConst && config->isPic && !sym->isTLS()) in writeBody()
482 if (config->sharedMemory && sym->isTLS()) in writeBody()
488 if (config->extendedConst && config->isPic && !sym->isTLS() && in writeBody()
489 isa<DefinedData>(sym)) { in writeBody()
492 auto *d = cast<DefinedData>(sym); in writeBody()
503 if (auto *d = dyn_cast<DefinedData>(sym)) in writeBody()
505 else if (auto *f = dyn_cast<FunctionSymbol>(sym)) in writeBody()
508 assert(isa<UndefinedData>(sym)); in writeBody()
514 for (const DefinedData *sym : dataAddressGlobals) { in writeBody() local
517 writeInitExpr(os, intConst(sym->getVA(), is64)); in writeBody()
546 void ElemSection::addEntry(FunctionSymbol *sym) { in addEntry() argument
550 if (sym->hasTableIndex() || sym->isStub) in addEntry()
552 sym->setTableIndex(config->tableBase + indirectFunctions.size()); in addEntry()
553 indirectFunctions.emplace_back(sym); in addEntry()
592 for (const FunctionSymbol *sym : indirectFunctions) { in writeBody() local
593 assert(sym->getTableIndex() == tableIndex); in writeBody()
595 writeUleb128(os, sym->getFunctionIndex(), "function index"); in writeBody()
623 for (const Symbol *sym : symtabEntries) { in writeBody() local
624 assert(sym->isDefined() || sym->isUndefined()); in writeBody()
625 WasmSymbolType kind = sym->getWasmType(); in writeBody()
626 uint32_t flags = sym->flags; in writeBody()
631 if (auto *f = dyn_cast<FunctionSymbol>(sym)) { in writeBody()
632 if (auto *d = dyn_cast<DefinedFunction>(sym)) { in writeBody()
637 if (sym->isDefined() || (flags & WASM_SYMBOL_EXPLICIT_NAME) != 0) in writeBody()
638 writeStr(sub.os, sym->getName(), "sym name"); in writeBody()
639 } else if (auto *g = dyn_cast<GlobalSymbol>(sym)) { in writeBody()
641 if (sym->isDefined() || (flags & WASM_SYMBOL_EXPLICIT_NAME) != 0) in writeBody()
642 writeStr(sub.os, sym->getName(), "sym name"); in writeBody()
643 } else if (auto *t = dyn_cast<TagSymbol>(sym)) { in writeBody()
645 if (sym->isDefined() || (flags & WASM_SYMBOL_EXPLICIT_NAME) != 0) in writeBody()
646 writeStr(sub.os, sym->getName(), "sym name"); in writeBody()
647 } else if (auto *t = dyn_cast<TableSymbol>(sym)) { in writeBody()
649 if (sym->isDefined() || (flags & WASM_SYMBOL_EXPLICIT_NAME) != 0) in writeBody()
650 writeStr(sub.os, sym->getName(), "sym name"); in writeBody()
651 } else if (isa<DataSymbol>(sym)) { in writeBody()
652 writeStr(sub.os, sym->getName(), "sym name"); in writeBody()
653 if (auto *dataSym = dyn_cast<DefinedData>(sym)) { in writeBody()
660 auto *s = cast<OutputSectionSymbol>(sym); in writeBody()
684 writeUleb128(sub.os, f.sym->getOutputSymbolIndex(), "function index"); in writeBody()
730 void LinkingSection::addToSymtab(Symbol *sym) { in addToSymtab() argument
731 sym->setOutputSymbolIndex(symtabEntries.size()); in addToSymtab()
732 symtabEntries.emplace_back(sym); in addToSymtab()