<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/clang/test/CIR/CodeGen/loop.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] 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>
<entry>
<title>[CIR] Add alignment support for global, store, and load ops (#141163)</title>
<updated>2025-05-23T22:34:59+00:00</updated>
<author>
<name>Andy Kaylor</name>
<email>akaylor@nvidia.com</email>
</author>
<published>2025-05-23T22:34:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ea3c225786a71376ab0758cda8f3716da2469142'/>
<id>ea3c225786a71376ab0758cda8f3716da2469142</id>
<content type='text'>
This adds alignment support for GlobalOp, LoadOp, and StoreOp.

Tests which failed because cir.store/cir.load now print alignment were
updated with wildcard matches, except where the alignment was relevant
to the test. Tests which check for cir.store/cir.load in cases that
don't have explicit alignment were not updated.

New tests for alignment are alignment.c, align-load.c, and
align-store.c.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds alignment support for GlobalOp, LoadOp, and StoreOp.

Tests which failed because cir.store/cir.load now print alignment were
updated with wildcard matches, except where the alignment was relevant
to the test. Tests which check for cir.store/cir.load in cases that
don't have explicit alignment were not updated.

New tests for alignment are alignment.c, align-load.c, and
align-store.c.</pre>
</div>
</content>
</entry>
<entry>
<title>[CIR] Upstream support for range-based for loops (#138176)</title>
<updated>2025-05-01T21:47:20+00:00</updated>
<author>
<name>Andy Kaylor</name>
<email>akaylor@nvidia.com</email>
</author>
<published>2025-05-01T21:47:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a76936f1c01c7cadbce8ea6553af758d0f614b6a'/>
<id>a76936f1c01c7cadbce8ea6553af758d0f614b6a</id>
<content type='text'>
This upstreams the code needed to handle CXXForRangeStmt.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This upstreams the code needed to handle CXXForRangeStmt.</pre>
</div>
</content>
</entry>
<entry>
<title>[CIR] Upstream support for name mangling (#137094)</title>
<updated>2025-04-24T21:24:19+00:00</updated>
<author>
<name>Andy Kaylor</name>
<email>akaylor@nvidia.com</email>
</author>
<published>2025-04-24T21:24:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7d71164855fb22b48cbd65a1e372be804dc404bb'/>
<id>7d71164855fb22b48cbd65a1e372be804dc404bb</id>
<content type='text'>
We have been using the default names for global symbols to this point.
This change introduces proper name mangling for functions.

This requires introducing a CXXABI class in the CIRGenModule. Because
only target independent name mangling is handled in this patch, the
CXXABI class does not require a target-specific implementation. The
general mechanism for selecting an implementation is introduced here,
but the actual target-specific subclasses are deferred until needed.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We have been using the default names for global symbols to this point.
This change introduces proper name mangling for functions.

This requires introducing a CXXABI class in the CIRGenModule. Because
only target independent name mangling is handled in this patch, the
CXXABI class does not require a target-specific implementation. The
general mechanism for selecting an implementation is introduced here,
but the actual target-specific subclasses are deferred until needed.</pre>
</div>
</content>
</entry>
</feed>
