[PATCH] D25456: [InstrProf] Add support for dead_strip+live_support functionality

Fangrui Song via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat May 29 15:36:56 PDT 2021


MaskRay added subscribers: thakis, MaskRay.
MaskRay added a comment.
Herald added a project: LLVM.

I've made ELF GC work in https://reviews.llvm.org/D97585 and am trying D103372 <https://reviews.llvm.org/D103372> which will make (to a large extent) Windows GC work.

My question is whether S_ATTR_LIVE_SUPPORT suppresses N_NO_DEAD_STRIP on Darwin.

  % cat a.ll
  @bar = external global void ()*, align 8
  
  define void @foo() {
  entry:
    %tmp = load void ()*, void ()** @bar, align 8
    call void %tmp()
    ret void
  }
  % opt -mtriple=x86_64-apple-darwin -passes=pgo-instr-gen,instrprof -S < a.ll | llc -mtriple=x86_64-apple-darwin -filetype=obj -function-sections -o a.o

`l___profd_foo` has N_NO_DEAD_STRIP while its section has S_ATTR_LIVE_SUPPORT. Is N_NO_DEAD_STRIP ignored in this case?
If not the GC doesn't kick in.
@thakis may be interested in this for the ld64.lld -dead_strip implementation (D103324 <https://reviews.llvm.org/D103324>).


Repository:
  rL LLVM

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

https://reviews.llvm.org/D25456



More information about the llvm-commits mailing list