<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/clang/test/CIR/CodeGen/array.cpp, branch main</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] Re-land: Recognize constant aggregate initialization of auto vars (#167033)</title>
<updated>2025-11-10T18:51:21+00:00</updated>
<author>
<name>Andy Kaylor</name>
<email>akaylor@nvidia.com</email>
</author>
<published>2025-11-10T18:51:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b639b6a1c529a476ca7d3fed280de9adf2d02ce5'/>
<id>b639b6a1c529a476ca7d3fed280de9adf2d02ce5</id>
<content type='text'>
This adds code that was previously missing from emitAutoVarAlloca to
identify when an aggregate auto var is being emitted with a constant
initializer, and the associated code that is called from emitAutoVarInit
to store the constant. This allows significantly more efficient
initialization.

This was previously committed in
https://github.com/llvm/llvm-project/pull/166850 but that change
contained an unintended modification to an unrelated test.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds code that was previously missing from emitAutoVarAlloca to
identify when an aggregate auto var is being emitted with a constant
initializer, and the associated code that is called from emitAutoVarInit
to store the constant. This allows significantly more efficient
initialization.

This was previously committed in
https://github.com/llvm/llvm-project/pull/166850 but that change
contained an unintended modification to an unrelated test.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[CIR] Recognize constant aggregate initialization of auto vars (#166850)"</title>
<updated>2025-11-07T20:26:35+00:00</updated>
<author>
<name>Aiden Grossman</name>
<email>aidengrossman@google.com</email>
</author>
<published>2025-11-07T20:26:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ec21e58a30b2855e1e0140d417031281f2675a54'/>
<id>ec21e58a30b2855e1e0140d417031281f2675a54</id>
<content type='text'>
This reverts commit 5fc1b74af52093cd5229ba0e1c368d41735bb990.

This broke premerge (and premerge was failing on the patch itself):
1. https://lab.llvm.org/staging/#/builders/192/builds/10053
2. https://lab.llvm.org/staging/#/builders/21/builds/8268
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 5fc1b74af52093cd5229ba0e1c368d41735bb990.

This broke premerge (and premerge was failing on the patch itself):
1. https://lab.llvm.org/staging/#/builders/192/builds/10053
2. https://lab.llvm.org/staging/#/builders/21/builds/8268
</pre>
</div>
</content>
</entry>
<entry>
<title>[CIR] Recognize constant aggregate initialization of auto vars (#166850)</title>
<updated>2025-11-07T19:25:35+00:00</updated>
<author>
<name>Andy Kaylor</name>
<email>akaylor@nvidia.com</email>
</author>
<published>2025-11-07T19:25:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5fc1b74af52093cd5229ba0e1c368d41735bb990'/>
<id>5fc1b74af52093cd5229ba0e1c368d41735bb990</id>
<content type='text'>
This adds code that was previously missing from emitAutoVarAlloca to
identify when an aggregate auto var is being emitted with a constant
initializer, and the associated code that is called from emitAutoVarInit
to store the constant. This allows significantly more efficient
initialization.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds code that was previously missing from emitAutoVarAlloca to
identify when an aggregate auto var is being emitted with a constant
initializer, and the associated code that is called from emitAutoVarInit
to store the constant. This allows significantly more efficient
initialization.</pre>
</div>
</content>
</entry>
<entry>
<title>[CIR] Add inline function attributes (#162866)</title>
<updated>2025-10-17T05:02:09+00:00</updated>
<author>
<name>Morris Hafner</name>
<email>mmha@users.noreply.github.com</email>
</author>
<published>2025-10-17T05:02:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4aba5edd4945a9b5c44788e08a07b0af513bad00'/>
<id>4aba5edd4945a9b5c44788e08a07b0af513bad00</id>
<content type='text'>
Unlike the incubator, this adds the inline attribute directly to FuncOp
instead of adding the ExtraFnAttr dict.

This adds three new optional keywords to CIR: inline_always,
inline_never and inline_hint. Just like in OGCG -O0 implies inline_never
on functions withoutt the C++ `inline` keyword and no other
inlining-related attribute.

This patch also adapts all tests that use functions so they account for
LLVM attributes being attached now.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Unlike the incubator, this adds the inline attribute directly to FuncOp
instead of adding the ExtraFnAttr dict.

This adds three new optional keywords to CIR: inline_always,
inline_never and inline_hint. Just like in OGCG -O0 implies inline_never
on functions withoutt the C++ `inline` keyword and no other
inlining-related attribute.

This patch also adapts all tests that use functions so they account for
LLVM attributes being attached now.</pre>
</div>
</content>
</entry>
<entry>
<title>[CIR] Clean up ptr_stride assembly format (#162138)</title>
<updated>2025-10-06T19:58:14+00:00</updated>
<author>
<name>Henrich Lauko</name>
<email>xlauko@mail.muni.cz</email>
</author>
<published>2025-10-06T19:58:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8252b49b41b6778edc24ad9d6501c398a01c0b36'/>
<id>8252b49b41b6778edc24ad9d6501c398a01c0b36</id>
<content type='text'>
This mirrors changes from https://github.com/llvm/clangir/pull/1933</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This mirrors changes from https://github.com/llvm/clangir/pull/1933</pre>
</div>
</content>
</entry>
<entry>
<title>[CIR] Refactor cir.cast to use uniform assembly form w/o parens, commas (#161431)</title>
<updated>2025-10-01T08:44:05+00:00</updated>
<author>
<name>Henrich Lauko</name>
<email>xlauko@mail.muni.cz</email>
</author>
<published>2025-10-01T08:44:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=57b1b254297ed2d2fd9560e6a5eef0c44918223a'/>
<id>57b1b254297ed2d2fd9560e6a5eef0c44918223a</id>
<content type='text'>
This mirrors incubator changes from https://github.com/llvm/clangir/pull/1922</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This mirrors incubator changes from https://github.com/llvm/clangir/pull/1922</pre>
</div>
</content>
</entry>
<entry>
<title>[CIR] Upstream support Agg init with lvalue ComplexType (#159974)</title>
<updated>2025-09-23T19:07:55+00:00</updated>
<author>
<name>Amr Hesham</name>
<email>amr96@programmer.net</email>
</author>
<published>2025-09-23T19:07:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2d6a6714f36907459d184b1a9350ae0e950f360a'/>
<id>2d6a6714f36907459d184b1a9350ae0e950f360a</id>
<content type='text'>
Upstream the support of Agg init with lvalue ComplexType

Issue: https://github.com/llvm/llvm-project/issues/141365</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Upstream the support of Agg init with lvalue ComplexType

Issue: https://github.com/llvm/llvm-project/issues/141365</pre>
</div>
</content>
</entry>
<entry>
<title>[CIR] Use zero-initializer for partial array fills (#154161)</title>
<updated>2025-08-19T19:14:05+00:00</updated>
<author>
<name>Andy Kaylor</name>
<email>akaylor@nvidia.com</email>
</author>
<published>2025-08-19T19:14:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6747139bc2e43ec90ab547c7a10965ced4637d11'/>
<id>6747139bc2e43ec90ab547c7a10965ced4637d11</id>
<content type='text'>
If an array initializer list leaves eight or more elements that require
zero fill, we had been generating an individual zero element for every
one of them. This change instead follows the behavior of classic
codegen, which creates a constant structure with the specified elements
followed by a zero-initializer for the trailing zeros.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If an array initializer list leaves eight or more elements that require
zero fill, we had been generating an individual zero element for every
one of them. This change instead follows the behavior of classic
codegen, which creates a constant structure with the specified elements
followed by a zero-initializer for the trailing zeros.</pre>
</div>
</content>
</entry>
<entry>
<title>[CIR] Use a loop for array initialization (#153499)</title>
<updated>2025-08-13T23:14:32+00:00</updated>
<author>
<name>Andy Kaylor</name>
<email>akaylor@nvidia.com</email>
</author>
<published>2025-08-13T23:14:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f2d76b58f8f7b96bb8227fa55ea0ad53e53368bc'/>
<id>f2d76b58f8f7b96bb8227fa55ea0ad53e53368bc</id>
<content type='text'>
This updates the array initialization loop to use a do..while loop
rather than a fully serialized initialization. It also allows the
initialization of destructed objects when exception handling is not
enabled.

Array initialization when exception handling is enabled remains
unimplemented, but more precise messages are now emitted.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This updates the array initialization loop to use a do..while loop
rather than a fully serialized initialization. It also allows the
initialization of destructed objects when exception handling is not
enabled.

Array initialization when exception handling is enabled remains
unimplemented, but more precise messages are now emitted.</pre>
</div>
</content>
</entry>
<entry>
<title>[CIR] Add support for function linkage and visibility (#145600)</title>
<updated>2025-06-25T17:59:30+00:00</updated>
<author>
<name>Andy Kaylor</name>
<email>akaylor@nvidia.com</email>
</author>
<published>2025-06-25T17:59:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1e45ea12db5e4ce545576270f846aa0bc06c5680'/>
<id>1e45ea12db5e4ce545576270f846aa0bc06c5680</id>
<content type='text'>
This change adds support for function linkage and visibility and related
attributes. Most of the test changes are generalizations to allow
'dso_local' to be accepted where we aren't specifically testing for it.
Some tests based on CIR inputs have been updated to add 'private' to
function declarations where required by newly supported interfaces.

The dso-local.c test has been updated to add specific tests for
dso_local being set correctly, and a new test, func-linkage.cpp tests
other linkage settings.

This change sets `comdat` correctly in CIR, but it is not yet applied to
functions when lowering to LLVM IR. That will be handled in a later
change.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change adds support for function linkage and visibility and related
attributes. Most of the test changes are generalizations to allow
'dso_local' to be accepted where we aren't specifically testing for it.
Some tests based on CIR inputs have been updated to add 'private' to
function declarations where required by newly supported interfaces.

The dso-local.c test has been updated to add specific tests for
dso_local being set correctly, and a new test, func-linkage.cpp tests
other linkage settings.

This change sets `comdat` correctly in CIR, but it is not yet applied to
functions when lowering to LLVM IR. That will be handled in a later
change.</pre>
</div>
</content>
</entry>
</feed>
