[PATCH] D157738: [OpenMP] Emit offloading entries for indirect target variables
Jon Chesterfield via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Aug 14 15:00:08 PDT 2023
JonChesterfield added a comment.
If calling an indirect function pointer on the GPU requires a table lookup (keyed by host function addresses, which I didn't think we knew at GPU compile time), and we cannot distinguish indirect function pointers from function pointers, then this feature must send _every_ indirect call on the GPU through the table search in case it hits in the table and then branch on the value if it doesn't.
So if we have a few indirect openmp functions and then we call a function which makes indirect calls of a function pointer which happened to be unrelated to this feature, it's going to search that table anyway. Say qsort on a non-inlined comparison function.
This feature, as I understand it so far, therefore induces a global slowdown on every call to an unknown function. Slow function calls are a bad thing.
What am I missing?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D157738/new/
https://reviews.llvm.org/D157738
More information about the cfe-commits
mailing list