[flang] [llvm] [mlir] [flang][OMPIRBuilder][MLIR][llvm] Backend support for atomic control options (PR #151579)
Sergio Afonso via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 7 02:56:13 PDT 2025
================
@@ -3364,13 +3376,26 @@ convertOmpAtomicCapture(omp::AtomicCaptureOp atomicCaptureOp,
return moduleTranslation.lookupValue(yieldop.getResults()[0]);
};
+ bool isIgnoreDenormalMode = false;
+ bool isFineGrainedMemory = false;
+ bool isRemoteMemory = false;
+ if (atomicUpdateOp &&
+ atomicUpdateOp->hasAttr(atomicUpdateOp.getAtomicControlAttrName())) {
+ mlir::omp::AtomicControlAttr atomicControlAttr =
+ atomicUpdateOp.getAtomicControlAttr();
+ isIgnoreDenormalMode = atomicControlAttr.getIgnoreDenormalMode();
+ isFineGrainedMemory = atomicControlAttr.getFineGrainedMemory();
+ isRemoteMemory = atomicControlAttr.getRemoteMemory();
+ }
----------------
skatrak wrote:
Nit: We can probably refactor and reuse this logic between the two places that query this information, to avoid divergence if we eventually extend these flags.
```suggestion
void extractAtomicControlFlags(omp::AtomicUpdateOp op, bool &...) {
isIgnoreDenormalMode = false;
...
if (!op || !op->hasAttr(...))
return;
...
}
bool isIgnoreDenormalMode, isFineGrainedMemory, isRemoteMemory;
extractAtomicControlFlags(atomicUpdateOp, isIgnoreDenormalMode, isFineGrainedMemory, isRemoteMemory);
```
https://github.com/llvm/llvm-project/pull/151579
More information about the llvm-commits
mailing list