[all-commits] [llvm/llvm-project] 1a22f1: [ORC] Add withResourceKeyDo method to ResourceTrac...

lhames via All-commits all-commits at lists.llvm.org
Mon Dec 19 15:23:10 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 1a22f1b64679f6b6d83ba8d4e395908eee65773d
      https://github.com/llvm/llvm-project/commit/1a22f1b64679f6b6d83ba8d4e395908eee65773d
  Author: Lang Hames <lhames at gmail.com>
  Date:   2022-12-19 (Mon, 19 Dec 2022)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/Orc/Core.h

  Log Message:
  -----------
  [ORC] Add withResourceKeyDo method to ResourceTracker.

This method behaves the same as MaterializationResponsibility::withResourceKeyDo
(which now forwards to the new method): It locks the session while providing
access to the ResourceKey associated with the tracker.

Adding this method to ResourceTracker allows resources to be allocated and
tracked for a given MaterializationUnit prior to that MaterializationUnit being
materialized. E.g. Platforms can now track and remove initializers and other
symbols.


  Commit: bf6d7ca9870beb66766e2c087f5109eeb538f530
      https://github.com/llvm/llvm-project/commit/bf6d7ca9870beb66766e2c087f5109eeb538f530
  Author: Lang Hames <lhames at gmail.com>
  Date:   2022-12-19 (Mon, 19 Dec 2022)

  Changed paths:
    M llvm/examples/OrcV2Examples/LLJITWithObjectLinkingLayerPlugin/LLJITWithObjectLinkingLayerPlugin.cpp
    M llvm/include/llvm/ExecutionEngine/Orc/COFFPlatform.h
    M llvm/include/llvm/ExecutionEngine/Orc/Core.h
    M llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h
    M llvm/include/llvm/ExecutionEngine/Orc/DebuggerSupportPlugin.h
    M llvm/include/llvm/ExecutionEngine/Orc/ELFNixPlatform.h
    M llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h
    M llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
    M llvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
    M llvm/lib/ExecutionEngine/Orc/Core.cpp
    M llvm/lib/ExecutionEngine/Orc/DebugObjectManagerPlugin.cpp
    M llvm/lib/ExecutionEngine/Orc/DebuggerSupportPlugin.cpp
    M llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
    M llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
    M llvm/tools/llvm-jitlink/llvm-jitlink.cpp
    M llvm/unittests/ExecutionEngine/Orc/ResourceTrackerTest.cpp

  Log Message:
  -----------
  [ORC] Add JITDylib argument to ResourceManager notify-removing/transferring ops.

In some cases it's helpful to group trackers by JITDylib. E.g. Platform classes
may want to track initializer symbols with a `JITDylib -> Tracker -> [ Symbol ]`
map. This makes it easy to collect all symbols for the JITDylib, while still
allowing efficient removal of a single tracker. Passing the JITDylib as an
argument to ResourceManager::notifyRemovingResources and
ResourceManager::notifyTransferringResources supports such use-cases.


Compare: https://github.com/llvm/llvm-project/compare/77197b56512d...bf6d7ca9870b


More information about the All-commits mailing list