<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/test/Transforms/FunctionAttrs/initializes.ll, branch users/nico/python-2</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>[FunctionAttrs] Handle ConstantRange overflow in memset initializes inference (#145739)</title>
<updated>2025-07-01T13:04:52+00:00</updated>
<author>
<name>Shivam Gupta</name>
<email>shivam98.tkg@gmail.com</email>
</author>
<published>2025-07-01T13:04:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e44fbea0a17f468d45de5eaef158642f067f678c'/>
<id>e44fbea0a17f468d45de5eaef158642f067f678c</id>
<content type='text'>
Avoid constructing invalid ConstantRange when Offset + Length in memset
overflows signed 64-bit integer space. This prevents assertion failures
when inferring the initializes attribute.

Fixes #140345</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Avoid constructing invalid ConstantRange when Offset + Length in memset
overflows signed 64-bit integer space. This prevents assertion failures
when inferring the initializes attribute.

Fixes #140345</pre>
</div>
</content>
</entry>
<entry>
<title>[FunctionAttrs][IR] Fix memory attr inference for volatile mem intrinsics (#122926)</title>
<updated>2025-06-25T07:29:37+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2025-06-25T07:29:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7c38ee26d44124c93dc1553cde36837928c96d41'/>
<id>7c38ee26d44124c93dc1553cde36837928c96d41</id>
<content type='text'>
Per LangRef volatile operations can read and write inaccessible memory:

&gt; any volatile operation can read and/or modify state which is not
&gt; accessible via a regular load or store in this module

Model this by adding inaccessible memory effects in getMemoryEffects()
if the operation is volatile.

In the future, we should model volatile using operand bundles instead.

Fixes https://github.com/llvm/llvm-project/issues/120932.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Per LangRef volatile operations can read and write inaccessible memory:

&gt; any volatile operation can read and/or modify state which is not
&gt; accessible via a regular load or store in this module

Model this by adding inaccessible memory effects in getMemoryEffects()
if the operation is volatile.

In the future, we should model volatile using operand bundles instead.

Fixes https://github.com/llvm/llvm-project/issues/120932.</pre>
</div>
</content>
</entry>
<entry>
<title>[FunctionAttrs] Bail if initializes range overflows 64-bit signed int (#137053)</title>
<updated>2025-04-23T22:56:24+00:00</updated>
<author>
<name>Arthur Eubanks</name>
<email>aeubanks@google.com</email>
</author>
<published>2025-04-23T22:56:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0547e84181ff10b24d6363bbfc97f168fe245397'/>
<id>0547e84181ff10b24d6363bbfc97f168fe245397</id>
<content type='text'>
Otherwise the range doesn't make sense since we interpret it as signed.

Fixes #134115</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Otherwise the range doesn't make sense since we interpret it as signed.

Fixes #134115</pre>
</div>
</content>
</entry>
<entry>
<title>[IR] Convert from nocapture to captures(none) (#123181)</title>
<updated>2025-01-29T15:56:47+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2025-01-29T15:56:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=29441e4f5fa5f5c7709f7cf180815ba97f611297'/>
<id>29441e4f5fa5f5c7709f7cf180815ba97f611297</id>
<content type='text'>
This PR removes the old `nocapture` attribute, replacing it with the new
`captures` attribute introduced in #116990. This change is
intended to be essentially NFC, replacing existing uses of `nocapture`
with `captures(none)` without adding any new analysis capabilities.
Making use of non-`none` values is left for a followup.

Some notes:
* `nocapture` will be upgraded to `captures(none)` by the bitcode
   reader.
* `nocapture` will also be upgraded by the textual IR reader. This is to
   make it easier to use old IR files and somewhat reduce the test churn in
   this PR.
* Helper APIs like `doesNotCapture()` will check for `captures(none)`.
* MLIR import will convert `captures(none)` into an `llvm.nocapture`
   attribute. The representation in the LLVM IR dialect should be updated
   separately.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR removes the old `nocapture` attribute, replacing it with the new
`captures` attribute introduced in #116990. This change is
intended to be essentially NFC, replacing existing uses of `nocapture`
with `captures(none)` without adding any new analysis capabilities.
Making use of non-`none` values is left for a followup.

Some notes:
* `nocapture` will be upgraded to `captures(none)` by the bitcode
   reader.
* `nocapture` will also be upgraded by the textual IR reader. This is to
   make it easier to use old IR files and somewhat reduce the test churn in
   this PR.
* Helper APIs like `doesNotCapture()` will check for `captures(none)`.
* MLIR import will convert `captures(none)` into an `llvm.nocapture`
   attribute. The representation in the LLVM IR dialect should be updated
   separately.</pre>
</div>
</content>
</entry>
<entry>
<title>[FunctionAttrs] Handle zero writes in initializes inference.</title>
<updated>2025-01-18T20:01:07+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2025-01-18T20:01:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4233a15c9f8e6f77a00a5770a35b70ab8a2705c6'/>
<id>4233a15c9f8e6f77a00a5770a35b70ab8a2705c6</id>
<content type='text'>
ConstantRange's constructor asserts that the range not empty, except if
lower/upper are min or max values.

Check if the length is strictly positive instead of just non-negative so
std::nullopt is returned when the size is 0. If that's the case, the
access doesn't initialize anything.

This should fix a crash when building on macOS with ASan &amp; UBsan after
https://github.com/llvm/llvm-project/pull/97373 /
https://github.com/llvm/llvm-project/pull/117104 landed:
https://green.lab.llvm.org/job/llvm.org/job/clang-stage2-cmake-RgSan/664/console
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ConstantRange's constructor asserts that the range not empty, except if
lower/upper are min or max values.

Check if the length is strictly positive instead of just non-negative so
std::nullopt is returned when the size is 0. If that's the case, the
access doesn't initialize anything.

This should fix a crash when building on macOS with ASan &amp; UBsan after
https://github.com/llvm/llvm-project/pull/97373 /
https://github.com/llvm/llvm-project/pull/117104 landed:
https://green.lab.llvm.org/job/llvm.org/job/clang-stage2-cmake-RgSan/664/console
</pre>
</div>
</content>
</entry>
<entry>
<title>[FunctionAttrs] Add test for initializes + byval (NFC)</title>
<updated>2025-01-14T14:30:39+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2025-01-14T14:24:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2d760a139ef11b31c58fa270878585961cb67cb7'/>
<id>2d760a139ef11b31c58fa270878585961cb67cb7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Skip negative length while inferring initializes attr (#120874)</title>
<updated>2024-12-23T03:01:52+00:00</updated>
<author>
<name>Haopeng Liu</name>
<email>153236845+haopliu@users.noreply.github.com</email>
</author>
<published>2024-12-23T03:01:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8daba2c13dc3f4856d064f57a2a56dcf4ea1d7b3'/>
<id>8daba2c13dc3f4856d064f57a2a56dcf4ea1d7b3</id>
<content type='text'>
Bail out negative length while inferring initializes attr. Otherwise it
causes an assertion error:
`Attribute 'initializes' does not support unordered ranges`</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bail out negative length while inferring initializes attr. Otherwise it
causes an assertion error:
`Attribute 'initializes' does not support unordered ranges`</pre>
</div>
</content>
</entry>
<entry>
<title>Add the initializes attribute inference (#117104)</title>
<updated>2024-11-21T03:15:23+00:00</updated>
<author>
<name>Haopeng Liu</name>
<email>153236845+haopliu@users.noreply.github.com</email>
</author>
<published>2024-11-21T03:15:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4d6e69143dc449814884ac649583d3b35bc4ae91'/>
<id>4d6e69143dc449814884ac649583d3b35bc4ae91</id>
<content type='text'>
reland https://github.com/llvm/llvm-project/pull/97373 after fixing
clang tests.

Confirmed with "ninja check-llvm" and "ninja check-clang"</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
reland https://github.com/llvm/llvm-project/pull/97373 after fixing
clang tests.

Confirmed with "ninja check-llvm" and "ninja check-clang"</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[FunctionAttrs] Add the "initializes" attribute inference (#97373)"</title>
<updated>2024-11-19T09:29:36+00:00</updated>
<author>
<name>Mikhail Goncharov</name>
<email>goncharov.mikhail@gmail.com</email>
</author>
<published>2024-11-19T09:29:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f77126c549ced0db57d912bcd87145b1309843be'/>
<id>f77126c549ced0db57d912bcd87145b1309843be</id>
<content type='text'>
This reverts commit 661c593850715881d2805a59e90e6d87d8b9fbb8.

Multiple buildbot failures, e.g. https://lab.llvm.org/buildbot/#/builders/108/builds/6096
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 661c593850715881d2805a59e90e6d87d8b9fbb8.

Multiple buildbot failures, e.g. https://lab.llvm.org/buildbot/#/builders/108/builds/6096
</pre>
</div>
</content>
</entry>
<entry>
<title>[FunctionAttrs] Add the "initializes" attribute inference (#97373)</title>
<updated>2024-11-19T05:36:05+00:00</updated>
<author>
<name>Haopeng Liu</name>
<email>153236845+haopliu@users.noreply.github.com</email>
</author>
<published>2024-11-19T05:36:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=661c593850715881d2805a59e90e6d87d8b9fbb8'/>
<id>661c593850715881d2805a59e90e6d87d8b9fbb8</id>
<content type='text'>
Add the "initializes" attribute inference.

This change is expected to have ~0.09% compile time regression, which
seems acceptable for interprocedural DSE.

https://llvm-compile-time-tracker.com/compare.php?from=9f10252c4ad7cffbbcf692fa9c953698f82ac4f5&amp;to=56345c1cee4375eb5c28b8e7abf4803d20216b3b&amp;stat=instructions%3Au</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add the "initializes" attribute inference.

This change is expected to have ~0.09% compile time regression, which
seems acceptable for interprocedural DSE.

https://llvm-compile-time-tracker.com/compare.php?from=9f10252c4ad7cffbbcf692fa9c953698f82ac4f5&amp;to=56345c1cee4375eb5c28b8e7abf4803d20216b3b&amp;stat=instructions%3Au</pre>
</div>
</content>
</entry>
</feed>
