[all-commits] [llvm/llvm-project] b95b15: [Flang][OpenMP] Prepare lowering for composite con...
Sergio Afonso via All-commits
all-commits at lists.llvm.org
Tue Jul 2 08:54:21 PDT 2024
Branch: refs/heads/users/skatrak/composite-lower-01-base
Home: https://github.com/llvm/llvm-project
Commit: b95b154efb2c37bd92ce948d7170c95aed68027c
https://github.com/llvm/llvm-project/commit/b95b154efb2c37bd92ce948d7170c95aed68027c
Author: Sergio Afonso <safonsof at amd.com>
Date: 2024-07-02 (Tue, 02 Jul 2024)
Changed paths:
M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/lib/Optimizer/Builder/FIRBuilder.cpp
M flang/test/Lower/OpenMP/parallel-reduction3.f90
M flang/test/Lower/OpenMP/simd.f90
M flang/test/Lower/OpenMP/wsloop-chunks.f90
M flang/test/Lower/OpenMP/wsloop-reduction-array-assumed-shape.f90
M flang/test/Lower/OpenMP/wsloop-reduction-array.f90
M flang/test/Lower/OpenMP/wsloop-reduction-array2.f90
M flang/test/Lower/OpenMP/wsloop-reduction-multiple-clauses.f90
Log Message:
-----------
[Flang][OpenMP] Prepare lowering for composite construct support
This patch performs various changes in preparation for adding lowering support
for composite constructs. In particular, the following changes are done:
- Splitting lowering for `omp.loop_nest` into its own function and update
lowering for all supported loop wrappers to not create this operation
themselves.
- Creating "wrapper" lowering functions called by their associated "standalone"
lowering functions, which also are responsible for calling the new codegen
function for `omp.loop_nest`. "Wrapper" lowering functions will later be reused
by "composite" lowering functions as well.
- Implementing the creation of a single `DataSharingProcessor` inside of
`genOMPDispatch` to be used while lowering standalone and composite
loop-associated constructs. This avoids code duplication and ensures that no
privatization-related allocations are created inside of loop wrapper regions.
- Preventing the `FirOpBuilder::getAllocaBlock` method from returning blocks of
a loop wrapper, as inserting allocations there would violate existing
requirements on the contents of a loop wrapper region.
- Removing the introduction of `fir.undef` operations as a way to keep track of
insertion points inside of the `DataSharingProcessor` to avoid leaving such
operations inside of loop wrappers.
- Updating tests broken by reordering of privatization with respect to clause
processing.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list