Skip to content

Commit 7af27be

Browse files
MaskRaytru
authored andcommitted
[ARM] Create mapping symbols with non-unique names
Similar to llvm#99836 for AArch64. Non-unique names save .strtab space and match GNU assembler. Pull Request: llvm#99906 (cherry picked from commit 298a922)
1 parent 411bb69 commit 7af27be

File tree

12 files changed

+43
-47
lines changed

12 files changed

+43
-47
lines changed

lld/test/ELF/arm-cmse-implib.s

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ secure_entry:
5353
// CHECK1-NEXT: Num: Value Size Type Bind Vis Ndx Name
5454
// CHECK1-NEXT: 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
5555
// CHECK1-NEXT: 1: 00020000 0 NOTYPE LOCAL DEFAULT 2 $t
56-
// CHECK1-NEXT: 2: 00008000 0 NOTYPE LOCAL DEFAULT 1 $t.0
57-
// CHECK1-NEXT: 3: 00008004 0 NOTYPE LOCAL DEFAULT 1 $t.0
56+
// CHECK1-NEXT: 2: 00008000 0 NOTYPE LOCAL DEFAULT 1 $t
57+
// CHECK1-NEXT: 3: 00008004 0 NOTYPE LOCAL DEFAULT 1 $t
5858
// CHECK1-NEXT: 4: 00008001 2 FUNC GLOBAL DEFAULT 1 secure_entry
5959
// CHECK1-NEXT: 5: 00020001 8 FUNC GLOBAL DEFAULT 2 foo
6060
// CHECK1-NEXT: 6: 00008005 2 FUNC GLOBAL DEFAULT 1 __acle_se_foo
@@ -82,8 +82,8 @@ secure_entry:
8282
// CHECK2-NEXT: Num: Value Size Type Bind Vis Ndx Name
8383
// CHECK2-NEXT: 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
8484
// CHECK2-NEXT: 1: 00020000 0 NOTYPE LOCAL DEFAULT 2 $t
85-
// CHECK2-NEXT: 2: 00008000 0 NOTYPE LOCAL DEFAULT 1 $t.0
86-
// CHECK2-NEXT: 3: 00008004 0 NOTYPE LOCAL DEFAULT 1 $t.0
85+
// CHECK2-NEXT: 2: 00008000 0 NOTYPE LOCAL DEFAULT 1 $t
86+
// CHECK2-NEXT: 3: 00008004 0 NOTYPE LOCAL DEFAULT 1 $t
8787
// CHECK2-NEXT: 4: 00008001 2 FUNC GLOBAL DEFAULT 1 secure_entry
8888
// CHECK2-NEXT: 5: 00020011 8 FUNC WEAK DEFAULT 2 baz
8989
// CHECK2-NEXT: 6: 00008005 2 FUNC GLOBAL DEFAULT 1 __acle_se_baz

llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -670,17 +670,15 @@ class ARMELFStreamer : public MCELFStreamer {
670670
}
671671

672672
void EmitMappingSymbol(StringRef Name) {
673-
auto *Symbol = cast<MCSymbolELF>(getContext().getOrCreateSymbol(
674-
Name + "." + Twine(MappingSymbolCounter++)));
673+
auto *Symbol = cast<MCSymbolELF>(getContext().createLocalSymbol(Name));
675674
emitLabel(Symbol);
676675

677676
Symbol->setType(ELF::STT_NOTYPE);
678677
Symbol->setBinding(ELF::STB_LOCAL);
679678
}
680679

