| #
f5e50b21 |
| 21-Nov-2023 |
Joachim Jenke <jenke@itc.rwth-aachen.de> |
[OpenMP] Optimized trivial multiple edges from task dependency graph
From "3.1 Reducing the number of edges" of this [[ https://hal.science/hal-04136674v1/ | paper ]] - Optimization (b)
Task (depen
[OpenMP] Optimized trivial multiple edges from task dependency graph
From "3.1 Reducing the number of edges" of this [[ https://hal.science/hal-04136674v1/ | paper ]] - Optimization (b)
Task (dependency) nodes have a `successors` list built upon passed dependency. Given the following code, B will be added to A's successors list building the graph `A` -> `B` ``` // A # pragma omp task depend(out: x) {}
// B # pragma omp task depend(in: x) {} ```
In the following code, B is currently added twice to A's successor list ``` // A # pragma omp task depend(out: x, y) {}
// B # pragma omp task depend(in: x, y) {} ```
This patch removes such dupplicates by checking lastly inserted task in `A` successor list.
Authored by: Romain Pereira (rpereira-dev) Differential Revision: https://reviews.llvm.org/D158544
show more ...
|