[PATCH] D58704: Initial (incomplete) implementation of JITLink - A replacement for RuntimeDyld.

Lang Hames via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 9 15:57:49 PDT 2019


lhames added a comment.

In D58704#1460555 <https://reviews.llvm.org/D58704#1460555>, @lhames wrote:

> - Lots of changes. Headlines:


Oops. The commit message got cut off in this update. Here it is:

  Lots of changes. Headlines:
  
  (1) Changes the way dead stripping is performed: Atoms now have a 'live' flag,
  which should be set by a pass (that may be supplied by the target or the
  client). The dead-strip algorithm propagates liveness from the original set of
  live atoms along edges to all reachable atoms, then deletes any atoms not marked
  live.
  
  (2) Weak symbol support: JITLink now supports discarding duplicate weak
  definitions (despite JITLink operating on a single file at a time) by setting a
  "should-discard" flag on definitions to be dropped. If the should-discard flag
  is set on an atom it will be discarded during dead-stripping. (Liveness flags
  are not propagated through atoms marked should-discard, to prevent them from
  spuriously keeping other atoms live).
  
  (3) New 'llvm-jitlink' tool for testing: This is the JITLink equivalent of
  llvm-rtdyld: it allows us to link object files from the command line and execute
  their contents or perform tests.
  
  (4) New JITLink based ObjectLinkingLayer in ORC: This is the JITLink equivalent
  RTDyldObjectLinkingLayer, and is used in the implementation of llvm-jitlink.
  
  (5) Most MachO/x86-64 relocations now supported. More to come before commit.


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D58704/new/

https://reviews.llvm.org/D58704





More information about the llvm-commits mailing list