aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/FrontendTool
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2018-11-02 14:54:07 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2018-11-02 14:54:07 +0000
commite40901806fec4ea87e00cd408f8ca31c5868de0c (patch)
treec95f4e8bcc44e5c9343a630516a41b9f4317e9a0 /clang/lib/FrontendTool
parentc8325b4b597aceb07edf5b3caefdebc59a263683 (diff)
downloadllvm-e40901806fec4ea87e00cd408f8ca31c5868de0c.zip
llvm-e40901806fec4ea87e00cd408f8ca31c5868de0c.tar.gz
llvm-e40901806fec4ea87e00cd408f8ca31c5868de0c.tar.bz2
[OPENMP][NVPTX]Improve emission of the globalized variables for
target/teams/distribute regions. Target/teams/distribute regions exist for all the time the kernel is executed. Thus, if the variable is declared in their context and then escape it, we can allocate global memory statically instead of allocating it dynamically. Patch captures all the globalized variables in target/teams/distribute contexts, merges them into the records, one per each target region. Those records are then joined into the union, one per compilation unit (to save the global memory). Those units are organized into 2 x dimensional arrays, where the first dimension is the number of blocks per SM and the second one is the number of SMs. Runtime functions manage this global memory space between the executing teams. llvm-svn: 345978
Diffstat (limited to 'clang/lib/FrontendTool')
0 files changed, 0 insertions, 0 deletions