[clang] [HIP] Parallelize device cc1 jobs for offload arches (PR #208254)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Jul 8 09:24:18 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-driver
Author: Yaxun (Sam) Liu (yxsamliu)
<details>
<summary>Changes</summary>
[HIP] Parallelize device cc1 jobs for offload arches
A common ROCm build can target around ten `--offload-arch=`
values. For a large single translation unit, the HIP device cc1 work
before clang-linker-wrapper can become a build-time bottleneck. Those
per-architecture jobs are independent, but the driver ran them serially,
so `--offload-jobs=` only helped the later wrapper work.
Borrow the parallel job mechanism used by clang-linker-wrapper for the
pre-wrapper HIP device cc1 jobs. HIP job construction marks eligible
compile and backend jobs with an offload parallel group. The generic
executor only consumes that opt-in metadata for adjacent jobs with
distinct bound architectures.
The parallel path is disabled for driver-side output modes and callbacks
so existing serial output handling is preserved. This is NFC for
non-offload compilation.
---
Full diff: https://github.com/llvm/llvm-project/pull/208254.diff
4 Files Affected:
- (modified) clang/include/clang/Driver/Job.h (+12-2)
- (modified) clang/lib/Driver/Compilation.cpp (+163-2)
- (modified) clang/lib/Driver/ToolChains/Clang.cpp (+22-2)
- (added) clang/test/Driver/hip-parallel-device-cc1.hip (+9)
``````````diff
The server is unavailable at this time. Please wait a few minutes before you try again.
``````````
</details>
https://github.com/llvm/llvm-project/pull/208254
More information about the cfe-commits
mailing list