Commit d7e185c
authored
[OMPIRBuilder] - Handle dependencies in
This patch handles dependencies specified by the `depend` clause on an
OpenMP target construct. It does this much the same way clang does it by
materializing an OpenMP `task` that is tagged with the dependencies.
The following functions are relevant to this patch -
1) `createTarget` - This function itself is largely unchanged except
that it now accepts a vector of `DependData` objects that it simply
forwards to `emitTargetCall`
2) `emitTargetCall` - This function has changed now to check if an outer
target-task needs to be materialized (i.e if `target` construct has
`nowait` or has `depend` clause). If yes, it calls `emitTargetTask` to
do all the heavy lifting for creating and dispatching the task.
3) `emitTargetTask` - Bulk of the change is here. See the large comment
explaining what it does at the beginning of this functioncreateTarget (llvm#93977)1 parent 9da221d commit d7e185c
File tree
5 files changed
+730
-53
lines changed- llvm
- include/llvm/Frontend/OpenMP
- lib/Frontend/OpenMP
- mlir
- lib/Target/LLVMIR/Dialect/OpenMP
- test/Target/LLVMIR
- offload/test/offloading/fortran
5 files changed
+730
-53
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2322 | 2322 | | |
2323 | 2323 | | |
2324 | 2324 | | |
| 2325 | + | |
| 2326 | + | |
| 2327 | + | |
| 2328 | + | |
| 2329 | + | |
| 2330 | + | |
| 2331 | + | |
| 2332 | + | |
| 2333 | + | |
| 2334 | + | |
| 2335 | + | |
| 2336 | + | |
| 2337 | + | |
| 2338 | + | |
| 2339 | + | |
| 2340 | + | |
| 2341 | + | |
| 2342 | + | |
| 2343 | + | |
| 2344 | + | |
2325 | 2345 | | |
2326 | 2346 | | |
2327 | 2347 | | |
| |||
2805 | 2825 | | |
2806 | 2826 | | |
2807 | 2827 | | |
| 2828 | + | |
| 2829 | + | |
2808 | 2830 | | |
2809 | 2831 | | |
2810 | 2832 | | |
| |||
2813 | 2835 | | |
2814 | 2836 | | |
2815 | 2837 | | |
2816 | | - | |
| 2838 | + | |
| 2839 | + | |
2817 | 2840 | | |
2818 | 2841 | | |
2819 | 2842 | | |
| |||
0 commit comments