Further `WaitingOnGraph` performance improvements
- 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
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