Summary:
This is the second step after D67871 to make use of abstract call sites.
In this patch the argument we associate with a abstract call site
argument can be the one in the callback callee instead of the one in the
callback broker.
Caveat: We cannot allow no-alias arguments for problematic callbacks:
As described in [1], adding no-alias (or restrict) to arguments could
break synchronization as the synchronization effect, e.g., a barrier,
does not "alias" with the pointer anymore. This disables no-alias
annotation for potentially problematic arguments until we implement the
fix described in [1].
Reviewers: sstefan1, uenoku
Subscribers: hiraditya, bollu, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D68008
[1] Compiler Optimizations for OpenMP, J. Doerfert and H. Finkel,
International Workshop on OpenMP 2018,
http://compilers.cs.uni-saarland.de/people/doerfert/par_opt18.pdfDetails
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
| llvm/lib/Transforms/IPO/Attributor.cpp | ||
|---|---|---|
| 209–219 | I couldn't understand this part. Is it sound to return an argument of the callback callee we have found first? | |
| llvm/lib/Transforms/IPO/Attributor.cpp | ||
|---|---|---|
| 209–219 | You are right. I'll add code to ensure we do not return a callback callee argument if there is not a unique one mapped to the requested call site argument. | |
I couldn't understand this part. Is it sound to return an argument of the callback callee we have found first?