<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git, branch users/matthias-springer/vector_type_ptr</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>address comments</title>
<updated>2025-03-28T10:59:15+00:00</updated>
<author>
<name>Matthias Springer</name>
<email>mspringer@nvidia.com</email>
</author>
<published>2025-03-28T10:59:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8913f4110f45aa31fb365ff773c7ef2147477728'/>
<id>8913f4110f45aa31fb365ff773c7ef2147477728</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>address comments</title>
<updated>2025-03-27T11:04:15+00:00</updated>
<author>
<name>Matthias Springer</name>
<email>mspringer@nvidia.com</email>
</author>
<published>2025-03-27T11:04:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=fbd5acfd06d7457f56f385cd4a0944c067e28da0'/>
<id>fbd5acfd06d7457f56f385cd4a0944c067e28da0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][IR] Experiment: Allow ptr as vector element type</title>
<updated>2025-03-27T10:46:16+00:00</updated>
<author>
<name>Matthias Springer</name>
<email>mspringer@nvidia.com</email>
</author>
<published>2025-02-04T14:20:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=52fac3b3e5e7af13db800faa57bec98180b3e14d'/>
<id>52fac3b3e5e7af13db800faa57bec98180b3e14d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[X86] combineINSERT_SUBVECTOR - fold insert_subvector(base,extract_subvector(broadcast)) -&gt; blend shuffle(base,broadcast) (#133083)</title>
<updated>2025-03-27T10:29:32+00:00</updated>
<author>
<name>Simon Pilgrim</name>
<email>llvm-dev@redking.me.uk</email>
</author>
<published>2025-03-27T10:29:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=491d3dfc761e3a03c6bd187533f4684d6864a8cb'/>
<id>491d3dfc761e3a03c6bd187533f4684d6864a8cb</id>
<content type='text'>
If the broadcast is already the full vector width, try to prefer a blend over a vector insertion which is usually a lower latency (and sometimes a lower uop count).</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If the broadcast is already the full vector width, try to prefer a blend over a vector insertion which is usually a lower latency (and sometimes a lower uop count).</pre>
</div>
</content>
</entry>
<entry>
<title>[lldb] Remove (deprecated) Function::GetAddressRange (#132923)</title>
<updated>2025-03-27T10:27:56+00:00</updated>
<author>
<name>Pavel Labath</name>
<email>pavel@labath.sk</email>
</author>
<published>2025-03-27T10:27:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=71d54cd4f1cc5233437f25479166e4659fbe2e53'/>
<id>71d54cd4f1cc5233437f25479166e4659fbe2e53</id>
<content type='text'>
All uses have been replaced by GetAddressRange*s* or GetAddress.

Also fix two internal uses of the range member.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
All uses have been replaced by GetAddressRange*s* or GetAddress.

Also fix two internal uses of the range member.</pre>
</div>
</content>
</entry>
<entry>
<title>[lldb] Remove UnwindPlan::Row shared_ptrs (#132370)</title>
<updated>2025-03-27T10:26:42+00:00</updated>
<author>
<name>Pavel Labath</name>
<email>pavel@labath.sk</email>
</author>
<published>2025-03-27T10:26:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d7cea2b18717f0cc31b7da4a03f772d89ee201db'/>
<id>d7cea2b18717f0cc31b7da4a03f772d89ee201db</id>
<content type='text'>
The surrounding code doesn't use them anymore. This removes the internal
usages.

This patch makes the Rows actual values. An alternative would be to make
them unique_ptrs. That would make vector resizes faster at the cost of
more pointer chasing and heap fragmentation. I don't know which one is
better so I picked the simpler option.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The surrounding code doesn't use them anymore. This removes the internal
usages.

This patch makes the Rows actual values. An alternative would be to make
them unique_ptrs. That would make vector resizes faster at the cost of
more pointer chasing and heap fragmentation. I don't know which one is
better so I picked the simpler option.</pre>
</div>
</content>
</entry>
<entry>
<title>[LoongArch][MC] Add support for disassembly option "no-aliases" (#132900)</title>
<updated>2025-03-27T09:43:46+00:00</updated>
<author>
<name>WÁNG Xuěruì</name>
<email>git@xen0n.name</email>
</author>
<published>2025-03-27T09:43:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=99ec6f8aecc5d4ae8ff2ae6bebe8d670562c19df'/>
<id>99ec6f8aecc5d4ae8ff2ae6bebe8d670562c19df</id>
<content type='text'>
This parallels the GNU Binutils feature's usage. A hidden command-line
option `--loongarch-no-aliases` is also added, similar to how
`--loongarch-numeric-reg` is for the `numeric` option.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This parallels the GNU Binutils feature's usage. A hidden command-line
option `--loongarch-no-aliases` is also added, similar to how
`--loongarch-numeric-reg` is for the `numeric` option.</pre>
</div>
</content>
</entry>
<entry>
<title>[X86] SimplifyDemandedBitsForTargetNode - add X86ISD::BLENDI handling (#133102)</title>
<updated>2025-03-27T09:32:40+00:00</updated>
<author>
<name>Simon Pilgrim</name>
<email>llvm-dev@redking.me.uk</email>
</author>
<published>2025-03-27T09:32:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f7a3334016580d4e69134b574b8b4081d348ff83'/>
<id>f7a3334016580d4e69134b574b8b4081d348ff83</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[Coro] Allow spilling @llvm.coro.suspend() to the coro frame (#133088)</title>
<updated>2025-03-27T09:23:30+00:00</updated>
<author>
<name>Hans Wennborg</name>
<email>hans@hanshq.net</email>
</author>
<published>2025-03-27T09:23:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=00c527abab3dfea5f3122f8151d69e77655eb033'/>
<id>00c527abab3dfea5f3122f8151d69e77655eb033</id>
<content type='text'>
It was excluded from spilling in a263a60, possibly by accident.

In the linked bug, we hit a situation like this:

```
  %s = call @llvm.coro.suspend(...)
             |
       switch (%s)
case v1: /       \ case v2:
        ...      ...
         |       suspend point
         |       ...
         \       /
 %x = phi [v1] [v2]
             |
            ...
             |
         use(%x)
```

Instcombine will notice that %x correlates exactly with %s, and so
use(%x) becomes use(%s).

However, corosplit would substitute different values for %s when
splitting the function, so even though %s had a particular value when
control actually passed through the switch, it could have a *different*
value when reaching use(%s).

This illustrates that while IR from the frontend typically does not use
these suspend return values across suspend points, mid-level
optimizations on the presplit coroutine may introduce new uses of
suspend values, so they must be considered eligible to spill to the
coroutine frame.

Fixes: #130326</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It was excluded from spilling in a263a60, possibly by accident.

In the linked bug, we hit a situation like this:

```
  %s = call @llvm.coro.suspend(...)
             |
       switch (%s)
case v1: /       \ case v2:
        ...      ...
         |       suspend point
         |       ...
         \       /
 %x = phi [v1] [v2]
             |
            ...
             |
         use(%x)
```

Instcombine will notice that %x correlates exactly with %s, and so
use(%x) becomes use(%s).

However, corosplit would substitute different values for %s when
splitting the function, so even though %s had a particular value when
control actually passed through the switch, it could have a *different*
value when reaching use(%s).

This illustrates that while IR from the frontend typically does not use
these suspend return values across suspend points, mid-level
optimizations on the presplit coroutine may introduce new uses of
suspend values, so they must be considered eligible to spill to the
coroutine frame.

Fixes: #130326</pre>
</div>
</content>
</entry>
<entry>
<title>[libclc] Move log1p/asinh/acosh/atanh to the CLC library (#132956)</title>
<updated>2025-03-27T09:19:07+00:00</updated>
<author>
<name>Fraser Cormack</name>
<email>fraser@codeplay.com</email>
</author>
<published>2025-03-27T09:19:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=db98e2922f0121f2c6fb3d6f42b40f9774f9a563'/>
<id>db98e2922f0121f2c6fb3d6f42b40f9774f9a563</id>
<content type='text'>
These four functions all related in that they share tables and helper
functions. Furthermore, the acosh and atanh builtins call log1p.

As with other work in this area, these builtins are now vectorized. To
enable this, there are new table accessor functions which return a
vector of table values using a vector of indices. These are internally
scalarized, in the absence of gather operations. Some tables which were
tables of multiple entries (e.g., double2) are split into two separate
"low" and "high" tables. This might affect the performance of memory
operations but are hopefully mitigated by better codegen overall.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These four functions all related in that they share tables and helper
functions. Furthermore, the acosh and atanh builtins call log1p.

As with other work in this area, these builtins are now vectorized. To
enable this, there are new table accessor functions which return a
vector of table values using a vector of indices. These are internally
scalarized, in the absence of gather operations. Some tables which were
tables of multiple entries (e.g., double2) are split into two separate
"low" and "high" tables. This might affect the performance of memory
operations but are hopefully mitigated by better codegen overall.</pre>
</div>
</content>
</entry>
</feed>
