[all-commits] [llvm/llvm-project] c8c86e: [ORC] Replace ORC's baked-in dependence tracking w...

Lang Hames via All-commits all-commits at lists.llvm.org
Mon Oct 20 16:00:18 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c8c86efbbb55e51597c1bd8feb2e947bc0de3422
      https://github.com/llvm/llvm-project/commit/c8c86efbbb55e51597c1bd8feb2e947bc0de3422
  Author: Lang Hames <lhames at gmail.com>
  Date:   2025-10-20 (Mon, 20 Oct 2025)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/Orc/Core.h
    A llvm/include/llvm/ExecutionEngine/Orc/WaitingOnGraph.h
    M llvm/lib/ExecutionEngine/Orc/Core.cpp
    M llvm/lib/ExecutionEngine/Orc/SimpleRemoteEPC.cpp
    M llvm/test/ExecutionEngine/JITLink/x86-64/LocalDependencyPropagation.s
    M llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt
    A llvm/unittests/ExecutionEngine/Orc/WaitingOnGraphTest.cpp

  Log Message:
  -----------
  [ORC] Replace ORC's baked-in dependence tracking with WaitingOnGraph. (#163027)

WaitingOnGraph tracks waiting-on relationships between nodes (intended
to represent symbols in an ORC program) in order to identify nodes that
are *Ready* (i.e. are not waiting on any other nodes) or have *Failed*
(are waiting on some node that cannot be produced).

WaitingOnGraph replaces ORC's baked-in data structures that were
tracking the same information (EmissionDepUnit, EmissionDepUnitInfo,
...). Isolating this information in a separate data structure simplifies
the code, allows us to unit test it, and simplifies performance testing.

The WaitingOnGraph uses several techniques to improve performance
relative to the old data structures, including symbol coalescing
("SuperNodes") and symbol keys that don't perform unnecessary reference
counting (NonOwningSymbolStringPtr).

This commit includes unit tests for common dependence-tracking issues
that have led to ORC bugs in the past.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list