[Openmp-commits] [PATCH] D92853: Simplifying memory globalization from the front end to move optimizations to the middle end.Memory globalization was fully implemented in the front end. There are three runtimefunctions in Libomptarget:* __kmpc_data_sharing_push_stack*...

Jose Manuel Monsalve Diaz via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Tue Dec 8 08:31:39 PST 2020


josemonsalve2 created this revision.
josemonsalve2 requested review of this revision.
Herald added a reviewer: jdoerfert.
Herald added subscribers: llvm-commits, openmp-commits, cfe-commits, sstefan1.
Herald added projects: clang, OpenMP, LLVM.

...__kmpc_data_sharing_coalesced_push_stack* __kmpc_data_sharing_pop_stackThe front end performed a scape analysis and created a record declare with all the stackvariables. Then, based on the context (isTTD and other parameters) it would create a pushfor the size of the record, or for that size multiplied by the WARP (to globalize for thewhole WARP.This PR removes the record creation, and it simplifies the front end to be a simple runtimecall that will be later on optimized in the middle end. The middle end will be able todetermine the stack variables that do scape, and those that do not, as well as theapprorpiate merging of different globalized variablesDifferential Revision: https://reviews.llvm.org/D90670


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D92853

Files:
  clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
  clang/lib/CodeGen/CGOpenMPRuntimeGPU.h
  clang/test/OpenMP/nvptx_data_sharing.cpp
  llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
  openmp/libomptarget/deviceRTLs/common/src/data_sharing.cu
  openmp/libomptarget/deviceRTLs/interface.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D92853.310233.patch
Type: text/x-patch
Size: 37156 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20201208/ba5fd511/attachment-0001.bin>


More information about the Openmp-commits mailing list