<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git, branch users/MacDue/mirzt0_3</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>[AArch64][SME] Support saving/restoring ZT0 in the MachineSMEABIPass</title>
<updated>2025-11-18T13:54:19+00:00</updated>
<author>
<name>Benjamin Maxwell</name>
<email>benjamin.maxwell@arm.com</email>
</author>
<published>2025-11-03T15:41:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=61a5390345e13e8195ad9b2214133914db560ef2'/>
<id>61a5390345e13e8195ad9b2214133914db560ef2</id>
<content type='text'>
This patch extends the MachineSMEABIPass to support ZT0. This is done
with the addition of two new states:

  - `ACTIVE_ZT0_SAVED`
    * This is used when calling a function that shares ZA, but does
      share ZT0 (i.e., no ZT0 attributes).
    * This state indicates ZT0 must be saved to the save slot, but
      must remain on, with no lazy save setup
  - `LOCAL_COMMITTED`
    * This is used for saving ZT0 in functions without ZA state.
    * This state indicates ZA is off and ZT0 has been saved.
    * This state is general enough to support ZA, but those
      have not been implemented†

To aid with readability, the state transitions have been reworked to a
switch of `transitionFrom(&lt;FromState&gt;).to(&lt;ToState&gt;)`, rather than
nested ifs, which helps manage more transitions.

† This could be implemented to handle some cases of undefined behavior
  better.

Change-Id: I14be4a7f8b998fe667bfaade5088f88039515f91
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch extends the MachineSMEABIPass to support ZT0. This is done
with the addition of two new states:

  - `ACTIVE_ZT0_SAVED`
    * This is used when calling a function that shares ZA, but does
      share ZT0 (i.e., no ZT0 attributes).
    * This state indicates ZT0 must be saved to the save slot, but
      must remain on, with no lazy save setup
  - `LOCAL_COMMITTED`
    * This is used for saving ZT0 in functions without ZA state.
    * This state indicates ZA is off and ZT0 has been saved.
    * This state is general enough to support ZA, but those
      have not been implemented†

To aid with readability, the state transitions have been reworked to a
switch of `transitionFrom(&lt;FromState&gt;).to(&lt;ToState&gt;)`, rather than
nested ifs, which helps manage more transitions.

† This could be implemented to handle some cases of undefined behavior
  better.

Change-Id: I14be4a7f8b998fe667bfaade5088f88039515f91
</pre>
</div>
</content>
</entry>
<entry>
<title>[AArch64][SME] Handle zeroing ZA and ZT0 in functions with ZT0 state</title>
<updated>2025-11-18T13:20:31+00:00</updated>
<author>
<name>Benjamin Maxwell</name>
<email>benjamin.maxwell@arm.com</email>
</author>
<published>2025-11-03T15:55:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6a9d864861e2df2eb3225d2f0129f85fda99bb6c'/>
<id>6a9d864861e2df2eb3225d2f0129f85fda99bb6c</id>
<content type='text'>
In the MachineSMEABIPass, if we have a function with ZT0 state, then
there are some additional cases where we need to zero ZA and ZT0.

If the function has a private ZA interface, i.e., new ZT0 (and new ZA if
present). Then ZT0/ZA must be zeroed when committing the incoming ZA
save.

If the function has a shared ZA interface, e.g. new ZA and shared ZT0.
Then ZA must be zeroed on function entry (without a ZA save commit).

The logic in the ABI pass has been reworked to use an "ENTRY" state to
handle this (rather than the more specific "CALLER_DORMANT" state).

Change-Id: Ib91e9b13ffa4752320fe6a7a720afe919cf00198
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the MachineSMEABIPass, if we have a function with ZT0 state, then
there are some additional cases where we need to zero ZA and ZT0.

If the function has a private ZA interface, i.e., new ZT0 (and new ZA if
present). Then ZT0/ZA must be zeroed when committing the incoming ZA
save.

