[lld] 4f60815 - [ELF] Use llvm::xxh3_64bits for MergeInputSection::splitStrings
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 19 08:34:31 PDT 2023
Author: Fangrui Song
Date: 2023-07-19T08:34:26-07:00
New Revision: 4f608151148db58537d5fcd74eac9034256cb01e
URL: https://github.com/llvm/llvm-project/commit/4f608151148db58537d5fcd74eac9034256cb01e
DIFF: https://github.com/llvm/llvm-project/commit/4f608151148db58537d5fcd74eac9034256cb01e.diff
LOG: [ELF] Use llvm::xxh3_64bits for MergeInputSection::splitStrings
See D154812 for the speedup.
Reviewed By: PiotrZSL
Differential Revision: https://reviews.llvm.org/D154813
Added:
Modified:
lld/ELF/InputSection.cpp
lld/test/ELF/comment-gc.s
lld/test/ELF/compress-debug-sections-zstd.s
lld/test/ELF/compressed-debug-input.s
lld/test/ELF/gc-sections-string.s
Removed:
################################################################################
diff --git a/lld/ELF/InputSection.cpp b/lld/ELF/InputSection.cpp
index 6ad468f7076889..c5101e0e4ad25a 100644
--- a/lld/ELF/InputSection.cpp
+++ b/lld/ELF/InputSection.cpp
@@ -1241,13 +1241,13 @@ void MergeInputSection::splitStrings(StringRef s, size_t entSize) {
// Optimize the common case.
do {
size_t size = strlen(p);
- pieces.emplace_back(p - s.begin(), xxHash64(StringRef(p, size)), live);
+ pieces.emplace_back(p - s.begin(), xxh3_64bits(StringRef(p, size)), live);
p += size + 1;
} while (p != end);
} else {
do {
size_t size = findNull(StringRef(p, end - p), entSize);
- pieces.emplace_back(p - s.begin(), xxHash64(StringRef(p, size)), live);
+ pieces.emplace_back(p - s.begin(), xxh3_64bits(StringRef(p, size)), live);
p += size + entSize;
} while (p != end);
}
diff --git a/lld/test/ELF/comment-gc.s b/lld/test/ELF/comment-gc.s
index 077bdb9021a6d2..a8f4846a40f001 100644
--- a/lld/test/ELF/comment-gc.s
+++ b/lld/test/ELF/comment-gc.s
@@ -5,7 +5,8 @@
# RUN: llvm-objdump -s %t1 | FileCheck %s
# CHECK: Contents of section .comment:
-# CHECK-NEXT: .LLD 1.0.foo.bar
+# CHECK-NEXT: foo..LLD 1.0.bar
+# CHECK-NEXT: .{{$}}
.ident "foo"
diff --git a/lld/test/ELF/compress-debug-sections-zstd.s b/lld/test/ELF/compress-debug-sections-zstd.s
index cf029c13c6449a..97ab192a52f429 100644
--- a/lld/test/ELF/compress-debug-sections-zstd.s
+++ b/lld/test/ELF/compress-debug-sections-zstd.s
@@ -7,10 +7,10 @@
# CHECK: .debug_str PROGBITS [[#%x,]] [[#%x,]] [[#%x,]] 01 MS 0 0 1
# CHECK: Hex dump of section '.debug_str':
-# CHECK-NEXT: 0x00000000 756e7369 676e6564 20696e74 00636861 unsigned int.cha
-# CHECK-NEXT: 0x00000010 7200756e 7369676e 65642063 68617200 r.unsigned char.
-# CHECK-NEXT: 0x00000020 73686f72 7420756e 7369676e 65642069 short unsigned i
-# CHECK-NEXT: 0x00000030 6e74006c 6f6e6720 756e7369 676e6564 nt.long unsigned
+# CHECK-NEXT: 0x00000000 73686f72 7420756e 7369676e 65642069 short unsigned i
+# CHECK-NEXT: 0x00000010 6e740075 6e736967 6e656420 63686172 nt.unsigned char
+# CHECK-NEXT: 0x00000020 00636861 72006c6f 6e672075 6e736967 .char.long unsig
+# CHECK-NEXT: 0x00000030 6e656420 696e7400 756e7369 676e6564 ned int.unsigned
# CHECK-NEXT: 0x00000040 20696e74 00 int.
# RUN: ld.lld %t.o -o %t.so -shared --compress-debug-sections=zstd
diff --git a/lld/test/ELF/compressed-debug-input.s b/lld/test/ELF/compressed-debug-input.s
index 285f879504f909..42e8c856dd64fc 100644
--- a/lld/test/ELF/compressed-debug-input.s
+++ b/lld/test/ELF/compressed-debug-input.s
@@ -43,10 +43,10 @@
# DATA-NEXT: AddressAlignment: 1
# DATA-NEXT: EntrySize: 1
# DATA-NEXT: SectionData (
-# DATA-NEXT: 0000: 756E7369 676E6564 20696E74 00636861 |unsigned int.cha|
-# DATA-NEXT: 0010: 7200756E 7369676E 65642063 68617200 |r.unsigned char.|
-# DATA-NEXT: 0020: 73686F72 7420756E 7369676E 65642069 |short unsigned i|
-# DATA-NEXT: 0030: 6E74006C 6F6E6720 756E7369 676E6564 |nt.long unsigned|
+# DATA-NEXT: 0000: 73686F72 7420756E 7369676E 65642069 |short unsigned i|
+# DATA-NEXT: 0010: 6E740075 6E736967 6E656420 63686172 |nt.unsigned char|
+# DATA-NEXT: 0020: 00636861 72006C6F 6E672075 6E736967 |.char.long unsig|
+# DATA-NEXT: 0030: 6E656420 696E7400 756E7369 676E6564 |ned int.unsigned|
# DATA-NEXT: 0040: 20696E74 00 | int.|
# DATA-NEXT: )
# DATA-NEXT: }
diff --git a/lld/test/ELF/gc-sections-string.s b/lld/test/ELF/gc-sections-string.s
index 90104e2bad8350..c6dbb5d482b240 100644
--- a/lld/test/ELF/gc-sections-string.s
+++ b/lld/test/ELF/gc-sections-string.s
@@ -15,7 +15,7 @@
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: s3
-// CHECK-NEXT: Value: 0x200120
+// CHECK-NEXT: Value: 0x200125
// CHECK-NEXT: Size: 0
// CHECK-NEXT: Binding: Local (0x0)
// CHECK-NEXT: Type: Object (0x1)
@@ -24,7 +24,7 @@
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: s1
-// CHECK-NEXT: Value: 0x200125
+// CHECK-NEXT: Value: 0x200120
// CHECK-NEXT: Size: 0
// CHECK-NEXT: Binding: Local (0x0)
// CHECK-NEXT: Type: Object (0x1)
More information about the llvm-commits
mailing list