[llvm] [offload] add handling of memory alignment to MemoryManagerTy (PR #218418)
Jan Trusiłło via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 26 03:36:58 PDT 2026
================
@@ -264,32 +281,55 @@ class MemoryManagerTy {
ODBG(OLDT_Alloc) << "Got target pointer " << *TgtPtrOrErr
<< ". Return directly.";
+ if (Alignment > 0 && !isAddrAligned(Align(Alignment), *TgtPtrOrErr)) {
+ auto AlignErr = make_error<StringError>(
+ "Allocated address is misaligned", inconvertibleErrorCode());
+ if (auto FreeErr = deleteOnDevice(*TgtPtrOrErr)) {
+ return joinErrors(std::move(FreeErr), std::move(AlignErr));
+ }
+
+ return AlignErr;
+ }
+
return *TgtPtrOrErr;
}
+ if (Alignment > 0) {
+ Size += Alignment - 1;
----------------
311Volt wrote:
It is, you first need to know the size to pick the bucket, and you don't know anything about the pointers within the buckets so you need to assume worst-case.
https://github.com/llvm/llvm-project/pull/218418
More information about the llvm-commits
mailing list