[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 cfe-commits
cfe-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/cfe-commits/attachments/20201208/ba5fd511/attachment-0001.bin>
More information about the cfe-commits
mailing list