aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
diff options
context:
space:
mode:
authorJoachim Jenke <jenke@itc.rwth-aachen.de>2023-11-21 18:36:12 +0100
committerJoachim Jenke <jenke@itc.rwth-aachen.de>2023-11-21 18:36:12 +0100
commitf5e50b21da0cb543064b2d0b9304ce0b368cf2bb (patch)
tree292436a41d505238619ffb06aed33e37804775eb /llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
parent8169c157d5aaee67f6a5b13ca82d09e1b2848051 (diff)
downloadllvm-f5e50b21da0cb543064b2d0b9304ce0b368cf2bb.zip
llvm-f5e50b21da0cb543064b2d0b9304ce0b368cf2bb.tar.gz
llvm-f5e50b21da0cb543064b2d0b9304ce0b368cf2bb.tar.bz2
[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
Diffstat (limited to 'llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp')
0 files changed, 0 insertions, 0 deletions