[llvm-branch-commits] [flang] [mlir] [mlir][OpenMP][flang] make private variable allocation implicit in omp.private (PR #124019)
Kareem Ergawy via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu Jan 23 03:33:43 PST 2025
================
@@ -55,15 +55,19 @@ class MapsForPrivatizedSymbolsPass
std::underlying_type_t<llvm::omp::OpenMPOffloadMappingFlags>>(
llvm::omp::OpenMPOffloadMappingFlags::OMP_MAP_TO);
Operation *definingOp = var.getDefiningOp();
- auto declOp = llvm::dyn_cast_or_null<hlfir::DeclareOp>(definingOp);
- assert(declOp &&
- "Expected defining Op of privatized var to be hlfir.declare");
+ assert(definingOp &&
+ "Privatizing a block argument without any hlfir.declare");
+ Value varPtr = var;
// We want the first result of the hlfir.declare op because our goal
// is to map the descriptor (fir.box or fir.boxchar) and the first
// result for hlfir.declare is the descriptor if a the symbol being
// decalred needs a descriptor.
- Value varPtr = declOp.getBase();
+ // Some types are boxed immediately before privatization. These have other
+ // operations in between the privatization and the declaration. It is safe
+ // to use var directly here because they will be boxed anyay.
----------------
ergawy wrote:
```suggestion
// to use var directly here because they will be boxed anyway.
```
https://github.com/llvm/llvm-project/pull/124019
More information about the llvm-branch-commits
mailing list