================
@@ -3287,18 +3296,38 @@ void
LoweringPreparePass::buildCUDARegisterVars(cir::CIRBaseBuilderTy &builder,
llvm_unreachable("Texture registration NYI");
}
- if (regAttr.getIsManaged())
- llvm_unreachable("Managed variable registration NYI");
+ // External managed variables are registered by their defining TU.
+ if (regAttr.getIsManaged() && global.isDeclaration())
+ continue;
GlobalOp deviceNameStr = makeConstantString(regAttr.getDeviceSideName());
mlir::Value deviceName = builder.createBitcast(
builder.createGetGlobal(deviceNameStr), voidPtrTy);
mlir::Value hostVar =
builder.createBitcast(builder.createGetGlobal(global), voidPtrTy);
+ llvm::TypeSize size = dataLayout.getTypeAllocSize(global.getSymType());
+
+ if (regAttr.getIsManaged()) {
+ llvm::StringRef name = global.getSymName();
+ assert(name.ends_with(".managed") &&
+ "HIP managed variables not transformed");
----------------
aobolensk wrote:
Yes, see above
https://github.com/llvm/llvm-project/pull/230910
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits