[all-commits] [llvm/llvm-project] 640c1d: [llvm] Support IFuncs on Darwin platforms (#73686)

Jon Roelofs via All-commits all-commits at lists.llvm.org
Thu Dec 14 13:41:06 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 640c1d3dd12843f9ad29df472bbf0a88f90770b5
      https://github.com/llvm/llvm-project/commit/640c1d3dd12843f9ad29df472bbf0a88f90770b5
  Author: Jon Roelofs <jonathan_roelofs at apple.com>
  Date:   2023-12-14 (Thu, 14 Dec 2023)

  Changed paths:
    M llvm/docs/LangRef.rst
    M llvm/include/llvm/CodeGen/AsmPrinter.h
    M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
    M llvm/lib/IR/Verifier.cpp
    M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
    M llvm/lib/Target/X86/X86AsmPrinter.cpp
    M llvm/lib/Target/X86/X86AsmPrinter.h
    M llvm/test/CodeGen/AArch64/addrsig-macho.ll
    A llvm/test/CodeGen/AArch64/ifunc-asm.ll
    M llvm/test/CodeGen/X86/ifunc-asm.ll

  Log Message:
  -----------
  [llvm] Support IFuncs on Darwin platforms (#73686)

... by lowering them as lazy resolve-on-first-use symbol resolvers. Note that this is subtly different timing than on ELF platforms, where ifunc resolution happens at load time.

Since ld64 and ld-prime don't support all the cases we need for these, we lower them manually in the AsmPrinter.




More information about the All-commits mailing list