[PATCH] D123879: [LLD] Alternate implementation for "Support per-thread allocators and StringSavers"

Alexandre Ganea via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 18 07:12:12 PDT 2022


aganea added a comment.

I see no difference on the ELF side, but @MaskRay maybe you're running a more though test? This is a two-stage LLD, second stage uses `-march=native -Xclang -O3 -fstrict-aliasing -fwhole-program-vtables -flto=thin`, running on a `c5a.24xlarge` EC2 instance.

  ubuntu at XXX:~/chromium/src/out/Default$ uname -a
  Linux XXX 5.13.0-1021-aws #23~20.04.2-Ubuntu SMP Thu Mar 31 11:36:15 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
  ubuntu at XXX:~/chromium/src/out/Default$ lscpu
  Architecture:                    x86_64
  CPU op-mode(s):                  32-bit, 64-bit
  Byte Order:                      Little Endian
  Address sizes:                   48 bits physical, 48 bits virtual
  CPU(s):                          96
  On-line CPU(s) list:             0-95
  Thread(s) per core:              2
  Core(s) per socket:              48
  Socket(s):                       1
  NUMA node(s):                    1
  Vendor ID:                       AuthenticAMD
  CPU family:                      23
  Model:                           49
  Model name:                      AMD EPYC 7R32
  Stepping:                        0
  CPU MHz:                         2799.992
  BogoMIPS:                        5599.98
  Hypervisor vendor:               KVM
  Virtualization type:             full
  L1d cache:                       1.5 MiB
  L1i cache:                       1.5 MiB
  L2 cache:                        24 MiB
  L3 cache:                        192 MiB
  NUMA node0 CPU(s):               0-95
  Vulnerability Itlb multihit:     Not affected
  Vulnerability L1tf:              Not affected
  Vulnerability Mds:               Not affected
  Vulnerability Meltdown:          Not affected
  Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp
  Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Vulnerability Spectre v2:        Mitigation; LFENCE, IBPB conditional, IBRS_FW, STIBP conditional, RSB filling
  Vulnerability Srbds:             Not affected
  Vulnerability Tsx async abort:   Not affected
  Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext
                                   fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf tsc_known_freq pni pclmu
                                   lqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy cr8_lega
                                   cy abm sse4a misalignsse 3dnowprefetch topoext perfctr_core ssbd ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 r
                                   dseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 clzero xsaveerptr rdpru wbnoinvd arat npt nrip_save rdpid

(**bin_tls_bumpptr** is with this patch, **bin_no_tls** is without, using Chromium checkout 8660f8deda4982de98baddafaffb651898144bac and LLVM checkout b859c39c40a79ff74033f67d807a18130b9afe30 <https://reviews.llvm.org/rGb859c39c40a79ff74033f67d807a18130b9afe30>)

  ubuntu at XXX:~/chromium/src/out/Default$ hyperfine '~/llvm-project/stage2/bin_tls_bumpptr/ld.lld @__link_unit_tests.rsp' '~/llvm-project/stage2/bin_no_tls/ld.lld @__link_unit_tests.rsp'
  Benchmark 1: ~/llvm-project/stage2/bin_tls_bumpptr/ld.lld @__link_unit_tests.rsp
    Time (mean ± σ):      9.743 s ±  0.057 s    [User: 21.273 s, System: 78.149 s]
    Range (min … max):    9.661 s …  9.845 s    10 runs
  
  Benchmark 2: ~/llvm-project/stage2/bin_no_tls/ld.lld @__link_unit_tests.rsp
    Time (mean ± σ):      9.770 s ±  0.046 s    [User: 21.241 s, System: 78.736 s]
    Range (min … max):    9.695 s …  9.844 s    10 runs
  
  Summary
    '~/llvm-project/stage2/bin_tls_bumpptr/ld.lld @__link_unit_tests.rsp' ran
      1.00 ± 0.01 times faster than '~/llvm-project/stage2/bin_no_tls/ld.lld @__link_unit_tests.rsp'
  
  ubuntu at XXX:~/chromium/src/out/Default$ hyperfine '~/llvm-project/stage2/bin_tls_bumpptr/ld.lld @__link_chrome.rsp' '~/llvm-project/stage2/bin_no_tls/ld.lld @__link_chrome.rsp'
  Benchmark 1: ~/llvm-project/stage2/bin_tls_bumpptr/ld.lld @__link_chrome.rsp
    Time (mean ± σ):      6.277 s ±  0.077 s    [User: 13.156 s, System: 50.551 s]
    Range (min … max):    6.218 s …  6.484 s    10 runs
  
  Benchmark 2: ~/llvm-project/stage2/bin_no_tls/ld.lld @__link_chrome.rsp
    Time (mean ± σ):      6.275 s ±  0.025 s    [User: 13.274 s, System: 50.396 s]
    Range (min … max):    6.233 s …  6.314 s    10 runs
  
  Summary
    '~/llvm-project/stage2/bin_no_tls/ld.lld @__link_chrome.rsp' ran
      1.00 ± 0.01 times faster than '~/llvm-project/stage2/bin_tls_bumpptr/ld.lld @__link_chrome.rsp'


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D123879/new/

https://reviews.llvm.org/D123879



More information about the llvm-commits mailing list