On Mon, Dec 16, 2013 at 08:41:02AM +0100, Thomas Schwinge wrote: > Here is the patch I propose for gomp-4_0-branch; OK?
No. The reason for 3 separate arrays is that some of the values are always variable, some are sometimes variable (sizes), some are never variable (alignment + kind). So, if anything, the change would be to make the last array ushort instead of uchar. Plus, the change, being an ABI change, would need to be done on the trunk rather than just on gomp-4_0-branch. But, I don't have time right now to read the OpenACC standard and am not convinced whether it is actually desirable to use the same library entrypoint for OpenACC when it clearly isn't a 1:1 match in behavior. You'll need extra code to implement the forceful mapping/unmapping even when something is already mapped (OpenMP doesn't have that), also from your example it wasn't clear if GOMP_target_data/GOMP_target_data_end map to anything in OpenACC (it looked like you have separate enter and exit directives for the region rather than one with structured block, and you can supply clauses on either of them). Jakub