681680
void emitMappingSymbol(StringRef Name, MCDataFragment &F, uint64_t Offset) {
682-
auto *Symbol = cast<MCSymbolELF>(getContext().getOrCreateSymbol(
683-
Name + "." + Twine(MappingSymbolCounter++)));
681+
auto *Symbol = cast<MCSymbolELF>(getContext().createLocalSymbol(Name));
684682
emitLabelAtPos(Symbol, SMLoc(), F, Offset);
685683
Symbol->setType(ELF::STT_NOTYPE);
686684
Symbol->setBinding(ELF::STB_LOCAL);
@@ -710,7 +708,6 @@ class ARMELFStreamer : public MCELFStreamer {
710708

711709
bool IsThumb;
712710
bool IsAndroid;
713-
int64_t MappingSymbolCounter = 0;
714711

715712
DenseMap<const MCSection *, std::unique_ptr<ElfMappingSymbolInfo>>
716713
LastMappingSymbols;
@@ -1121,7 +1118,6 @@ void ARMELFStreamer::reset() {
11211118
MCTargetStreamer &TS = *getTargetStreamer();
11221119
ARMTargetStreamer &ATS = static_cast<ARMTargetStreamer &>(TS);
11231120
ATS.reset();
1124-
MappingSymbolCounter = 0;
11251121
MCELFStreamer::reset();
11261122
LastMappingSymbols.clear();
11271123
LastEMSInfo.reset();

llvm/test/DebugInfo/Symbolize/ELF/arm-mapping-symbol.s

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,19 @@
55

66
## Verify that mapping symbols are actually present in the object at expected
77
## addresses.
8-
# RUN: llvm-nm --special-syms %t | FileCheck %s -check-prefix MAPPING_A
8+
# RUN: llvm-nm --special-syms %t | FileCheck %s --check-prefix=MAPPING_A --match-full-lines
99

10-
# MAPPING_A: 00000004 t $a.1
11-
# MAPPING_A-NEXT: 00000000 t $d.0
12-
# MAPPING_A-NEXT: 00000008 t $d.2
10+
# MAPPING_A: 00000004 t $a
11+
# MAPPING_A-NEXT: 00000000 t $d
12+
# MAPPING_A-NEXT: 00000008 t $d
1313
# MAPPING_A-NEXT: 00000000 T foo
1414

1515
# RUN: llvm-mc -filetype=obj -triple=thumbv7-none-linux %s -o %tthumb
16-
# RUN: llvm-nm --special-syms %tthumb | FileCheck %s -check-prefix MAPPING_T
16+
# RUN: llvm-nm --special-syms %tthumb | FileCheck %s --check-prefix=MAPPING_T --match-full-lines
1717

18-
# MAPPING_T: 00000000 t $d.0
19-
# MAPPING_T-NEXT: 00000006 t $d.2
20-
# MAPPING_T-NEXT: 00000004 t $t.1
18+
# MAPPING_T: 00000000 t $d
19+
# MAPPING_T-NEXT: 00000006 t $d
20+
# MAPPING_T-NEXT: 00000004 t $t
2121
# MAPPING_T-NEXT: 00000000 T foo
2222

2323
# RUN: llvm-symbolizer --obj=%t 4 8 | FileCheck %s -check-prefix SYMBOL

llvm/test/MC/ARM/CheckDataSymbol.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# RUN: llvm-mc -filetype=obj -assemble \
22
# RUN: -triple=arm-arm-none-eabi -mcpu=cortex-a9 %s -o - \
33
# RUN: | llvm-readobj -S --symbols - | FileCheck %s
4-
# CHECK: Name: $d.1 ({{[1-9][0-9]+}})
4+
# CHECK: Name: $d
55
# CHECK-NEXT: Value: 0x4
66
# CHECK-NEXT: Size: 0
77
# CHECK-NEXT: Binding: Local (0x0)

llvm/test/MC/ARM/data-in-code.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ exit:
7272
;; TMB-NEXT: Section: [[MIXED_SECT:[^ ]+]]
7373

7474
;; TMB: Symbol {
75-
;; TMB: Name: $d.1
75+
;; TMB: Name: $d
7676
;; TMB-NEXT: Value: 0x{{[0-9A-F]+}}
7777
;; TMB-NEXT: Size: 0
7878
;; TMB-NEXT: Binding: Local

llvm/test/MC/ARM/directive-arm-thumb-alignment.s

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@
1010
@ CHECK: Num: Value Size Type Bind Vis Ndx Name
1111
@ CHECK-NEXT: 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1212
@ CHECK-NEXT: 1: 00000001 0 FUNC LOCAL DEFAULT 2 aligned_thumb
13-
@ CHECK-NEXT: 2: 00000000 0 NOTYPE LOCAL DEFAULT 2 $t.0
13+
@ CHECK-NEXT: 2: 00000000 0 NOTYPE LOCAL DEFAULT 2 $t
1414
@ CHECK-NEXT: 3: 00000004 0 FUNC LOCAL DEFAULT 2 thumb_to_arm
15-
@ CHECK-NEXT: 4: 00000004 0 NOTYPE LOCAL DEFAULT 2 $a.1
16-
@ CHECK-NEXT: 5: 00000008 0 NOTYPE LOCAL DEFAULT 2 $d.2
15+
@ CHECK-NEXT: 4: 00000004 0 NOTYPE LOCAL DEFAULT 2 $a
16+
@ CHECK-NEXT: 5: 00000008 0 NOTYPE LOCAL DEFAULT 2 $d
1717
@ CHECK-NEXT: 6: 0000000b 0 FUNC LOCAL DEFAULT 2 unaligned_arm_to_thumb
18-
@ CHECK-NEXT: 7: 0000000a 0 NOTYPE LOCAL DEFAULT 2 $t.3
18+
@ CHECK-NEXT: 7: 0000000a 0 NOTYPE LOCAL DEFAULT 2 $t
1919

2020
.thumb
2121

llvm/test/MC/ARM/multi-section-mapping.s

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@ RUN: llvm-mc -triple=armv7-linux-gnueabi -filetype=obj < %s | llvm-objdump -t - | FileCheck %s
1+
@ RUN: llvm-mc -triple=armv7-linux-gnueabi -filetype=obj < %s | llvm-objdump -t - | FileCheck %s --match-full-lines
22

33
.text
44
add r0, r0, r0
@@ -42,10 +42,10 @@
4242
@ + .starts_thumb to have $t at 0
4343
@ + .starts_data to have $d at 0
4444

45-
@ CHECK: 00000000 l .text 00000000 $a.0
46-
@ CHECK-NEXT: 00000000 l .wibble 00000000 $a.1
47-
@ CHECK-NEXT: 00000000 l .starts_thumb 00000000 $t.2
48-
@ CHECK-NEXT: 00000008 l .text 00000000 $t.3
49-
@ CHECK-NEXT: 0000000a l .text 00000000 $d.4
45+
@ CHECK: 00000000 l .text 00000000 $a
46+
@ CHECK-NEXT: 00000000 l .wibble 00000000 $a
47+
@ CHECK-NEXT: 00000000 l .starts_thumb 00000000 $t
48+
@ CHECK-NEXT: 00000008 l .text 00000000 $t
49+
@ CHECK-NEXT: 0000000a l .text 00000000 $d
5050
@ CHECK-NOT: ${{[adt]}}
5151

llvm/test/MC/ARM/thumb-function-address.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ label:
3535
@ CHECK-NEXT: 00000000 0 NOTYPE LOCAL DEFAULT UND
3636
@ CHECK-NEXT: 00000001 0 FUNC LOCAL DEFAULT 2 func_label
3737
@ CHECK-NEXT: 00000001 0 FUNC LOCAL DEFAULT 2 foo_impl
38-
@ CHECK-NEXT: 00000000 0 NOTYPE LOCAL DEFAULT 2 $t.0
38+
@ CHECK-NEXT: 00000000 0 NOTYPE LOCAL DEFAULT 2 $t
3939
@ CHECK-NEXT: 00000003 0 FUNC LOCAL DEFAULT 2 foo_resolver
4040
@ CHECK-NEXT: 00000003 0 IFUNC LOCAL DEFAULT 2 foo
4141
@ CHECK-NEXT: 00000004 0 FUNC LOCAL DEFAULT 2 label
42-
@ CHECK-NEXT: 00000008 0 NOTYPE LOCAL DEFAULT 2 $a.1
42+
@ CHECK-NEXT: 00000008 0 NOTYPE LOCAL DEFAULT 2 $a

llvm/test/MC/ARM/thumb-types.s

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,22 @@
33
@ CHECK: Num: Value Size Type Bind Vis Ndx Name
44
@ CHECK-NEXT: 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
55
@ CHECK-NEXT: 1: 00000001 0 FUNC LOCAL DEFAULT 2 implicit_function
6-
@ CHECK-NEXT: 2: 00000000 0 NOTYPE LOCAL DEFAULT 2 $t.0
6+
@ CHECK-NEXT: 2: 00000000 0 NOTYPE LOCAL DEFAULT 2 $t
77
@ CHECK-NEXT: 3: 00000002 0 OBJECT LOCAL DEFAULT 2 implicit_data
8-
@ CHECK-NEXT: 4: 00000002 0 NOTYPE LOCAL DEFAULT 2 $d.1
8+
@ CHECK-NEXT: 4: 00000002 0 NOTYPE LOCAL DEFAULT 2 $d
99
@ CHECK-NEXT: 5: 00000008 0 FUNC LOCAL DEFAULT 2 arm_function
10-
@ CHECK-NEXT: 6: 00000008 0 NOTYPE LOCAL DEFAULT 2 $a.2
10+
@ CHECK-NEXT: 6: 00000008 0 NOTYPE LOCAL DEFAULT 2 $a
1111
@ CHECK-NEXT: 7: 0000000c 0 NOTYPE LOCAL DEFAULT 2 untyped_text_label
12-
@ CHECK-NEXT: 8: 0000000c 0 NOTYPE LOCAL DEFAULT 2 $t.3
12+
@ CHECK-NEXT: 8: 0000000c 0 NOTYPE LOCAL DEFAULT 2 $t
1313
@ CHECK-NEXT: 9: 0000000f 0 FUNC LOCAL DEFAULT 2 explicit_function
14-
@ CHECK-NEXT: 10: 00000010 0 NOTYPE LOCAL DEFAULT 2 $d.4
14+
@ CHECK-NEXT: 10: 00000010 0 NOTYPE LOCAL DEFAULT 2 $d
1515
@ CHECK-NEXT: 11: 00000000 4 TLS LOCAL DEFAULT 5 tls
1616
@ CHECK-NEXT: 12: 00000015 0 IFUNC LOCAL DEFAULT 2 indirect_function
17-
@ CHECK-NEXT: 13: 00000014 0 NOTYPE LOCAL DEFAULT 2 $t.5
17+
@ CHECK-NEXT: 13: 00000014 0 NOTYPE LOCAL DEFAULT 2 $t
1818
@ CHECK-NEXT: 14: 00000000 0 NOTYPE LOCAL DEFAULT 4 untyped_data_label
19-
@ CHECK-NEXT: 15: 00000000 0 NOTYPE LOCAL DEFAULT 4 $t.6
19+
@ CHECK-NEXT: 15: 00000000 0 NOTYPE LOCAL DEFAULT 4 $t
2020
@ CHECK-NEXT: 16: 00000002 0 OBJECT LOCAL DEFAULT 4 explicit_data
21-
@ CHECK-NEXT: 17: 00000002 0 NOTYPE LOCAL DEFAULT 4 $d.7
21+
@ CHECK-NEXT: 17: 00000002 0 NOTYPE LOCAL DEFAULT 4 $d
2222

2323

2424
.syntax unified

llvm/test/MC/ARM/thumb_set.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
@ CHECK: Num: Value Size Type Bind Vis Ndx Name
77
@ CHECK-NEXT: 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
88
@ CHECK-NEXT: 1: 00000000 0 FUNC LOCAL DEFAULT 2 arm_func
9-
@ CHECK-NEXT: 2: 00000000 0 NOTYPE LOCAL DEFAULT 2 $a.0
9+
@ CHECK-NEXT: 2: 00000000 0 NOTYPE LOCAL DEFAULT 2 $a
1010
@ CHECK-NEXT: 3: 00000001 0 FUNC LOCAL DEFAULT 2 alias_arm_func
1111
@ CHECK-NEXT: 4: 00000001 0 FUNC LOCAL DEFAULT 2 alias_arm_func2
1212
@ CHECK-NEXT: 5: 00000001 0 FUNC LOCAL DEFAULT 2 alias_arm_func3
1313
@ CHECK-NEXT: 6: 00000005 0 FUNC LOCAL DEFAULT 2 thumb_func
14-
@ CHECK-NEXT: 7: 00000004 0 NOTYPE LOCAL DEFAULT 2 $t.1
14+
@ CHECK-NEXT: 7: 00000004 0 NOTYPE LOCAL DEFAULT 2 $t
1515
@ CHECK-NEXT: 8: 00000005 0 FUNC LOCAL DEFAULT 2 alias_thumb_func
1616
@ CHECK-NEXT: 9: 5eed1e55 0 FUNC LOCAL DEFAULT ABS seedless
1717
@ CHECK-NEXT: 10: e665a1ad 0 FUNC LOCAL DEFAULT ABS eggsalad

llvm/test/MC/ELF/ARM/execute-only-section.s

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ foo:
1818

1919

2020
// CHECK: Section {
21-
// CHECK: Name: .text (16)
21+
// CHECK: Name: .text
2222
// CHECK-NEXT: Type: SHT_PROGBITS (0x1)
2323
// CHECK-NEXT: Flags [ (0x20000006)
2424
// CHECK-NEXT: SHF_ALLOC (0x2)
@@ -29,7 +29,7 @@ foo:
2929
// CHECK: }
3030

3131
// CHECK: Section {
32-
// CHECK: Name: .text (16)
32+
// CHECK: Name: .text
3333
// CHECK-NEXT: Type: SHT_PROGBITS (0x1)
3434
// CHECK-NEXT: Flags [ (0x20000006)
3535
// CHECK-NEXT: SHF_ALLOC (0x2)
@@ -40,6 +40,6 @@ foo:
4040
// CHECK: }
4141

4242
// CHECK: Symbol {
43-
// CHECK: Name: foo (22)
43+
// CHECK: Name: foo
4444
// CHECK: Section: .text (0x3)
4545
// CHECK: }

llvm/test/tools/llvm-objdump/multiple-symbols.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@
2626

2727
@ HEAD: Disassembly of section .text:
2828
@ HEAD-EMPTY:
29-
@ AMAP-NEXT: 00000000 <$a.0>:
29+
@ AMAP-NEXT: 00000000 <$a>:
3030
@ AAAA-NEXT: 00000000 <aaaa>:
3131
@ BBBB-NEXT: 00000000 <bbbb>:
3232
@ AABB-NEXT: 0: e0800080 add r0, r0, r0, lsl #1
3333
@ AABB-NEXT: 4: e12fff1e bx lr
3434
@ BOTH-EMPTY:
35-
@ TMAP-NEXT: 00000008 <$t.1>:
35+
@ TMAP-NEXT: 00000008 <$t>:
3636
@ CCCC-NEXT: 00000008 <cccc>:
3737
@ DDDD-NEXT: 00000008 <dddd>:
3838
@ CCDD-NEXT: 8: eb00 0080 add.w r0, r0, r0, lsl #2

0 commit comments

Comments
 (0)