<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Transforms/IPO, 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>[Reland][IPO] Added attributor for identifying invariant loads (#146584)</title>
<updated>2025-07-01T21:46:19+00:00</updated>
<author>
<name>zGoldthorpe</name>
<email>zgoldtho@ualberta.ca</email>
</author>
<published>2025-07-01T21:46:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f393211454a23bc06de76c00b8c2d96b72fe4530'/>
<id>f393211454a23bc06de76c00b8c2d96b72fe4530</id>
<content type='text'>
Patched and tested the `AAInvariantLoadPointer` attributor from #141800,
which identifies pointers whose loads are eligible to be marked as
`!invariant.load`.

The bug in the attributor was due to `AAMemoryBehavior` always
identifying pointers obtained from `alloca`s as having no writes. I'm
not entirely sure why `AAMemoryBehavior` behaves this way, but it seems
to be beceause it identifies the scope of an `alloca` to be limited to
only that instruction (and, certainly, no memory writes occur within the
`alloca` instructin). This patch just adds a check to disallow all loads
from `alloca` pointers from being marked `!invariant.load` (since any
well-defined program will have to write to stack pointers at some
point).</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Patched and tested the `AAInvariantLoadPointer` attributor from #141800,
which identifies pointers whose loads are eligible to be marked as
`!invariant.load`.

The bug in the attributor was due to `AAMemoryBehavior` always
identifying pointers obtained from `alloca`s as having no writes. I'm
not entirely sure why `AAMemoryBehavior` behaves this way, but it seems
to be beceause it identifies the scope of an `alloca` to be limited to
only that instruction (and, certainly, no memory writes occur within the
`alloca` instructin). This patch just adds a check to disallow all loads
from `alloca` pointers from being marked `!invariant.load` (since any
well-defined program will have to write to stack pointers at some
point).</pre>
</div>
</content>
</entry>
<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>[GlobalOpt] Revert global widening transform (#144652)</title>
<updated>2025-06-30T12:48:37+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2025-06-30T12:48:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=183acdd27985afd332463e3d9fd4a2ca46d85cf1'/>
<id>183acdd27985afd332463e3d9fd4a2ca46d85cf1</id>
<content type='text'>
Partially reverts e37d736def5b95a2710f92881b5fc8b0494d8a05.

The transform has a number of correctness and code quality issues, and
will benefit from a from-scratch re-review more than incremental fixes.

The correctness issues are hinted at in
https://github.com/llvm/llvm-project/pull/144641, but I think it needs a
larger rework to stop working on ArrayTypes and the implementation could
use some other improvements (like callInstIsMemcpy should just be
`dyn_cast&lt;MemCpyInst&gt;`). I can comment in more detail on a resubmission
of the patch.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Partially reverts e37d736def5b95a2710f92881b5fc8b0494d8a05.

The transform has a number of correctness and code quality issues, and
will benefit from a from-scratch re-review more than incremental fixes.

The correctness issues are hinted at in
https://github.com/llvm/llvm-project/pull/144641, but I think it needs a
larger rework to stop working on ArrayTypes and the implementation could
use some other improvements (like callInstIsMemcpy should just be
`dyn_cast&lt;MemCpyInst&gt;`). I can comment in more detail on a resubmission
of the patch.</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm] Don't preserve analysis results after EmbedBitcodePass (#146118)</title>
<updated>2025-06-27T19:49:20+00:00</updated>
<author>
<name>Paul Kirth</name>
<email>paulkirth@google.com</email>
</author>
<published>2025-06-27T19:49:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=23daa31341a68d404df04d9fedf7fdaaa80157f4'/>
<id>23daa31341a68d404df04d9fedf7fdaaa80157f4</id>
<content type='text'>
Expensive checks complains when we mark them as preserved. The bitcode
being embedded generally doesn't change anything important in the
module, but some things are modified under ThinLTO, like vtables under
WPD. This became a non-issue when we cloned the module, but after we had
to revert that in #145987, we need to handle this case properly.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Expensive checks complains when we mark them as preserved. The bitcode
being embedded generally doesn't change anything important in the
module, but some things are modified under ThinLTO, like vtables under
WPD. This became a non-issue when we cloned the module, but after we had
to revert that in #145987, we need to handle this case properly.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[llvm][EmbedBitcodePass] Prevent modifying the module with ThinLTO" (#145987)</title>
<updated>2025-06-27T05:35:38+00:00</updated>
<author>
<name>Paul Kirth</name>
<email>paulkirth@google.com</email>
</author>
<published>2025-06-27T05:35:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9179322447143f0d78232a6005ceb4d6655c83d8'/>
<id>9179322447143f0d78232a6005ceb4d6655c83d8</id>
<content type='text'>
Reverts llvm/llvm-project#139999

This has a reported crash in
https://github.com/llvm/llvm-project/pull/139999#issuecomment-2993622494

This PR was intended to fix an error when linking, which is
unfortunately preferable to crashing clang. For now, we'll revert and
investigate the problem.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts llvm/llvm-project#139999

This has a reported crash in
https://github.com/llvm/llvm-project/pull/139999#issuecomment-2993622494

This PR was intended to fix an error when linking, which is
unfortunately preferable to crashing clang. For now, we'll revert and
investigate the problem.</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm] Use llvm::is_contained (NFC) (#145844)</title>
<updated>2025-06-26T15:41:18+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-06-26T15:41:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3d5903c4d8a698aac1ff82b4ce3fbba264902d6c'/>
<id>3d5903c4d8a698aac1ff82b4ce3fbba264902d6c</id>
<content type='text'>
llvm::is_contained is shorter than llvm::all_of plus a lambda.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
llvm::is_contained is shorter than llvm::all_of plus a lambda.</pre>
</div>
</content>
</entry>
<entry>
<title>[Transforms] Use range-based for loops (NFC) (#145252)</title>
<updated>2025-06-25T17:08:26+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-06-25T17:08:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2a35414e9888f80a6c7073a503b0a7a13635a71a'/>
<id>2a35414e9888f80a6c7073a503b0a7a13635a71a</id>
<content type='text'>
Co-authored-by: Matt Arsenault &lt;arsenm2@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: Matt Arsenault &lt;arsenm2@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[MemProf] Update the DISubprogram linkageName for clones (#145385)</title>
<updated>2025-06-24T01:57:22+00:00</updated>
<author>
<name>Teresa Johnson</name>
<email>tejohnson@google.com</email>
</author>
<published>2025-06-24T01:57:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=90a6819cfe08da0dd9f2a06958933b07ca11ff75'/>
<id>90a6819cfe08da0dd9f2a06958933b07ca11ff75</id>
<content type='text'>
This corrects the debug information for the cloned functions so that it
contains the correct linkage name.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This corrects the debug information for the cloned functions so that it
contains the correct linkage name.</pre>
</div>
</content>
</entry>
<entry>
<title>[ExpandVariadics] Clean up intrinsic declaration lookup (NFC)</title>
<updated>2025-06-23T13:31:17+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2025-06-23T13:29:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=879a55793a2d9540e9403938e4df6a827028a3ba'/>
<id>879a55793a2d9540e9403938e4df6a827028a3ba</id>
<content type='text'>
The comment was outdated, as getDeclarationIfExists has been
introduced in the meantime.

We also only use this in one place where neither the Tys.empty()
case nor the FT is relevant, so just include the call to
getDeclarationIfExists().
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The comment was outdated, as getDeclarationIfExists has been
introduced in the meantime.

We also only use this in one place where neither the Tys.empty()
case nor the FT is relevant, so just include the call to
getDeclarationIfExists().
</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC] Add comment to describe the intention use of newly added `avail-extern-gv-in-addrspace-to-local` (#144911)</title>
<updated>2025-06-20T22:55:41+00:00</updated>
<author>
<name>Shilei Tian</name>
<email>i@tianshilei.me</email>
</author>
<published>2025-06-20T22:55:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=be7e4113c84317feda055cac68a855429e46e381'/>
<id>be7e4113c84317feda055cac68a855429e46e381</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
