[all-commits] [llvm/llvm-project] 30c456: [ORC] Add JITLink-compatible remote memory-manager...

Stefan Gränitz via All-commits all-commits at lists.llvm.org
Fri Aug 14 02:35:16 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 30c4561e36ea634a067bf3b7de8b4668292c0931
      https://github.com/llvm/llvm-project/commit/30c4561e36ea634a067bf3b7de8b4668292c0931
  Author: Stefan Gränitz <stefan.graenitz at gmail.com>
  Date:   2020-08-14 (Fri, 14 Aug 2020)

  Changed paths:
    M llvm/examples/OrcV2Examples/CMakeLists.txt
    A llvm/examples/OrcV2Examples/LLJITWithChildProcess/CMakeLists.txt
    A llvm/examples/OrcV2Examples/LLJITWithChildProcess/LLJITWithChildProcess.cpp
    A llvm/examples/OrcV2Examples/LLJITWithChildProcess/RemoteJITUtils.h
    M llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h
    M llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h
    M llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h

  Log Message:
  -----------
  [ORC] Add JITLink-compatible remote memory-manager and LLJITWithChildProcess example

This adds RemoteJITLinkMemoryManager is a new subclass of OrcRemoteTargetClient. It implements jitlink::JITLinkMemoryManager and targets the OrcRemoteTargetRPCAPI.

Behavior should be very similar to RemoteRTDyldMemoryManager. The essential differnce with JITLink is that allocations work in isolation from its memory manager. Thus, the RemoteJITLinkMemoryManager might be seen as "JITLink allocation factory".

RPCMMAlloc is another subclass of OrcRemoteTargetClient and implements the actual functionality. It allocates working memory on the host and target memory on the remote target. Upon finalization working memory is copied over to the tagrte address space. Finalization can be asynchronous for JITLink allocations, but I don't see that it makes a difference here.

Differential Revision: https://reviews.llvm.org/D85919


  Commit: 6bf74a924fe9312e6dc4ced20259ce25d55dd764
      https://github.com/llvm/llvm-project/commit/6bf74a924fe9312e6dc4ced20259ce25d55dd764
  Author: Stefan Gränitz <stefan.graenitz at gmail.com>
  Date:   2020-08-14 (Fri, 14 Aug 2020)

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

  Log Message:
  -----------
  [ORC] In LLLazyJIT provide public access to the CompileOnDemandLayer

This is analog to how LLJIT provides public access to all its layers.

Differential Revision: https://reviews.llvm.org/D85921


  Commit: 9a47bcae7c564bb83de659be601509241f31cc11
      https://github.com/llvm/llvm-project/commit/9a47bcae7c564bb83de659be601509241f31cc11
  Author: Stefan Gränitz <stefan.graenitz at gmail.com>
  Date:   2020-08-14 (Fri, 14 Aug 2020)

  Changed paths:
    M llvm/lib/ExecutionEngine/Orc/Layer.cpp

  Log Message:
  -----------
  [ORC][NFC] Refactor loop to determine name of init symbol in IRMaterializationUnit

This loop caused me a little headache once, because I didn't see the assigned variable is a member. The refactored version appears more readable to me.

Differential Revision: https://reviews.llvm.org/D85922


Compare: https://github.com/llvm/llvm-project/compare/339eba0805fb...9a47bcae7c56


More information about the All-commits mailing list