If the function has a shared ZA interface, e.g. new ZA and shared ZT0.
Then ZA must be zeroed on function entry (without a ZA save commit).

The logic in the ABI pass has been reworked to use an "ENTRY" state to
handle this (rather than the more specific "CALLER_DORMANT" state).

Change-Id: Ib91e9b13ffa4752320fe6a7a720afe919cf00198
</pre>
</div>
</content>
</entry>
<entry>
<title>[CGP]: Optimize mul.overflow. (#148343)</title>
<updated>2025-11-18T13:15:47+00:00</updated>
<author>
<name>Hassnaa Hamdi</name>
<email>hassnaa.hamdi@arm.com</email>
</author>
<published>2025-11-18T13:15:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3d5d32c6058807008e579dd5ea2faced33a7943b'/>
<id>3d5d32c6058807008e579dd5ea2faced33a7943b</id>
<content type='text'>
- Detect cases where LHS &amp; RHS values will not cause overflow
(when the Hi halfs are zero).</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Detect cases where LHS &amp; RHS values will not cause overflow
(when the Hi halfs are zero).</pre>
</div>
</content>
</entry>
<entry>
<title>[X86] combineTruncate - trunc(srl(load(p),amt)) -&gt; load(p+amt/8) - ensure amt doesn't depend on original load chain (#168400)</title>
<updated>2025-11-18T13:13:35+00:00</updated>
<author>
<name>Simon Pilgrim</name>
<email>llvm-dev@redking.me.uk</email>
</author>
<published>2025-11-18T13:13:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=52f4c360e382e6926dccb315d4402af6211e25f0'/>
<id>52f4c360e382e6926dccb315d4402af6211e25f0</id>
<content type='text'>
Relax fix for #165755 / #165850 - it doesn't matter if the amt is dependent on the original load value, just any users of the chain</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Relax fix for #165755 / #165850 - it doesn't matter if the amt is dependent on the original load value, just any users of the chain</pre>
</div>
</content>
</entry>
<entry>
<title>[ORC] Fix shlibs build: add Object to libLLVMOrcDebugging (#168343)</title>
<updated>2025-11-18T12:59:06+00:00</updated>
<author>
<name>Stefan Gränitz</name>
<email>stefan.graenitz@gmail.com</email>
</author>
<published>2025-11-18T12:58:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4c9020ded754707448f2d541c0b5d13a95725384'/>
<id>4c9020ded754707448f2d541c0b5d13a95725384</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen][NFCI] Change TableGenMain() to take function_ref. (#167888)</title>
<updated>2025-11-18T12:43:10+00:00</updated>
<author>
<name>Ivan Kosarev</name>
<email>ivan.kosarev@amd.com</email>
</author>
<published>2025-11-18T12:43:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3c87119a910e95396b26c519fa90d63a59442267'/>
<id>3c87119a910e95396b26c519fa90d63a59442267</id>
<content type='text'>
It was switched from a function pointer to std::function in

TableGen: Make 2nd arg MainFn of TableGenMain(argv0, MainFn) optional.
f675ec6165ab6add5e57cd43a2e9fa1a9bc21d81

but there's no mention of any particular reason for that.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It was switched from a function pointer to std::function in

TableGen: Make 2nd arg MainFn of TableGenMain(argv0, MainFn) optional.
f675ec6165ab6add5e57cd43a2e9fa1a9bc21d81

but there's no mention of any particular reason for that.</pre>
</div>
</content>
</entry>
<entry>
<title>[CMake] Declare all parts of *GenRegisterInfo.inc as outputs. (#168405)</title>
<updated>2025-11-18T12:41:53+00:00</updated>
<author>
<name>Ivan Kosarev</name>
<email>ivan.kosarev@amd.com</email>
</author>
<published>2025-11-18T12:41:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0be4218d7b7080fec73fe13bc759439d49159c05'/>
<id>0be4218d7b7080fec73fe13bc759439d49159c05</id>
<content type='text'>
This tells the build system to check and regenerate the
*GenRegisterInfo*.inc files, should any of them be missing for
whatever reason.

A follow-up from
&lt;https://github.com/llvm/llvm-project/pull/167700&gt;.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This tells the build system to check and regenerate the
*GenRegisterInfo*.inc files, should any of them be missing for
whatever reason.

A follow-up from
&lt;https://github.com/llvm/llvm-project/pull/167700&gt;.</pre>
</div>
</content>
</entry>
<entry>
<title>[Clang] Fix cleanup attribute by delaying type checks after the type is deduced (#164440)</title>
<updated>2025-11-18T12:36:51+00:00</updated>
<author>
<name>Guillot Tony</name>
<email>tony.guillot@protonmail.com</email>
</author>
<published>2025-11-18T12:36:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=22a2cae5d6735a510b17859848b14f60d2e5cdfa'/>
<id>22a2cae5d6735a510b17859848b14f60d2e5cdfa</id>
<content type='text'>
Previously, the handling of the `cleanup` attribute had some checks
based on the type, but we were deducing the type after handling the
attribute.
This PR fixes the way the are dealing with type checks for the `cleanup`
attribute by delaying these checks after we are deducing the type.

It is also fixed in a way that the solution can be adapted for other
attributes that does some type based checks.
This is the list of C/C++ attributes that are doing type based checks
and will need to be fixed in additional PRs:
- CUDAShared
- MutualExclusions
- PassObjectSize
- InitPriority
- Sentinel
- AcquireCapability
- RequiresCapability
- LocksExcluded
- AcquireHandle

NB: Some attributes could have been missed in my shallow search.

Fixes #129631</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, the handling of the `cleanup` attribute had some checks
based on the type, but we were deducing the type after handling the
attribute.
This PR fixes the way the are dealing with type checks for the `cleanup`
attribute by delaying these checks after we are deducing the type.

It is also fixed in a way that the solution can be adapted for other
attributes that does some type based checks.
This is the list of C/C++ attributes that are doing type based checks
and will need to be fixed in additional PRs:
- CUDAShared
- MutualExclusions
- PassObjectSize
- InitPriority
- Sentinel
- AcquireCapability
- RequiresCapability
- LocksExcluded
- AcquireHandle

NB: Some attributes could have been missed in my shallow search.

Fixes #129631</pre>
</div>
</content>
</entry>
<entry>
<title>[LLVM][CodeGen][SVE] Use DUPM for constantfp splats. (#168391)</title>
<updated>2025-11-18T12:15:38+00:00</updated>
<author>
<name>Paul Walker</name>
<email>paul.walker@arm.com</email>
</author>
<published>2025-11-18T12:15:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=59ed6dfe97b35a4dc88f69e3d830edf8caa99d10'/>
<id>59ed6dfe97b35a4dc88f69e3d830edf8caa99d10</id>
<content type='text'>
This helps cases where the immediate range of FDUP is not sufficient.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This helps cases where the immediate range of FDUP is not sufficient.</pre>
</div>
</content>
</entry>
<entry>
<title>[AArch64][GlobalISel] Add better basic legalization for llround. (#168427)</title>
<updated>2025-11-18T12:05:02+00:00</updated>
<author>
<name>David Green</name>
<email>david.green@arm.com</email>
</author>
<published>2025-11-18T12:05:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4ecfaa602f56a29ea8acd3fd39cf0cf3958b4dae'/>
<id>4ecfaa602f56a29ea8acd3fd39cf0cf3958b4dae</id>
<content type='text'>
This adds handling for f16 and f128 lround/llround under LP64 targets,
promoting the f16 where needed and using a libcall for f128. This
codegen is now identical to the selection dag version.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds handling for f16 and f128 lround/llround under LP64 targets,
promoting the f16 where needed and using a libcall for f128. This
codegen is now identical to the selection dag version.</pre>
</div>
</content>
</entry>
</feed>
