[all-commits] [llvm/llvm-project] 86787f: [ORC] Add debug logging to JITDylib::addDependencies.

lhames via All-commits all-commits at lists.llvm.org
Tue Feb 11 12:56:57 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 86787f159a0737662a8a3086a9b03223ff839dd2
      https://github.com/llvm/llvm-project/commit/86787f159a0737662a8a3086a9b03223ff839dd2
  Author: Lang Hames <lhames at gmail.com>
  Date:   2020-02-11 (Tue, 11 Feb 2020)

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

  Log Message:
  -----------
  [ORC] Add debug logging to JITDylib::addDependencies.


  Commit: 7a6ae494c522e91f56c91a27045ebfdcbd7327fc
      https://github.com/llvm/llvm-project/commit/7a6ae494c522e91f56c91a27045ebfdcbd7327fc
  Author: Lang Hames <lhames at gmail.com>
  Date:   2020-02-11 (Tue, 11 Feb 2020)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h

  Log Message:
  -----------
  [JITLink] Add an assertion that block removal leaves no dangling symbols.


  Commit: ca6f58486ffda249a4330f5a9e20266ea8a40806
      https://github.com/llvm/llvm-project/commit/ca6f58486ffda249a4330f5a9e20266ea8a40806
  Author: Lang Hames <lhames at gmail.com>
  Date:   2020-02-11 (Tue, 11 Feb 2020)

  Changed paths:
    M llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
    A llvm/test/ExecutionEngine/JITLink/X86/LocalDependencyPropagation.s

  Log Message:
  -----------
  [ORC] Fix symbol dependence propagation algorithm in ObjectLinkingLayer.

ObjectLinkingLayer was not correctly propagating dependencies through local
symbols within an object. This could cause symbol lookup to return before a
searched-for symbol is ready if the following conditions are met:
(1) The definition of the symbol being searched for transitively depends on a
    local symbol within the same object, and that local symbol in turn
    transitively depends on an external symbol provided by some other module
    in the JIT.
(2) Concurrent compilation is enabled.
(3) Thread scheduling causes the lookup of the searched-for symbol to return
    before all transitive dependencies of the looked-up symbol are emitted.

This bug was found by inspection and has not been observed in practice.

A jitlink test case has been added to verify that symbol dependencies are
correctly propagated through local symbol definitions.


Compare: https://github.com/llvm/llvm-project/compare/2d4f80f78aa5...ca6f58486ffd


More information about the All-commits mailing list