[all-commits] [llvm/llvm-project] 224290: [ORC] Add LazyObjectLinkingLayer, lazy-linking sup...

Lang Hames via All-commits all-commits at lists.llvm.org
Sun Nov 17 16:17:57 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 224290d44899be4614eb6795aa514103cd76e597
      https://github.com/llvm/llvm-project/commit/224290d44899be4614eb6795aa514103cd76e597
  Author: Lang Hames <lhames at gmail.com>
  Date:   2024-11-18 (Mon, 18 Nov 2024)

  Changed paths:
    A llvm/include/llvm/ExecutionEngine/Orc/LazyObjectLinkingLayer.h
    M llvm/lib/ExecutionEngine/Orc/CMakeLists.txt
    M llvm/lib/ExecutionEngine/Orc/JITLinkRedirectableSymbolManager.cpp
    A llvm/lib/ExecutionEngine/Orc/LazyObjectLinkingLayer.cpp
    A llvm/test/ExecutionEngine/JITLink/Generic/Inputs/foo-ret-42.ll
    A llvm/test/ExecutionEngine/JITLink/Generic/Inputs/var-x-42.ll
    A llvm/test/ExecutionEngine/JITLink/Generic/lazy-link.ll
    M llvm/tools/llvm-jitlink/llvm-jitlink.cpp
    M llvm/tools/llvm-jitlink/llvm-jitlink.h

  Log Message:
  -----------
  [ORC] Add LazyObjectLinkingLayer, lazy-linking support to llvm-jitlink (#116002)

LazyObjectLinkingLayer can be used to add object files that will not be linked
into the executor unless some function that they define is called at runtime.
(References to data members defined by these objects will still trigger
immediate linking)

To implement lazy linking, LazyObjectLinkingLayer uses the lazyReexports
utility to construct stubs for each function in a given object file, and an
ObjectLinkingLayer::Plugin to rename the function bodies at link-time. (Data
symbols are not renamed)

The llvm-jitlink utility is extended with a -lazy option that can be
passed before input files or archives to add them using the lazy linking
layer rather than the base ObjectLinkingLayer.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list