<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git, branch users/wm/bs</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>Refactor backward slice condition in SliceAnalysis</title>
<updated>2025-10-17T00:33:35+00:00</updated>
<author>
<name>William Moses</name>
<email>gh@wsmoses.com</email>
</author>
<published>2025-10-17T00:33:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1bf1cb402f91f22f46e0e5ffd75bf8248dc1dbc0'/>
<id>1bf1cb402f91f22f46e0e5ffd75bf8248dc1dbc0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update SliceAnalysis.cpp</title>
<updated>2025-10-17T00:20:06+00:00</updated>
<author>
<name>William Moses</name>
<email>gh@wsmoses.com</email>
</author>
<published>2025-10-17T00:15:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0c088277a07f581a9f9099434d839973ac0861a2'/>
<id>0c088277a07f581a9f9099434d839973ac0861a2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update SliceAnalysis.h</title>
<updated>2025-10-17T00:11:21+00:00</updated>
<author>
<name>William Moses</name>
<email>gh@wsmoses.com</email>
</author>
<published>2025-10-17T00:11:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d81f2df72f11cd4434fb5de8e5603535892179c2'/>
<id>d81f2df72f11cd4434fb5de8e5603535892179c2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'main' into users/wm/bs</title>
<updated>2025-10-17T00:08:20+00:00</updated>
<author>
<name>William Moses</name>
<email>gh@wsmoses.com</email>
</author>
<published>2025-10-17T00:08:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0c81ad6d23558b9ded270387c846d2349194e1e1'/>
<id>0c81ad6d23558b9ded270387c846d2349194e1e1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[CIR] Add support for dynamic cast to void (#162905)</title>
<updated>2025-10-17T00:07:14+00:00</updated>
<author>
<name>Andy Kaylor</name>
<email>akaylor@nvidia.com</email>
</author>
<published>2025-10-17T00:07:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4d4088e2ce96f84c8c317d1a2bca55f871726860'/>
<id>4d4088e2ce96f84c8c317d1a2bca55f871726860</id>
<content type='text'>
This adds the support for dynamic cast to void in the Itanium ABI.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds the support for dynamic cast to void in the Itanium ABI.</pre>
</div>
</content>
</entry>
<entry>
<title>[AMDGPU] NFC: Add Opcode variants for TII-&gt;isMFMA* (#163874)</title>
<updated>2025-10-16T23:59:35+00:00</updated>
<author>
<name>Jeffrey Byrnes</name>
<email>jeffrey.byrnes@amd.com</email>
</author>
<published>2025-10-16T23:59:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=29146423b8dde6bbe8ae709973271536067add24'/>
<id>29146423b8dde6bbe8ae709973271536067add24</id>
<content type='text'>
Adds a couple missing variants based on opcode.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Adds a couple missing variants based on opcode.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Optimize std::{,ranges}::{fill,fill_n} for segmented iterators (#132665)</title>
<updated>2025-10-16T23:41:24+00:00</updated>
<author>
<name>Peng Liu</name>
<email>winner245@hotmail.com</email>
</author>
<published>2025-10-16T23:41:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d0cee6939a1a889b14dcfc0bb049f38063c81f9b'/>
<id>d0cee6939a1a889b14dcfc0bb049f38063c81f9b</id>
<content type='text'>
This patch optimizes `std::fill`, `std::fill_n`, `std::ranges::fill`,
and `std::ranges::fill_n` for segmented iterators, achieving substantial
performance improvements. Specifically, for `deque&lt;int&gt;` iterators, the
performance improvements are above 10x for all these algorithms. The
optimization also enables filling segmented memory of `deque&lt;int&gt;` to
approach the performance of filling contiguous memory of `vector&lt;int&gt;`.


Benchmark results comparing the before and after implementations are
provided below. For additional context, we’ve included `vector&lt;int&gt;`
results, which remain unchanged, as this patch specifically targets
segmented iterators and leaves non-segmented iterator behavior
untouched.



Fixes two subtasks outlined in #102817.

#### `fill_n`

```
-----------------------------------------------------------------------------
Benchmark                                Before            After      Speedup
-----------------------------------------------------------------------------
std::fill_n(deque&lt;int&gt;)/32              11.4 ns          2.28 ns        5.0x
std::fill_n(deque&lt;int&gt;)/50              19.7 ns          3.40 ns        5.8x
std::fill_n(deque&lt;int&gt;)/1024             391 ns          37.3 ns       10.5x
std::fill_n(deque&lt;int&gt;)/8192            3174 ns           301 ns       10.5x
std::fill_n(deque&lt;int&gt;)/65536          26504 ns          2951 ns        9.0x
std::fill_n(deque&lt;int&gt;)/1048576       407960 ns         80658 ns        5.1x
rng::fill_n(deque&lt;int&gt;)/32              14.3 ns          2.15 ns        6.6x
rng::fill_n(deque&lt;int&gt;)/50              20.2 ns          3.22 ns        6.3x
rng::fill_n(deque&lt;int&gt;)/1024             381 ns          37.8 ns       10.1x
rng::fill_n(deque&lt;int&gt;)/8192            3101 ns           294 ns       10.5x
rng::fill_n(deque&lt;int&gt;)/65536          25098 ns          2926 ns        8.6x
rng::fill_n(deque&lt;int&gt;)/1048576       394342 ns         78874 ns        5.0x
std::fill_n(vector&lt;int&gt;)/32             1.76 ns          1.72 ns        1.0x
std::fill_n(vector&lt;int&gt;)/50             3.00 ns          2.73 ns        1.1x
std::fill_n(vector&lt;int&gt;)/1024           38.4 ns          37.9 ns        1.0x
std::fill_n(vector&lt;int&gt;)/8192            258 ns           252 ns        1.0x
std::fill_n(vector&lt;int&gt;)/65536          2993 ns          2889 ns        1.0x
std::fill_n(vector&lt;int&gt;)/1048576       80328 ns         80468 ns        1.0x
rng::fill_n(vector&lt;int&gt;)/32             1.99 ns          1.35 ns        1.5x
rng::fill_n(vector&lt;int&gt;)/50             2.66 ns          2.12 ns        1.3x
rng::fill_n(vector&lt;int&gt;)/1024           37.7 ns          35.8 ns        1.1x
rng::fill_n(vector&lt;int&gt;)/8192            253 ns           250 ns        1.0x
rng::fill_n(vector&lt;int&gt;)/65536          2922 ns          2930 ns        1.0x
rng::fill_n(vector&lt;int&gt;)/1048576       79739 ns         79742 ns        1.0x
```

#### `fill`

```
--------------------------------------------------------------------------
Benchmark                              Before            After     Speedup
--------------------------------------------------------------------------
std::fill(deque&lt;int&gt;)/32              13.7 ns          2.45 ns        5.6x
std::fill(deque&lt;int&gt;)/50              21.7 ns          4.57 ns        4.7x
std::fill(deque&lt;int&gt;)/1024             367 ns          38.5 ns        9.5x
std::fill(deque&lt;int&gt;)/8192            2896 ns           247 ns       11.7x
std::fill(deque&lt;int&gt;)/65536          23723 ns          2907 ns        8.2x
std::fill(deque&lt;int&gt;)/1048576       379043 ns         79885 ns        4.7x
rng::fill(deque&lt;int&gt;)/32              13.6 ns          2.70 ns        5.0x
rng::fill(deque&lt;int&gt;)/50              23.4 ns          3.94 ns        5.9x
rng::fill(deque&lt;int&gt;)/1024             377 ns          37.9 ns        9.9x
rng::fill(deque&lt;int&gt;)/8192            2914 ns           286 ns       10.2x
rng::fill(deque&lt;int&gt;)/65536          23612 ns          2939 ns        8.0x
rng::fill(deque&lt;int&gt;)/1048576       379841 ns         80079 ns        4.7x
std::fill(vector&lt;int&gt;)/32             1.99 ns          1.79 ns        1.1x
std::fill(vector&lt;int&gt;)/50             3.05 ns          3.06 ns        1.0x
std::fill(vector&lt;int&gt;)/1024           37.6 ns          38.0 ns        1.0x
std::fill(vector&lt;int&gt;)/8192            255 ns           257 ns        1.0x
std::fill(vector&lt;int&gt;)/65536          2966 ns          2981 ns        1.0x
std::fill(vector&lt;int&gt;)/1048576       78300 ns         80348 ns        1.0x
rng::fill(vector&lt;int&gt;)/32             1.77 ns          1.75 ns        1.0x
rng::fill(vector&lt;int&gt;)/50             4.85 ns          2.31 ns        2.1x
rng::fill(vector&lt;int&gt;)/1024           39.6 ns          36.1 ns        1.1x
rng::fill(vector&lt;int&gt;)/8192            238 ns           251 ns        0.9x
rng::fill(vector&lt;int&gt;)/65536          2941 ns          2918 ns        1.0x
rng::fill(vector&lt;int&gt;)/1048576       80497 ns         80442 ns        1.0x
```

---------

Co-authored-by: Louis Dionne &lt;ldionne.2@gmail.com&gt;
Co-authored-by: A. Jiang &lt;de34@live.cn&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch optimizes `std::fill`, `std::fill_n`, `std::ranges::fill`,
and `std::ranges::fill_n` for segmented iterators, achieving substantial
performance improvements. Specifically, for `deque&lt;int&gt;` iterators, the
performance improvements are above 10x for all these algorithms. The
optimization also enables filling segmented memory of `deque&lt;int&gt;` to
approach the performance of filling contiguous memory of `vector&lt;int&gt;`.


Benchmark results comparing the before and after implementations are
provided below. For additional context, we’ve included `vector&lt;int&gt;`
results, which remain unchanged, as this patch specifically targets
segmented iterators and leaves non-segmented iterator behavior
untouched.



Fixes two subtasks outlined in #102817.

#### `fill_n`

```
-----------------------------------------------------------------------------
Benchmark                                Before            After      Speedup
-----------------------------------------------------------------------------
std::fill_n(deque&lt;int&gt;)/32              11.4 ns          2.28 ns        5.0x
std::fill_n(deque&lt;int&gt;)/50              19.7 ns          3.40 ns        5.8x
std::fill_n(deque&lt;int&gt;)/1024             391 ns          37.3 ns       10.5x
std::fill_n(deque&lt;int&gt;)/8192            3174 ns           301 ns       10.5x
std::fill_n(deque&lt;int&gt;)/65536          26504 ns          2951 ns        9.0x
std::fill_n(deque&lt;int&gt;)/1048576       407960 ns         80658 ns        5.1x
rng::fill_n(deque&lt;int&gt;)/32              14.3 ns          2.15 ns        6.6x
rng::fill_n(deque&lt;int&gt;)/50              20.2 ns          3.22 ns        6.3x
rng::fill_n(deque&lt;int&gt;)/1024             381 ns          37.8 ns       10.1x
rng::fill_n(deque&lt;int&gt;)/8192            3101 ns           294 ns       10.5x
rng::fill_n(deque&lt;int&gt;)/65536          25098 ns          2926 ns        8.6x
rng::fill_n(deque&lt;int&gt;)/1048576       394342 ns         78874 ns        5.0x
std::fill_n(vector&lt;int&gt;)/32             1.76 ns          1.72 ns        1.0x
std::fill_n(vector&lt;int&gt;)/50             3.00 ns          2.73 ns        1.1x
std::fill_n(vector&lt;int&gt;)/1024           38.4 ns          37.9 ns        1.0x
std::fill_n(vector&lt;int&gt;)/8192            258 ns           252 ns        1.0x
std::fill_n(vector&lt;int&gt;)/65536          2993 ns          2889 ns        1.0x
std::fill_n(vector&lt;int&gt;)/1048576       80328 ns         80468 ns        1.0x
rng::fill_n(vector&lt;int&gt;)/32             1.99 ns          1.35 ns        1.5x
rng::fill_n(vector&lt;int&gt;)/50             2.66 ns          2.12 ns        1.3x
rng::fill_n(vector&lt;int&gt;)/1024           37.7 ns          35.8 ns        1.1x
rng::fill_n(vector&lt;int&gt;)/8192            253 ns           250 ns        1.0x
rng::fill_n(vector&lt;int&gt;)/65536          2922 ns          2930 ns        1.0x
rng::fill_n(vector&lt;int&gt;)/1048576       79739 ns         79742 ns        1.0x
```

#### `fill`

```
--------------------------------------------------------------------------
Benchmark                              Before            After     Speedup
--------------------------------------------------------------------------
std::fill(deque&lt;int&gt;)/32              13.7 ns          2.45 ns        5.6x
std::fill(deque&lt;int&gt;)/50              21.7 ns          4.57 ns        4.7x
std::fill(deque&lt;int&gt;)/1024             367 ns          38.5 ns        9.5x
std::fill(deque&lt;int&gt;)/8192            2896 ns           247 ns       11.7x
std::fill(deque&lt;int&gt;)/65536          23723 ns          2907 ns        8.2x
std::fill(deque&lt;int&gt;)/1048576       379043 ns         79885 ns        4.7x
rng::fill(deque&lt;int&gt;)/32              13.6 ns          2.70 ns        5.0x
rng::fill(deque&lt;int&gt;)/50              23.4 ns          3.94 ns        5.9x
rng::fill(deque&lt;int&gt;)/1024             377 ns          37.9 ns        9.9x
rng::fill(deque&lt;int&gt;)/8192            2914 ns           286 ns       10.2x
rng::fill(deque&lt;int&gt;)/65536          23612 ns          2939 ns        8.0x
rng::fill(deque&lt;int&gt;)/1048576       379841 ns         80079 ns        4.7x
std::fill(vector&lt;int&gt;)/32             1.99 ns          1.79 ns        1.1x
std::fill(vector&lt;int&gt;)/50             3.05 ns          3.06 ns        1.0x
std::fill(vector&lt;int&gt;)/1024           37.6 ns          38.0 ns        1.0x
std::fill(vector&lt;int&gt;)/8192            255 ns           257 ns        1.0x
std::fill(vector&lt;int&gt;)/65536          2966 ns          2981 ns        1.0x
std::fill(vector&lt;int&gt;)/1048576       78300 ns         80348 ns        1.0x
rng::fill(vector&lt;int&gt;)/32             1.77 ns          1.75 ns        1.0x
rng::fill(vector&lt;int&gt;)/50             4.85 ns          2.31 ns        2.1x
rng::fill(vector&lt;int&gt;)/1024           39.6 ns          36.1 ns        1.1x
rng::fill(vector&lt;int&gt;)/8192            238 ns           251 ns        0.9x
rng::fill(vector&lt;int&gt;)/65536          2941 ns          2918 ns        1.0x
rng::fill(vector&lt;int&gt;)/1048576       80497 ns         80442 ns        1.0x
```

---------

Co-authored-by: Louis Dionne &lt;ldionne.2@gmail.com&gt;
Co-authored-by: A. Jiang &lt;de34@live.cn&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[alpha.webkit.UnretainedCallArgsChecker] Treat getter on a dependent smart pointer type as safe (#161025)</title>
<updated>2025-10-16T22:15:39+00:00</updated>
<author>
<name>Ryosuke Niwa</name>
<email>rniwa@webkit.org</email>
</author>
<published>2025-10-16T22:15:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=65c895dfe084860847e9e220ff9f1b283ebcb289'/>
<id>65c895dfe084860847e9e220ff9f1b283ebcb289</id>
<content type='text'>
Add the support for recognizing smart pointer type appearing as the type
of the object pointer in CXXDependentScopeMemberExpr.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add the support for recognizing smart pointer type appearing as the type
of the object pointer in CXXDependentScopeMemberExpr.</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][LLVM] Namespace cleanup in LoopFuse (#163758)</title>
<updated>2025-10-16T22:06:05+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2025-10-16T22:06:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=62adc83c918b1b55f70e4ee33c727b040da2a9ed'/>
<id>62adc83c918b1b55f70e4ee33c727b040da2a9ed</id>
<content type='text'>
Additionally, make the `Loop` argument to `printLoop` const.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Additionally, make the `Loop` argument to `printLoop` const.</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][acc] Ensure genAllocate uses provided variable name (#163861)</title>
<updated>2025-10-16T21:49:07+00:00</updated>
<author>
<name>Razvan Lupusoru</name>
<email>razvan.lupusoru@gmail.com</email>
</author>
<published>2025-10-16T21:49:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=fdbd75de0194dbd98d7078047d99a20084b24d3d'/>
<id>fdbd75de0194dbd98d7078047d99a20084b24d3d</id>
<content type='text'>
The genAllocate API was documented to have the `varName` argument as
optional. However, when it is provided, it becomes unexpected if the
implementation does not use it. Since not all dialects have a way to
store variable names, add one in the acc dialect and use it to store
names of memref variables.

This updates the API documentation, implementation of genAllocate for
memref, and IR testing.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The genAllocate API was documented to have the `varName` argument as
optional. However, when it is provided, it becomes unexpected if the
implementation does not use it. Since not all dialects have a way to
store variable names, add one in the acc dialect and use it to store
names of memref variables.

This updates the API documentation, implementation of genAllocate for
memref, and IR testing.</pre>
</div>
</content>
</entry>
</feed>
