[llvm] [AArch64][SME] Enable subreg liveness tracking when SME is available (PR #92142)

Sander de Smalen via llvm-commits llvm-commits at lists.llvm.org
Thu May 16 03:08:48 PDT 2024


sdesmalen-arm wrote:

> My understanding was that it was not enabled as it can cause mis-compiles (for example in https://reviews.llvm.org/D129646). I would strong advise against making this SME only. The testing it will get will not be enough to be sure it doesn't cause mis-compiles elsewhere.

I wasn't aware of any functional issues from enabling this. From reading the comments on that patch and seeing what other targets do, that issue could be due to the way they've modelled register aliasing for different values of 'LMUL'.  I can't really see how the instruction they've pointed to as an example would do the expected thing for the way they have described it. The instruction doesn't use the `VRM2` RC, but just `VR`, so the register allocator is free to pick a non-`VRM2` register. I'm not aware of us doing something similar.

FWIW, I'd be happy to enable subreg liveness tracking always if there is no downside to compile-time. Perhaps this is not an issue in practice, but if it is then I'd still recommend only enabling it for SME only. I agree it would be helpful to add a flag to manually disable subreg liveness tracking, if needed.

https://github.com/llvm/llvm-project/pull/92142


More information about the llvm-commits mailing list