<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/clang/test/CIR/CodeGen/bitfields.cpp, branch users/aaupov/spr/main.bolt-require-cfg-in-bat-mode</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[CIR] Fix alignment when lowering set/get bitfield operations (#148999)</title>
<updated>2025-07-18T21:13:34+00:00</updated>
<author>
<name>Andres-Salamanca</name>
<email>andrealebarbaritos@gmail.com</email>
</author>
<published>2025-07-18T21:13:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b02787d33f24d83f1d5814c578b7b0fce7156382'/>
<id>b02787d33f24d83f1d5814c578b7b0fce7156382</id>
<content type='text'>
This PR fixes incorrect alignment when lowering `set` and `getBitField`
operations to LLVM IR. The issue occurred because during lowering, the
function was being called with an alignment of 0, which caused it to
default to the alignment of the packed member. For example, if the
bitfield was packed inside a `u64i`, it would use an alignment of 8.
With this change, the generated code now matches what the classic
codegen produces.
In the assembly format, I changed to be similar to how it's done in
loadOp. If there's a better approach, please feel free to point it out.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR fixes incorrect alignment when lowering `set` and `getBitField`
operations to LLVM IR. The issue occurred because during lowering, the
function was being called with an alignment of 0, which caused it to
default to the alignment of the packed member. For example, if the
bitfield was packed inside a `u64i`, it would use an alignment of 8.
With this change, the generated code now matches what the classic
codegen produces.
In the assembly format, I changed to be similar to how it's done in
loadOp. If there's a better approach, please feel free to point it out.</pre>
</div>
</content>
</entry>
<entry>
<title>[CIR] Upstream new SetBitfieldOp for handling C and C++ struct bitfields (#147609)</title>
<updated>2025-07-10T20:16:29+00:00</updated>
<author>
<name>Andres-Salamanca</name>
<email>andrealebarbaritos@gmail.com</email>
</author>
<published>2025-07-10T20:16:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3d08a409593e8fc44bd2142a0aa1819cd37b6e73'/>
<id>3d08a409593e8fc44bd2142a0aa1819cd37b6e73</id>
<content type='text'>
This PR upstreams the `set_bitfield` operation used to assign values to
bitfield members in C and C++ struct types.
Handling of AAPCS-specific volatile bitfield semantics will be addressed
in a future PR.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR upstreams the `set_bitfield` operation used to assign values to
bitfield members in C and C++ struct types.
Handling of AAPCS-specific volatile bitfield semantics will be addressed
in a future PR.</pre>
</div>
</content>
</entry>
<entry>
<title>[CIR] Add test for parsing bitfield_info attribute (#147628)</title>
<updated>2025-07-09T21:03:47+00:00</updated>
<author>
<name>Andres-Salamanca</name>
<email>andrealebarbaritos@gmail.com</email>
</author>
<published>2025-07-09T21:03:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7563531fc935a3e07824c29cd9c870dcdd0621b0'/>
<id>7563531fc935a3e07824c29cd9c870dcdd0621b0</id>
<content type='text'>
This PR adds a test for parsing the bitfield_info attribute.
Additionally, it updates the `storage_type` and `is_signed` fields to
match the style used in the incubator ASM format guide.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR adds a test for parsing the bitfield_info attribute.
Additionally, it updates the `storage_type` and `is_signed` fields to
match the style used in the incubator ASM format guide.</pre>
</div>
</content>
</entry>
<entry>
<title>[CIR] Upstream get_bitfield operation to load bit-field members from structs (#145971)</title>
<updated>2025-07-02T23:05:19+00:00</updated>
<author>
<name>Andres-Salamanca</name>
<email>andrealebarbaritos@gmail.com</email>
</author>
<published>2025-07-02T23:05:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=717899ce8664ff62eb8b157e286cfb07b4b506d1'/>
<id>717899ce8664ff62eb8b157e286cfb07b4b506d1</id>
<content type='text'>
This PR adds support for loading bit-field members from structs using
the `get_bitfield` operation.
It enables retrieving the address of the bitfield-packed member but does
**not** yet support volatile bitfields this will be addressed in a
future PR.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR adds support for loading bit-field members from structs using
the `get_bitfield` operation.
It enables retrieving the address of the bitfield-packed member but does
**not** yet support volatile bitfields this will be addressed in a
future PR.</pre>
</div>
</content>
</entry>
<entry>
<title>[CIR] Add initial support for bitfields in structs (#142041)</title>
<updated>2025-06-20T14:03:02+00:00</updated>
<author>
<name>Andres-Salamanca</name>
<email>andrealebarbaritos@gmail.com</email>
</author>
<published>2025-06-20T14:03:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=bd36f7331a9f575272aebb9e0163194541110912'/>
<id>bd36f7331a9f575272aebb9e0163194541110912</id>
<content type='text'>
This change adds support for bitfields CIR records can now contain bit
fields.

I’ve updated the `CIRGenBitFieldInfo` comment, which originally came
from the incubator and was identical to the one in OGCodeGen, to better
reflect the current implementation.

Support for bitfields in unions big-endian architectures and `get` and
`set` operations remains unimplemented and will be addressed in a future
patch.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change adds support for bitfields CIR records can now contain bit
fields.

I’ve updated the `CIRGenBitFieldInfo` comment, which originally came
from the incubator and was identical to the one in OGCodeGen, to better
reflect the current implementation.

Support for bitfields in unions big-endian architectures and `get` and
`set` operations remains unimplemented and will be addressed in a future
patch.</pre>
</div>
</content>
</entry>
</feed>
