[Mlir-commits] [llvm] [mlir] [IR][ModRef] Introduce `errno` memory location (PR #120783)

Antonio Frighetto llvmlistbot at llvm.org
Tue Feb 11 10:25:56 PST 2025


================
@@ -2398,9 +2397,16 @@ Error BitcodeReader::parseAttributeGroupBlock() {
             B.addUWTableAttr(UWTableKind(Record[++i]));
           else if (Kind == Attribute::AllocKind)
             B.addAllocKindAttr(static_cast<AllocFnKind>(Record[++i]));
-          else if (Kind == Attribute::Memory)
-            B.addMemoryAttr(MemoryEffects::createFromIntValue(Record[++i]));
-          else if (Kind == Attribute::Captures)
+          else if (Kind == Attribute::Memory) {
+            uint64_t EncodedME = Record[++i];
+            const uint8_t Version = (EncodedME >> 56);
+            auto ME = MemoryEffects::createFromIntValue(EncodedME &
+                                                        0x00FFFFFFFFFFFFFFULL);
+            if (Version < 1)
+              ME |= MemoryEffects::errnoMemOnly(
+                  ME.getModRef(IRMemLocation::Other));
----------------
antoniofrighetto wrote:

Updated, thanks, should have introduced a test earlier. Thus, IIUC, for older versions, errno should be part of default memory.

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


More information about the Mlir-commits mailing list