[PATCH] D41038: [WebAssembly] Preserve ordering of global symbols
Phabricator via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 11 13:53:06 PST 2017
This revision was automatically updated to reflect the committed changes.
Closed by commit rL320426: [WebAssembly] Preserve ordering of global symbols (authored by sbc).
Repository:
rL LLVM
https://reviews.llvm.org/D41038
Files:
lld/trunk/test/wasm/data-layout.ll
lld/trunk/wasm/Writer.cpp
Index: lld/trunk/test/wasm/data-layout.ll
===================================================================
--- lld/trunk/test/wasm/data-layout.ll
+++ lld/trunk/test/wasm/data-layout.ll
@@ -20,27 +20,27 @@
; CHECK-NEXT: Mutable: false
; CHECK-NEXT: InitExpr:
; CHECK-NEXT: Opcode: I32_CONST
-; CHECK-NEXT: Value: 1052
+; CHECK-NEXT: Value: 1024
; CHECK-NEXT: - Type: I32
; CHECK-NEXT: Mutable: false
; CHECK-NEXT: InitExpr:
; CHECK-NEXT: Opcode: I32_CONST
-; CHECK-NEXT: Value: 1024
+; CHECK-NEXT: Value: 1040
; CHECK-NEXT: - Type: I32
; CHECK-NEXT: Mutable: false
; CHECK-NEXT: InitExpr:
; CHECK-NEXT: Opcode: I32_CONST
-; CHECK-NEXT: Value: 1040
+; CHECK-NEXT: Value: 1048
; CHECK-NEXT: - Type: I32
; CHECK-NEXT: Mutable: false
; CHECK-NEXT: InitExpr:
; CHECK-NEXT: Opcode: I32_CONST
-; CHECK-NEXT: Value: 1048
+; CHECK-NEXT: Value: 1052
; CHECK: - Type: DATA
; CHECK-NEXT: Relocations:
; CHECK-NEXT: - Type: R_WEBASSEMBLY_MEMORY_ADDR_I32
-; CHECK-NEXT: Index: 1
+; CHECK-NEXT: Index: 4
; CHECK-NEXT: Offset: 0x0000001F
; CHECK-NEXT: Segments:
; CHECK-NEXT: - SectionOffset: 7
Index: lld/trunk/wasm/Writer.cpp
===================================================================
--- lld/trunk/wasm/Writer.cpp
+++ lld/trunk/wasm/Writer.cpp
@@ -614,15 +614,13 @@
for (ObjFile *File : Symtab->ObjectFiles) {
DEBUG(dbgs() << "assignSymbolIndexes: " << File->getName() << "\n");
for (Symbol *Sym : File->getSymbols()) {
- if (Sym->hasOutputIndex() || !Sym->isDefined())
+ // Assign indexes for symbols defined with this file.
+ if (!Sym->isDefined() || File != Sym->getFile())
continue;
-
if (Sym->isFunction()) {
- if (Sym->getFile() && isa<ObjFile>(Sym->getFile())) {
- auto *Obj = cast<ObjFile>(Sym->getFile());
- Sym->setOutputIndex(Obj->FunctionIndexOffset +
- Sym->getFunctionIndex());
- }
+ auto *Obj = cast<ObjFile>(Sym->getFile());
+ Sym->setOutputIndex(Obj->FunctionIndexOffset +
+ Sym->getFunctionIndex());
} else if (Config->EmitRelocs) {
DefinedGlobals.emplace_back(Sym);
Sym->setOutputIndex(GlobalIndex++);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D41038.126441.patch
Type: text/x-patch
Size: 2699 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171211/d9740d35/attachment.bin>
More information about the llvm-commits
mailing list