[libcxx-commits] [lldb] [clang] [openmp] [lld] [compiler-rt] [libc] [flang] [libcxxabi] [llvm] [libcxx] [clang-tools-extra] [mlir] [llvm] Support IFuncs on Darwin platforms (PR #73686)
Ahmed Bougacha via libcxx-commits
libcxx-commits at lists.llvm.org
Wed Dec 13 16:12:24 PST 2023
================
@@ -599,6 +599,26 @@ class AsmPrinter : public MachineFunctionPass {
/// instructions in verbose mode.
virtual void emitImplicitDef(const MachineInstr *MI) const;
+ /// getSubtargetInfo() cannot be used where this is needed because we don't
+ /// have a MachineFunction when we're lowering a GlobalIFunc, and
+ /// getSubtargetInfo requires one. Override the implementation in targets
+ /// that support the Mach-O IFunc lowering.
+ virtual const MCSubtargetInfo *getIFuncMCSubtargetInfo() const {
+ return nullptr;
+ }
+
+ virtual void emitMachOIFuncStubBody(Module &M, const GlobalIFunc &GI,
+ MCSymbol *LazyPointer) {
----------------
ahmedbougacha wrote:
Maybe pass the symbol string directly, since the implementations make their own symbol references anyway? That way you also don't have to do the awkward de-mangle/re-mangle dance with the +1
https://github.com/llvm/llvm-project/pull/73686
More information about the libcxx-commits
mailing list