[all-commits] [llvm/llvm-project] 9355d1: [ORC] Hold ResourceTracker in MaterializationRespo...

lhames via All-commits all-commits at lists.llvm.org
Wed Dec 1 22:37:05 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 9355d115975c78bb992fd1e79ba0124d67ce59c5
      https://github.com/llvm/llvm-project/commit/9355d115975c78bb992fd1e79ba0124d67ce59c5
  Author: Lang Hames <lhames at gmail.com>
  Date:   2021-12-02 (Thu, 02 Dec 2021)

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

  Log Message:
  -----------
  [ORC] Hold ResourceTracker in MaterializationResponsibility.

This keeps the tracker alive for the lifetime of the MR. This is needed so that
we can check whether the tracker has become defunct before posting results (or
failure) for the MR.


  Commit: 9eb591f0ace7275ce8c3be190975e10aaa142171
      https://github.com/llvm/llvm-project/commit/9eb591f0ace7275ce8c3be190975e10aaa142171
  Author: Lang Hames <lhames at gmail.com>
  Date:   2021-12-02 (Thu, 02 Dec 2021)

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

  Log Message:
  -----------
  [ORC] Only use JITDylib::GeneratorsMutex while running generators.

GeneratorsMutex should prevent lookups from proceeding through the
generators of a single JITDylib concurrently (since this could
result in redundant attempts to generate definitions). Mutation of
the generators list itself should be done under the session lock.


  Commit: 758d54b462ffc480d6cb860984b8aa062925a396
      https://github.com/llvm/llvm-project/commit/758d54b462ffc480d6cb860984b8aa062925a396
  Author: Lang Hames <lhames at gmail.com>
  Date:   2021-12-02 (Thu, 02 Dec 2021)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/Orc/Core.h
    M llvm/lib/ExecutionEngine/Orc/Core.cpp
    M llvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp

  Log Message:
  -----------
  [ORC] Add support for removing JITDylibs.

This allows JITDylibs to be removed from the ExecutionSession. Calling
ExecutionSession::removeJITDylib will disconnect the JITDylib from the
ExecutionSession and clear it (removing all trackers associated with it). The
JITDylib object will then be destroyed as soon as the last JITDylibSP pointing
at it is destroyed.


Compare: https://github.com/llvm/llvm-project/compare/da067ed569e0...758d54b462ff


More information about the All-commits mailing list