ORC JIT Weekly #20 -- JITLink moves to TargetProcessControl.

Hi All,

This week llvm-jitlink moved to the TargetProcessControl API for memory allocation and access, which will simplify the switch to out-of-process execution once an OrcV2 remote TargetProcessControl implementation is available (which should hopefully be this week).

JITLink and llvm-jitlink also received some minor bug fixes:

  • MachO TLV relocations will now generate a sensible error instead of hitting an llvm_unreachable.
  • MachO “was private extern” symbols are now set to the correct scope (local). This was causing spurious “unexpected definition” errors in ORC for objects that had been generated with “ld -r”.
  • llvm-jitlink’s harness mode will no longer auto-demote unreferenced externs, as this breaks multi-file tests in -harness mode if there are references between symbols in the test files.

Stefan Granitz has contributed an OrcRemoteTargetClient based JITLinkMemoryManager along with a new example showing it off in https://reviews.llvm.org/D85919. The demo is very neat, and the timing on this could not have been better as his implementation can be reused to speed up the implementation of the new remote target process control APIs. Thanks very much Stefan!