mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-24 05:23:45 +02:00
41c3ae17be
What this does is make all symbols that would otherwise start with a .L (or L on MachO) unnamed. Some of these symbols still show up in the symbol table, but we can just make them unnamed. In order to make sure we produce identical results when going thought assembly, all .L (not just the compiler produced ones), are now unnamed. Running llc on llvm-as.opt.bc, the peak memory usage goes from 208.24MB to 205.57MB. llvm-svn: 240130
53 lines
1.2 KiB
ArmAsm
53 lines
1.2 KiB
ArmAsm
// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -t | FileCheck %s
|
|
|
|
// Test which symbols should be in the symbol table
|
|
|
|
.Lsym2:
|
|
.Lsym3:
|
|
.Lsym4 = .Lsym2 - .Lsym3
|
|
.long .Lsym4
|
|
|
|
.type .Lsym5,@object
|
|
.type sym6,@object
|
|
.long sym6
|
|
|
|
.section .rodata.str1.1,"aMS",@progbits,1
|
|
.Lsym7:
|
|
.Lsym8:
|
|
|
|
.text
|
|
movsd .Lsym8(%rip), %xmm1
|
|
|
|
test2_a = undef
|
|
test2_b = undef + 1
|
|
|
|
// CHECK: Symbols [
|
|
// CHECK-NEXT: Symbol {
|
|
// CHECK-NEXT: Name: (0)
|
|
// CHECK-NEXT: Value: 0x0
|
|
// CHECK-NEXT: Size: 0
|
|
// CHECK-NEXT: Binding: Local
|
|
// CHECK-NEXT: Type: None
|
|
// CHECK-NEXT: Other: 0
|
|
// CHECK-NEXT: Section: Undefined
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Symbol {
|
|
// CHECK-NEXT: Name: (0)
|
|
// CHECK-NEXT: Value: 0x0
|
|
// CHECK-NEXT: Size: 0
|
|
// CHECK-NEXT: Binding: Local
|
|
// CHECK-NEXT: Type: None
|
|
// CHECK-NEXT: Other: 0
|
|
// CHECK-NEXT: Section: .rodata.str1.1
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: Symbol {
|
|
// CHECK-NEXT: Name: sym6
|
|
// CHECK-NEXT: Value: 0x0
|
|
// CHECK-NEXT: Size: 0
|
|
// CHECK-NEXT: Binding: Global
|
|
// CHECK-NEXT: Type: Object
|
|
// CHECK-NEXT: Other: 0
|
|
// CHECK-NEXT: Section: Undefined
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: ]
|