<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/test/Transforms/SimplifyCFG, 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>[SimplifyCFG] Transform switch to select when common bits uniquely identify one case (#145233)</title>
<updated>2025-07-02T16:16:12+00:00</updated>
<author>
<name>Gábor Spaits</name>
<email>gaborspaits1@gmail.com</email>
</author>
<published>2025-07-02T16:16:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=338fd8b12ce67eff73ed0a5c2174bee077fcbcbe'/>
<id>338fd8b12ce67eff73ed0a5c2174bee077fcbcbe</id>
<content type='text'>
Fix #141753 .

This patch introduces a new check, that tries to decide if the
conjunction of all the values uniquely identify the accepted values by
the switch.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix #141753 .

This patch introduces a new check, that tries to decide if the
conjunction of all the values uniquely identify the accepted values by
the switch.</pre>
</div>
</content>
</entry>
<entry>
<title>[SimplifyCFG] Use indexType from data layout in switch to table conversion (#146207)</title>
<updated>2025-06-28T19:00:34+00:00</updated>
<author>
<name>Andreas Jonson</name>
<email>andjo403@hotmail.com</email>
</author>
<published>2025-06-28T19:00:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=33c265ddf7f37815d38d742ea27c161aaff8931e'/>
<id>33c265ddf7f37815d38d742ea27c161aaff8931e</id>
<content type='text'>
Generate the GEP with the index type that InstCombine will cast it to but use the knowledge that the index is unsigned.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Generate the GEP with the index type that InstCombine will cast it to but use the knowledge that the index is unsigned.</pre>
</div>
</content>
</entry>
<entry>
<title>[IR][PGO] Verify invalid `MD_prof` metadata on instructions (#145576)</title>
<updated>2025-06-25T20:10:43+00:00</updated>
<author>
<name>Mircea Trofin</name>
<email>mtrofin@google.com</email>
</author>
<published>2025-06-25T20:10:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=62f8281e0842c9cefc847e1e22ec559a1a36f017'/>
<id>62f8281e0842c9cefc847e1e22ec559a1a36f017</id>
<content type='text'>
This PR places the validation of `MD_prof` instruction metadata in the Verifier.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR places the validation of `MD_prof` instruction metadata in the Verifier.</pre>
</div>
</content>
</entry>
<entry>
<title>[SimplifyCFG] Relax `cttz` cost check in `simplifySwitchOfPowersOfTwo`</title>
<updated>2025-06-24T07:06:18+00:00</updated>
<author>
<name>Antonio Frighetto</name>
<email>me@antoniofrighetto.com</email>
</author>
<published>2025-06-24T07:06:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1247fddf3676543837b71965c88f021072513c63'/>
<id>1247fddf3676543837b71965c88f021072513c63</id>
<content type='text'>
We should be able to allow `simplifySwitchOfPowersOfTwo` transform
to take place, as, on recent X86 targets, the weighted latency-size
appears to be 2. This favours computing trailing zeroes and indexing
into a smaller value table, over generating a jump table with an
indirect branch, which overall should be more efficient.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We should be able to allow `simplifySwitchOfPowersOfTwo` transform
to take place, as, on recent X86 targets, the weighted latency-size
appears to be 2. This favours computing trailing zeroes and indexing
into a smaller value table, over generating a jump table with an
indirect branch, which overall should be more efficient.
</pre>
</div>
</content>
</entry>
<entry>
<title>[SimplifyCFG] Bail out on vector GEPs in `passingValueIsAlwaysUndefined` (#142526)</title>
<updated>2025-06-04T04:37:30+00:00</updated>
<author>
<name>Yingwei Zheng</name>
<email>dtcxzyw2333@gmail.com</email>
</author>
<published>2025-06-04T04:37:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7e1fa09ce2a228c949ce4490c98f2c73ed8ada00'/>
<id>7e1fa09ce2a228c949ce4490c98f2c73ed8ada00</id>
<content type='text'>
Closes https://github.com/llvm/llvm-project/issues/142522.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes https://github.com/llvm/llvm-project/issues/142522.</pre>
</div>
</content>
</entry>
<entry>
<title>[NFCI][PromoteMem2Reg] Don't handle the first successor out of order (#142464)</title>
<updated>2025-06-03T17:26:55+00:00</updated>
<author>
<name>Vitaly Buka</name>
<email>vitalybuka@google.com</email>
</author>
<published>2025-06-03T17:26:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3cb967a2cd9784d3846072121990bdfaa89b0d15'/>
<id>3cb967a2cd9784d3846072121990bdfaa89b0d15</id>
<content type='text'>
Just for consistency, to avoid confusing conditions.

`reverse` helps to avoid tests updates as nothing is
changing for for successors count &lt;=2.

For #142461</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Just for consistency, to avoid confusing conditions.

`reverse` helps to avoid tests updates as nothing is
changing for for successors count &lt;=2.

For #142461</pre>
</div>
</content>
</entry>
<entry>
<title>[SimplifyCFG] Switch to use `paramHasNonNullAttr` (#125383)</title>
<updated>2025-06-02T04:20:13+00:00</updated>
<author>
<name>Yingwei Zheng</name>
<email>dtcxzyw2333@gmail.com</email>
</author>
<published>2025-06-02T04:20:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1e08febf0ac5c9c6669bfb5b041b42e535a53cc7'/>
<id>1e08febf0ac5c9c6669bfb5b041b42e535a53cc7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[SimplifyCFG] Only consider provenance capture in store speculation (#138548)</title>
<updated>2025-05-22T15:01:37+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2025-05-22T15:01:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=eee958285bde228df2893f70f879c1af8ec8386c'/>
<id>eee958285bde228df2893f70f879c1af8ec8386c</id>
<content type='text'>
The capture check here is to protect against concurrent accesses from
other threads. This requires the provenance to escape.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The capture check here is to protect against concurrent accesses from
other threads. This requires the provenance to escape.</pre>
</div>
</content>
</entry>
<entry>
<title>[SimplifyCFG][swifterror] Don't sink calls with swifterror params (#139015)</title>
<updated>2025-05-12T21:37:26+00:00</updated>
<author>
<name>Ellis Hoag</name>
<email>ellis.sparky.hoag@gmail.com</email>
</author>
<published>2025-05-12T21:37:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=78f0af5d895be284e4f7448fed007a04ee6a35d4'/>
<id>78f0af5d895be284e4f7448fed007a04ee6a35d4</id>
<content type='text'>
We've encountered an LLVM verification failure when building Swift with
the SimplifyCFG pass enabled. I found that
https://reviews.llvm.org/D158083 fixed this pass by preventing sinking
loads or stores of swifterror values, but it did not implement the same
protection for call or invokes.
In `Verifier.cpp`
[here](https://github.com/ellishg/llvm-project/blob/c68535581135a1513c9c4c1c7672307d4b5e616e/llvm/lib/IR/Verifier.cpp#L4360-L4364)
and
[here](https://github.com/ellishg/llvm-project/blob/c68535581135a1513c9c4c1c7672307d4b5e616e/llvm/lib/IR/Verifier.cpp#L3661-L3662)
we can see that swifterror values must also be used directly by call
instructions.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We've encountered an LLVM verification failure when building Swift with
the SimplifyCFG pass enabled. I found that
https://reviews.llvm.org/D158083 fixed this pass by preventing sinking
loads or stores of swifterror values, but it did not implement the same
protection for call or invokes.
In `Verifier.cpp`
[here](https://github.com/ellishg/llvm-project/blob/c68535581135a1513c9c4c1c7672307d4b5e616e/llvm/lib/IR/Verifier.cpp#L4360-L4364)
and
[here](https://github.com/ellishg/llvm-project/blob/c68535581135a1513c9c4c1c7672307d4b5e616e/llvm/lib/IR/Verifier.cpp#L3661-L3662)
we can see that swifterror values must also be used directly by call
instructions.</pre>
</div>
</content>
</entry>
<entry>
<title>[SimplifyCFG] Add test for addr-only capture in store speculation (NFC)</title>
<updated>2025-05-05T15:30:01+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2025-05-05T15:28:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a7bff2a1c60f0d30a1049a3658b5dbf415023f5f'/>
<id>a7bff2a1c60f0d30a1049a3658b5dbf415023f5f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
