This patch changes the bits used to specify the map types according to the latest version of the libomptarget document and add the support for zero size array section when pointers are being implicitly mapped. This completes the missing new 4.5 map semantics.
Details
- Reviewers
kkwli0 arpith-jacob carlo.bertolli ABataev hfinkel - Commits
- rG6782e944d2fc: [OpenMP] Adjust map type bits according to latest spec and use zero size array…
rC270868: [OpenMP] Adjust map type bits according to latest spec and use zero size array…
rL270868: [OpenMP] Adjust map type bits according to latest spec and use zero size…
Diff Detail
Event Timeline
lib/CodeGen/CGOpenMPRuntime.cpp | ||
---|---|---|
4824–4828 | I think multiple arguments for the same mapped/privatized decls must not be passed to runtime lib at all. Do we really need it? |
lib/CodeGen/CGOpenMPRuntime.cpp | ||
---|---|---|
4824–4828 | The question is not answered yet. |
lib/CodeGen/CGOpenMPRuntime.cpp | ||
---|---|---|
4824–4828 | Sorry Alexey, forgot to address this one. Right now we support maps of patters like (you can find some of this patters in the tests for map clause) S.p1->p2->p3, or S.p[3][0:N] where S.p is an array of pointers. Each individual pointer requires its own map but have to be bound by the runtime to the same base declaration S so that on the device the code can properly dereference S to get to the pointers. This flag is used to signal that. |
I think multiple arguments for the same mapped/privatized decls must not be passed to runtime lib at all. Do we really need it?