<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.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>[LSCFG][profcheck] Add dummy branch weights for the dummy switch to dead exits (#164714)</title>
<updated>2025-11-06T01:14:03+00:00</updated>
<author>
<name>Mircea Trofin</name>
<email>mtrofin@google.com</email>
</author>
<published>2025-11-06T01:14:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=77e3975236fcb47f431e3793846746103d259d81'/>
<id>77e3975236fcb47f431e3793846746103d259d81</id>
<content type='text'>
As noted in the doc comment of `handleDeadExits`​, the dummy switch is just an artifact of the constraints placed by the fact that we operate in a loop pass. Adding weights here is unnecessary, but the complexity is low, and it helps keep things easy for profile propagation verification (in a sense, the overall complexity would be higher if we special-cased this somehow).

Issue #147390</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As noted in the doc comment of `handleDeadExits`​, the dummy switch is just an artifact of the constraints placed by the fact that we operate in a loop pass. Adding weights here is unnecessary, but the complexity is low, and it helps keep things easy for profile propagation verification (in a sense, the overall complexity would be higher if we special-cased this somehow).

Issue #147390</pre>
</div>
</content>
</entry>
<entry>
<title>[LoopSimplifyCFG] Add check for missing loop preheader (#149743)</title>
<updated>2025-07-22T14:01:49+00:00</updated>
<author>
<name>Justus Klausecker</name>
<email>117751770+Justus2308@users.noreply.github.com</email>
</author>
<published>2025-07-22T14:01:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=04107209856bb39e041aa38cf40de0afa90a6b2d'/>
<id>04107209856bb39e041aa38cf40de0afa90a6b2d</id>
<content type='text'>
Closes #147869
Closes #149679

Adds a check for a missing loop preheader during analysis. This fixes a
nullptr dereference that happened whenever LoopSimplify was unable to
generate a preheader because the loop was entered by an indirectbr
instruction (as stated in the LoopSimplify.cpp doc comment).</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #147869
Closes #149679

Adds a check for a missing loop preheader during analysis. This fixes a
nullptr dereference that happened whenever LoopSimplify was unable to
generate a preheader because the loop was entered by an indirectbr
instruction (as stated in the LoopSimplify.cpp doc comment).</pre>
</div>
</content>
</entry>
<entry>
<title>[Transforms] Construct SmallVector with iterator ranges (NFC) (#136259)</title>
<updated>2025-04-18T17:27:05+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-04-18T17:27:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b2ba53172e82354e1318ae7e18c637ac2107aeca'/>
<id>b2ba53172e82354e1318ae7e18c637ac2107aeca</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[LoopSimplifyCFG] Fix SCEV invalidation after removing dead exit (#127536)</title>
<updated>2025-02-21T11:26:39+00:00</updated>
<author>
<name>Aleksandr Popov</name>
<email>42888396+aleks-tmb@users.noreply.github.com</email>
</author>
<published>2025-02-21T11:26:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=41437a6067b2f9dc8e7c458ff6417397796be31c'/>
<id>41437a6067b2f9dc8e7c458ff6417397796be31c</id>
<content type='text'>
Fixes #127534</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #127534</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][DebugInfo] Use iterator-flavour getFirstNonPHI at many call-sites (#123737)</title>
<updated>2025-01-24T13:27:56+00:00</updated>
<author>
<name>Jeremy Morse</name>
<email>jeremy.morse@sony.com</email>
</author>
<published>2025-01-24T13:27:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6292a808b3524d9ba6f4ce55bc5b9e547b088dd8'/>
<id>6292a808b3524d9ba6f4ce55bc5b9e547b088dd8</id>
<content type='text'>
As part of the "RemoveDIs" project, BasicBlock::iterator now carries a
debug-info bit that's needed when getFirstNonPHI and similar feed into
instruction insertion positions. Call-sites where that's necessary were
updated a year ago; but to ensure some type safety however, we'd like to
have all calls to getFirstNonPHI use the iterator-returning version.

This patch changes a bunch of call-sites calling getFirstNonPHI to use
getFirstNonPHIIt, which returns an iterator. All these call sites are
where it's obviously safe to fetch the iterator then dereference it. A
follow-up patch will contain less-obviously-safe changes.

We'll eventually deprecate and remove the instruction-pointer
getFirstNonPHI, but not before adding concise documentation of what
considerations are needed (very few).

---------

Co-authored-by: Stephen Tozer &lt;Melamoto@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As part of the "RemoveDIs" project, BasicBlock::iterator now carries a
debug-info bit that's needed when getFirstNonPHI and similar feed into
instruction insertion positions. Call-sites where that's necessary were
updated a year ago; but to ensure some type safety however, we'd like to
have all calls to getFirstNonPHI use the iterator-returning version.

This patch changes a bunch of call-sites calling getFirstNonPHI to use
getFirstNonPHIIt, which returns an iterator. All these call sites are
where it's obviously safe to fetch the iterator then dereference it. A
follow-up patch will contain less-obviously-safe changes.

We'll eventually deprecate and remove the instruction-pointer
getFirstNonPHI, but not before adding concise documentation of what
considerations are needed (very few).

---------

Co-authored-by: Stephen Tozer &lt;Melamoto@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[LoopSimplifyCFG] Drop no longer needed DependenceAnalysis.h include</title>
<updated>2024-03-12T15:03:18+00:00</updated>
<author>
<name>Bjorn Pettersson</name>
<email>bjorn.a.pettersson@ericsson.com</email>
</author>
<published>2024-03-12T14:19:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3238b92142c8fb70a1b2c72ee06bb47d57229dc9'/>
<id>3238b92142c8fb70a1b2c72ee06bb47d57229dc9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[NewPM] Remove LoopSimplifyCFGLegacyPass (#72930)</title>
<updated>2023-11-21T08:51:24+00:00</updated>
<author>
<name>Aiden Grossman</name>
<email>agrossman154@yahoo.com</email>
</author>
<published>2023-11-21T08:51:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=21dc3e3491f0586b2b23f440271417c81e3cbb6b'/>
<id>21dc3e3491f0586b2b23f440271417c81e3cbb6b</id>
<content type='text'>
This pass isn't used anywhere in upstream and thus has no test coverage.
For these reasons, remove it.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This pass isn't used anywhere in upstream and thus has no test coverage.
For these reasons, remove it.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[LCSSA] Remove unused ScalarEvolution argument (NFC)"</title>
<updated>2023-06-05T14:45:38+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2023-06-05T14:41:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=143ed21b26b2c68695e9f74f0ce4632b8a2e000b'/>
<id>143ed21b26b2c68695e9f74f0ce4632b8a2e000b</id>
<content type='text'>
This reverts commit 5362a0d859d8e96b3f7c0437b7866e17a818a4f7.

In preparation for reverting a dependent revision.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 5362a0d859d8e96b3f7c0437b7866e17a818a4f7.

In preparation for reverting a dependent revision.
</pre>
</div>
</content>
</entry>
<entry>
<title>[LCSSA] Remove unused ScalarEvolution argument (NFC)</title>
<updated>2023-05-02T10:17:05+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2023-05-02T10:13:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5362a0d859d8e96b3f7c0437b7866e17a818a4f7'/>
<id>5362a0d859d8e96b3f7c0437b7866e17a818a4f7</id>
<content type='text'>
After D149435, LCSSA formation no longer needs access to
ScalarEvolution, so remove the argument from the utilities.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
After D149435, LCSSA formation no longer needs access to
ScalarEvolution, so remove the argument from the utilities.
</pre>
</div>
</content>
</entry>
<entry>
<title>[Scalar] Use std::optional in LoopSimplifyCFG.cpp (NFC)</title>
<updated>2022-11-27T01:24:20+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2022-11-27T01:24:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=42c40f7e3505fa921b59a6079779f68bead8bcec'/>
<id>42c40f7e3505fa921b59a6079779f68bead8bcec</id>
<content type='text'>
This is part of an effort to migrate from llvm::Optional to
std::optional:

https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is part of an effort to migrate from llvm::Optional to
std::optional:

https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
</pre>
</div>
</content>
</entry>
</feed>
