[clang] [CIR] Upstream support for accessing structure members (PR #136383)

Henrich Lauko via cfe-commits cfe-commits at lists.llvm.org
Sat Apr 19 04:48:24 PDT 2025


================
@@ -1310,6 +1310,70 @@ def GetGlobalOp : CIR_Op<"get_global",
   let hasVerifier = 0;
 }
 
+//===----------------------------------------------------------------------===//
+// GetMemberOp
+//===----------------------------------------------------------------------===//
+
+def GetMemberOp : CIR_Op<"get_member"> {
+  let summary = "Get the address of a member of a record";
+  let description = [{
+    The `cir.get_member` operation gets the address of a particular named
+    member from the input record.
+
+    It expects a pointer to the base record as well as the name of the member
+    and its field index.
+
+    Example:
+    ```mlir
+    // Suppose we have a record with multiple members.
+    !s32i = !cir.int<s, 32>
+    !s8i = !cir.int<s, 32>
----------------
xlauko wrote:

```suggestion
    !s8i = !cir.int<s, 8>
```

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


More information about the cfe-commits mailing list