[clang] [llvm] [LLVM] Add GNU make jobserver support (PR #145131)
Yaxun Liu via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 1 19:20:59 PDT 2025
yxsamliu wrote:
> Sorry that I haven't commented earlier but I have only just got around to looking at this in more detail. Although, the parallel functions for `Parallel.cpp` already "batch", I would still be a bit concerned about the overhead for obtaining the job slot. Perhaps like in `ThreadPool.cpp` it should hold onto the job slot whilst there are jobs to be processed? I also see that an exponential back-off is used in `ThreadPool.cpp`. Could this be applicable also to `Parallel.cpp`?
Thanks for the detailed read. You're right. Per-task acquire adds overhead. I'll change Parallel.cpp to hold a job slot while there is work. Like ThreadPool.cpp does. We'll process tasks in a loop and release the slot when the queue is empty. I'll also add exponential backoff when no slot is available. That will avoid busy requeue and yield. This keeps behavior the same, but cuts overhead.
https://github.com/llvm/llvm-project/pull/145131
More information about the cfe-commits
mailing list