[Flang][OpenMP] Add implementation of privatisation
authorKiran Chandramohan <kiran.chandramohan@arm.com>
Mon, 11 Apr 2022 09:05:00 +0000 (09:05 +0000)
committerKiran Chandramohan <kiran.chandramohan@arm.com>
Mon, 11 Apr 2022 09:20:22 +0000 (09:20 +0000)
commit07e16a2aae68a02629cbcb34a0c0b12cb84754f8
tree888f68f0838536030b8b4a00e3ed386a68ade817
parent702d5de4380b1e1554e5b90863093c3a57f76f70
[Flang][OpenMP] Add implementation of privatisation

Privatisation creates local copies of variables in the OpenMP region.
Two functions `createHostAssociateVarClone` and `copyHostAssociateVar`
are added to create a clone of the variable for basic privatisation and to
copy the contents for first-privatisation.

Note: Tests for more data-types will be added when the fir.do_loop is
upstreamed.

This is part of the upstreaming effort from the fir-dev branch in [1].
[1] https://github.com/flang-compiler/f18-llvm-project

Reviewed By: peixin, NimishMishra

Differential Revision: https://reviews.llvm.org/D122595

Co-authored-by: Jean Perier <jperier@nvidia.com>
Co-authored-by: Eric Schweitz <eschweitz@nvidia.com>
Co-authored-by: Peter Klausler <pklausler@nvidia.com>
Co-authored-by: Valentin Clement <clementval@gmail.com>
Co-authored-by: Sourabh Singh Tomar <SourabhSingh.Tomar@amd.com>
Co-authored-by: Nimish Mishra <neelam.nimish@gmail.com>
Co-authored-by: Peixin-Qiao <qiaopeixin@huawei.com>
flang/include/flang/Lower/AbstractConverter.h
flang/lib/Lower/Bridge.cpp
flang/lib/Lower/OpenMP.cpp
flang/lib/Optimizer/Builder/FIRBuilder.cpp
flang/test/Lower/OpenMP/omp-parallel-firstprivate-clause-scalar.f90 [new file with mode: 0644]
flang/test/Lower/OpenMP/omp-parallel-private-clause.f90 [new file with mode: 0644]