[Mlir-commits] [llvm] [mlir] [OpenMP][CodeExtractor]Add align metadata to load instructions (PR #131131)

Michael Kruse llvmlistbot at llvm.org
Mon Apr 7 04:05:36 PDT 2025


================
@@ -4437,9 +4442,21 @@ createDeviceArgumentAccessor(MapInfoData &mapData, llvm::Argument &arg,
     break;
   }
   case omp::VariableCaptureKind::ByRef: {
-    retVal = builder.CreateAlignedLoad(
+    llvm::LoadInst *loadInst = builder.CreateAlignedLoad(
         v->getType(), v,
         ompBuilder.M.getDataLayout().getPrefTypeAlign(v->getType()));
+    // Add information about alignment of objects that are mapped by reference
+    if (v->getType()->isPointerTy() && alignmentValue) {
+      llvm::MDBuilder MDB(builder.getContext());
+      loadInst->setMetadata(
+          llvm::LLVMContext::MD_align,
+          llvm::MDNode::get(builder.getContext(),
+                            MDB.createConstant(llvm::ConstantInt::get(
+                                llvm::Type::getInt64Ty(builder.getContext()),
+                                alignmentValue))));
----------------
Meinersbur wrote:

`CreateAlignedLoad` already receives alignment information. Why set `MD_align` with potentially different alignment?

https://github.com/llvm/llvm-project/pull/131131


More information about the Mlir-commits mailing list