[qt/clang/llvm]: Summary of bulk changes made
KDE Git Services - Bulk Change <[email protected]> Wed, 5 Aug 2026 12:12:21 +0000 (UTC)
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git repository change summary for qt/clang/llvm Pushed by mirror-service into branch 'upstream/users/skatrak/omp-func-filter-02-unreachable-targets'. Changed from 0000000000000000000000000000000000000000 to f03725767c7cbacdb1e2d07308a193e55c363924 Acknowledgement was received that this change introduces only existing code that has been pushed to another public open source repository. This change contains the following new commits: Git commit bf7b2c660260b2d77430051ad9b35681a35d05b0 by Sergio Afonso on 05/08/2026 at 10:21.. [Flang][MLIR][OpenMP] Move function filtering to the omp dialect The `FunctionFilteringPass`, which removes host-only functions when compiling for an OpenMP target device, is currently defined only for Flang. However, it implements logic that would generally be useful for other frontends that can generate OpenMP offloading code. This patch makes that transition by implementing the following changes: - It rewrites the `FunctionFilteringPass` to work on lower level non-FIR MLIR modules. - It splits off preexisting logic to check for not-yet-implemented target device features during function filtering to its own pass and it improves context detection to properly diagnostic only device code. - It delays function filtering to run at the end of the pipeline, as well as the `MarkDeclareTargetPass`. This will enable the latter to run only once in the pipeline after the `UnimplementedDeviceCheckPass` becomes no longer necessary. One side effect of these changes is that delaying the filtering will cause all following passes to process host functions that are eventually deleted. On the other hand, it minimizes divergence between host and device MLIR modules making passes such as the `DeleteUnreachableTargets` no longer necessary, as well as allowing passes to introduce new host functions without causing problems on the device. https://invent.kde.org/qt/clang/llvm/-/commit/bf7b2c660260b2d77430051ad9b35681a35d05b0 Git commit f03725767c7cbacdb1e2d07308a193e55c363924 by Sergio Afonso on 05/08/2026 at 10:23.. [Flang][OpenMP] Remove the DeleteUnreachableTargets pass The `DeleteUnreachableTargets` pass was initially added to work around a problem caused by the interaction between the function filtering and host op filtering passes and generic MLIR optimizations. Specifically, by running function and host op filtering before these optimizations, we would lose the ability to detect unreachable `omp.target` operations when compiling for the device. This would cause GPU kernels being created for them, for which no host counterpart existed. By now having moved both passes towards the end of the compilation pipeline, after FIR to LLVM lowering, removal of unreachable host and device code is no longer impacted by them. This makes the `DeleteUnreachableTargets` pass redundant. https://invent.kde.org/qt/clang/llvm/-/commit/f03725767c7cbacdb1e2d07308a193e55c363924