[clang] [CIR] Upstream new SetBitfieldOp for handling C and C++ struct bitfields (PR #147609)
Bruno Cardoso Lopes via cfe-commits
cfe-commits at lists.llvm.org
Wed Jul 9 07:55:17 PDT 2025
================
@@ -1669,6 +1669,90 @@ def GetGlobalOp : CIR_Op<"get_global",
}];
}
+//===----------------------------------------------------------------------===//
+// SetBitfieldOp
+//===----------------------------------------------------------------------===//
+
+def SetBitfieldOp : CIR_Op<"set_bitfield"> {
+ let summary = "Set the value of a bitfield member";
+ let description = [{
+ The `cir.set_bitfield` operation provides a store-like access to
+ a bit field of a record.
+
+ It expects an address of a storage where to store, a type of the storage,
+ a value being stored, a name of a bit field, a pointer to the storage in the
+ base record, a size of the storage, a size the bit field, an offset
+ of the bit field and a sign. Returns a value being stored.
+
+ A unit attribute `volatile` can be used to indicate a volatile load of the
----------------
bcardosolopes wrote:
Perhaps adding an example would also be helpful
https://github.com/llvm/llvm-project/pull/147609
More information about the cfe-commits
mailing list