llvm / llvm/llvm-project

Further `WaitingOnGraph` performance improvements

Open
#190,125 2 comments 0 reactions 0 assignees View on GitHub
orcjit
Dominant language
LLVM
Stars
40.5k
Forks
18.7k
PR merge metrics
PR metrics pending

Description

[`WaitingOnGraph`](https://github.com/llvm/llvm-project/blob/e3cbd9984a78422c3799629eb6b5f7f7818c1a11/llvm/include/llvm/ExecutionEngine/Orc/WaitingOnGraph.h#L82) tracks dependencies between JIT'd symbols during materialization.

Because the dependence tracking problem is global (i.e. dependencies may occur across MaterializationResponsibility boundaries), updates may be expensive, and must be performed under the `ExecutionSession`'s global lock. `WaitingOnGraph` often shows up as one of the most expensive components in ORC (see e.g. https://github.com/llvm/llvm-project/issues/179611).

We should look at ways to improve the performance of this data structure. (See also https://github.com/llvm/llvm-project/issues/183251).

Contributor guide

Open the contributing guide

Research direction

Start with llvm/include/llvm/ExecutionEngine/Orc/WaitingOnGraph.h at the linked definition, then read the related issues 179611 and 183251 for the reported performance context. The scope is to identify and implement a concrete performance improvement to WaitingOnGraph, with completion demonstrated by improved behavior or measurements.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers, performance
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.