[PATCH] D119657: [OpenMP][mlir] Lowering for omp.atomic.update
Shraiysh via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 15 07:05:08 PST 2022
shraiysh requested review of this revision.
shraiysh added a comment.
Requesting review again, because added translation for multiple operations in update region.
================
Comment at: mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp:992
+ LLVM::ModuleTranslation &moduleTranslation) {
+ // Boilerplate.
+ llvm::OpenMPIRBuilder *ompBuilder = moduleTranslation.getOpenMPBuilder();
----------------
ftynse wrote:
> shraiysh wrote:
> > ftynse wrote:
> > > This comment is not helpful, we can see it is boilerplate. I would rather have most of it factored out into a function like `getOpenMPLoc(IRBuilderBase &)`.
> > For the function `getOpenMPLoc`, we would need `opInst` and `moduleTranslation` too. Plus, `llvm::OpenMPIRBuilder::LocationDescription` doesn't have a copy constructor, so that would also have to be passed. Also, the `ompBuilder` is used later in this function, so that cannot be pushed into the function. At this point, a function like the following doesn't feel like it is worth it. I have removed the comment as suggested. Let me know if you have any suggestions for an alternative.
> > ```getOpenMPLoc(Operation &opInst, llvm::IRBuilderBase &builder, LLVM::ModuleTranslation moduleTranslation, llvm::OpenMPIRBuilder::LocationDescription &ompLoc)```
> I don't have a problem with multi-argument signatures. `ModuleTranslation` needs to be passed by reference as well. Can't we just make LocationDescription copy-constructible (or movable)?
Now the constructor directly accepts builder, so this is not needed. Thanks for the discussion.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D119657/new/
https://reviews.llvm.org/D119657
More information about the llvm-commits
mailing list