tgt_map_types in libomptarget

All, we’re in the process of examine how to mold the proposed tgt infrastructure for our local efforts. I have one question and one side comment/rfc for the interfaces. First, in examining the latest code from the github head and the code presented in the phabricator review [http://reviews.llvm.org/D14031], it appears the the naming conventions used in the code versus those in the original documented spec are different. While this is probably a nit for those who have implemented such things for OpenMP in the past, the casual observer might get confused. If the community suggests that we change the spec to match the code, I’ll voluntary to make the changes and submit a pull request. (I also realize that the eventual code merged into the LLVM trees should probably follow the standard LLVM documentation conventions)

Our group has been doing quite a bit of brainstorming regarding the map types and what may be coming down stream in OpenMP 5.x (et.al, more general support for named address spaces). We have a specific need to annotate individual map variables with additional metadata for our local needs that is analogous what Xinmin proposed for annotated address spaces (fastmem). Is there any interest from others to add an additional tgt_map_type enum that declares an abstract “attribute”. We would also need to add a map table entry for the individual variables. At which point, one could theoretically map a variable, tag it as containing an additional metadata attribute and resolve said attribute in the runtime. Again, we would be happy to help prototype a function and subsequently submit a review+patch on top of what is currently proposed.

cheers
john

- John D. Leidel