[llvm] [BPF] Support wrapping BPF map structs into nested, single field structs (PR #144097)

Tamir Duberstein via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 13 09:28:43 PDT 2025


================
@@ -976,11 +976,21 @@ void BTFDebug::visitMapDefType(const DIType *Ty, uint32_t &TypeId) {
   if (Tag != dwarf::DW_TAG_structure_type || CTy->isForwardDecl())
     return;
 
-  // Visit all struct members to ensure pointee type is visited
+  // Visit all struct members to ensure their types are visited.
   const DINodeArray Elements = CTy->getElements();
+  // In Aya/Rust, BPF maps are wrapped into nested types. Such wrapper types
+  // always have only one element. When encountering them, we need to visit its
+  // (only) element with an assumption that it might contain either an another
----------------
tamird wrote:

I don't understand "with an assumption that it might contain either an another wrapper, or an actual map struct.". What do you mean by "assumption" here? What are you trying to say?

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


More information about the llvm-commits mailing list