[flang-commits] [flang] [llvm] [flang][cuda] share runtime type info between host and device under managed memory (PR #229213)
via flang-commits
flang-commits at lists.llvm.org
Mon Oct 5 13:47:03 PDT 2026
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff origin/main HEAD --extensions cpp,h -- flang/lib/Optimizer/Transforms/CUDA/CUFSharedTypeInfo.cpp flang-rt/lib/cuda/registration.cpp flang/include/flang/Optimizer/Builder/CUFCommon.h flang/include/flang/Runtime/CUDA/registration.h flang/lib/Optimizer/Builder/CUFCommon.cpp flang/lib/Optimizer/CodeGen/CodeGen.cpp flang/lib/Optimizer/Transforms/CUDA/CUFAddConstructor.cpp --diff_from_common_commit
``````````
:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/flang/lib/Optimizer/CodeGen/CodeGen.cpp b/flang/lib/Optimizer/CodeGen/CodeGen.cpp
index 4c9b9e1f0..b8f7c3e28 100644
--- a/flang/lib/Optimizer/CodeGen/CodeGen.cpp
+++ b/flang/lib/Optimizer/CodeGen/CodeGen.cpp
@@ -257,8 +257,7 @@ loadSharedTypeDescriptor(mlir::gpu::GPUModuleOp gpuMod,
mlir::DataLayout dataLayout(gpuMod);
// Managed globals live in the global address space on the device.
mlir::Value ptrAddr = replaceWithAddrOfOrASCast(
- rewriter, loc,
- static_cast<unsigned>(mlir::NVVM::NVVMMemorySpace::Global),
+ rewriter, loc, static_cast<unsigned>(mlir::NVVM::NVVMMemorySpace::Global),
fir::factory::getProgramAddressSpace(&dataLayout), ptrSym.getValue(),
llvmPtrTy);
return mlir::LLVM::LoadOp::create(rewriter, loc, llvmPtrTy, ptrAddr);
diff --git a/flang/lib/Optimizer/Transforms/CUDA/CUFAddConstructor.cpp b/flang/lib/Optimizer/Transforms/CUDA/CUFAddConstructor.cpp
index 1f57094d6..ba4f43067 100644
--- a/flang/lib/Optimizer/Transforms/CUDA/CUFAddConstructor.cpp
+++ b/flang/lib/Optimizer/Transforms/CUDA/CUFAddConstructor.cpp
@@ -444,8 +444,7 @@ struct CUFAddConstructor
mlir::Value end = getSectionBound("__stop_");
auto rangeFuncTy = mlir::LLVM::LLVMFunctionType::get(
voidTy, {llvmPtrTy, llvmPtrTy}, /*isVarArg=*/false);
- llvm::StringRef rangeFuncName =
- RTNAME_STRING(CUFRegisterHostMemoryRange);
+ llvm::StringRef rangeFuncName = RTNAME_STRING(CUFRegisterHostMemoryRange);
if (!mod.lookupSymbol(rangeFuncName)) {
mlir::OpBuilder::InsertionGuard guard(builder);
builder.setInsertionPointToEnd(mod.getBody());
@@ -595,7 +594,8 @@ struct CUFAddConstructor
cudaHostTypeDescAttrName);
if (!typeDescRef)
continue;
- auto typeDesc = symTab.lookup<fir::GlobalOp>(typeDescRef.getValue());
+ auto typeDesc =
+ symTab.lookup<fir::GlobalOp>(typeDescRef.getValue());
auto ptrGlobal = mod.lookupSymbol<fir::GlobalOp>(
(globalOp.getSymName() + managedPtrSuffix).str());
if (!typeDesc || !ptrGlobal)
diff --git a/flang/lib/Optimizer/Transforms/CUDA/CUFSharedTypeInfo.cpp b/flang/lib/Optimizer/Transforms/CUDA/CUFSharedTypeInfo.cpp
index 124892443..0cacacecf 100644
--- a/flang/lib/Optimizer/Transforms/CUDA/CUFSharedTypeInfo.cpp
+++ b/flang/lib/Optimizer/Transforms/CUDA/CUFSharedTypeInfo.cpp
@@ -89,7 +89,8 @@ public:
std::string unitTag = getUnitTag(mod);
mlir::OpBuilder builder(ctx);
auto ptrTy = fir::LLVMPointerType::get(ctx, mlir::IntegerType::get(ctx, 8));
- auto managed = cuf::DataAttributeAttr::get(ctx, cuf::DataAttribute::Managed);
+ auto managed =
+ cuf::DataAttributeAttr::get(ctx, cuf::DataAttribute::Managed);
llvm::SmallVector<mlir::NamedAttribute> sharedTypeDescs;
for (fir::GlobalOp typeDesc : typeDescs) {
if (!gpuSymTab.lookup(typeDesc.getSymName()))
@@ -108,8 +109,9 @@ public:
fir::HasValueOp::create(builder, typeDesc.getLoc(), zero);
gpuSymTab.insert(ptrGlobal->clone());
- ptrGlobal->setAttr(cudaHostTypeDescAttrName,
- mlir::FlatSymbolRefAttr::get(typeDesc.getSymNameAttr()));
+ ptrGlobal->setAttr(
+ cudaHostTypeDescAttrName,
+ mlir::FlatSymbolRefAttr::get(typeDesc.getSymNameAttr()));
sharedTypeDescs.emplace_back(
typeDesc.getSymNameAttr(),
mlir::FlatSymbolRefAttr::get(ptrGlobal.getSymNameAttr()));
``````````
</details>
https://github.com/llvm/llvm-project/pull/229213
More information about the flang-commits
mailing list