[llvm] [AArch64][SME] Implement the SME ABI (ZA state management) in Machine IR (PR #149062)

LLVM Continuous Integration via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 19 02:31:31 PDT 2025


llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `clang-x86_64-linux-abi-test` running on `sie-linux-worker2` while building `llvm` at step 6 "build-unified-tree".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/8/builds/19779

<details>
<summary>Here is the relevant piece of the build log for the reference</summary>

```
Step 6 (build-unified-tree) failure: build (failure)
...
130.947 [5216/10/2072] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SVEIntrinsicOpts.cpp.o
132.549 [5215/10/2073] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SMEPeepholeOpt.cpp.o
134.492 [5214/10/2074] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ISelLowering.cpp.o
/home/buildbot/buildbot-root/abi-test/llvm/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp: In function ‘bool shouldLowerTailCallStackArg(const llvm::MachineFunction&, const llvm::CCValAssign&, llvm::SDValue, llvm::ISD::ArgFlagsTy, int)’:
/home/buildbot/buildbot-root/abi-test/llvm/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:8996: warning: comparison of integer expressions of different signedness: ‘uint64_t’ {aka ‘long unsigned int’} and ‘int64_t’ {aka ‘long int’} [-Wsign-compare]
 8996 |       if (SizeInBits / 8 != MFI.getObjectSize(FI))
      | 
135.219 [5213/10/2075] Building CXX object lib/Target/AArch64/Disassembler/CMakeFiles/LLVMAArch64Disassembler.dir/AArch64ExternalSymbolizer.cpp.o
135.634 [5212/10/2076] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetMachine.cpp.o
136.053 [5211/10/2077] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o
FAILED: lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o 
/opt/ccache/bin/g++ -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/buildbot/buildbot-root/abi-test/build/lib/Target/AArch64 -I/home/buildbot/buildbot-root/abi-test/llvm/llvm/lib/Target/AArch64 -I/home/buildbot/buildbot-root/abi-test/build/include -I/home/buildbot/buildbot-root/abi-test/llvm/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -fvisibility=hidden  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -std=c++17 -MD -MT lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o -MF lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o.d -o lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o -c /home/buildbot/buildbot-root/abi-test/llvm/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp
/home/buildbot/buildbot-root/abi-test/llvm/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp:255: error: declaration of ‘llvm::EdgeBundles* {anonymous}::MachineSMEABI::EdgeBundles’ changes meaning of ‘EdgeBundles’ [-fpermissive]
  255 |   EdgeBundles *EdgeBundles = nullptr;
      | 
In file included from /home/buildbot/buildbot-root/abi-test/llvm/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp:62:
/home/buildbot/buildbot-root/abi-test/llvm/llvm/include/llvm/CodeGen/EdgeBundles.h:27: note: ‘EdgeBundles’ declared here as ‘class llvm::EdgeBundles’
   27 | class EdgeBundles {
      | 
136.335 [5211/9/2078] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64ELFObjectWriter.cpp.o
136.715 [5211/8/2079] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64SIMDInstrOpt.cpp.o
138.486 [5211/7/2080] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64AsmBackend.cpp.o
140.003 [5211/6/2081] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCAsmInfo.cpp.o
140.468 [5211/5/2082] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64ELFStreamer.cpp.o
In file included from /usr/include/c++/11/array:40,
                 from /usr/include/c++/11/tuple:39,
                 from /home/buildbot/buildbot-root/abi-test/llvm/llvm/include/llvm/ADT/DenseMapInfo.h:21,
                 from /home/buildbot/buildbot-root/abi-test/llvm/llvm/include/llvm/ADT/SmallVector.h:17,
                 from /home/buildbot/buildbot-root/abi-test/llvm/llvm/include/llvm/MC/MCELFStreamer.h:12,
                 from /home/buildbot/buildbot-root/abi-test/llvm/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.h:16,
                 from /home/buildbot/buildbot-root/abi-test/llvm/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp:15:
In static member function ‘static _Tp* std::__copy_move<_IsMove, true, std::random_access_iterator_tag>::__copy_m(const _Tp*, const _Tp*, _Tp*) [with _Tp = const llvm::MCSymbol*; bool _IsMove = true]’,
    inlined from ‘_OI std::__copy_move_a2(_II, _II, _OI) [with bool _IsMove = true; _II = const llvm::MCSymbol**; _OI = const llvm::MCSymbol**]’ at /usr/include/c++/11/bits/stl_algobase.h:495:30,
    inlined from ‘_OI std::__copy_move_a1(_II, _II, _OI) [with bool _IsMove = true; _II = const llvm::MCSymbol**; _OI = const llvm::MCSymbol**]’ at /usr/include/c++/11/bits/stl_algobase.h:522:42,
    inlined from ‘_OI std::__copy_move_a(_II, _II, _OI) [with bool _IsMove = true; _II = const llvm::MCSymbol**; _OI = const llvm::MCSymbol**]’ at /usr/include/c++/11/bits/stl_algobase.h:529:31,
    inlined from ‘_OI std::move(_II, _II, _OI) [with _II = const llvm::MCSymbol**; _OI = const llvm::MCSymbol**]’ at /usr/include/c++/11/bits/stl_algobase.h:652:38,
    inlined from ‘llvm::SmallVectorImpl<T>& llvm::SmallVectorImpl<T>::operator=(llvm::SmallVectorImpl<T>&&) [with T = const llvm::MCSymbol*]’ at /home/buildbot/buildbot-root/abi-test/llvm/llvm/include/llvm/ADT/SmallVector.h:1071:25,
    inlined from ‘virtual void llvm::AArch64TargetELFStreamer::finish()’ at /home/buildbot/buildbot-root/abi-test/llvm/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp:512:31:
/usr/include/c++/11/bits/stl_algobase.h:431:30: warning: ‘void* __builtin_memmove(void*, const void*, long unsigned int)’ reading between 8 and 34359738360 bytes from a region of size 0 [-Wstringop-overread]
  431 |             __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
      |             ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/buildbot/buildbot-root/abi-test/llvm/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp: In member function ‘virtual void llvm::AArch64TargetELFStreamer::finish()’:
/home/buildbot/buildbot-root/abi-test/llvm/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp:489:40: note: at offset 16 into source object ‘NewSyms’ of size 16
  489 |       SmallVector<const MCSymbol *, 0> NewSyms;
      |                                        ^~~~~~~
In file included from /usr/include/c++/11/array:40,
                 from /usr/include/c++/11/tuple:39,
                 from /home/buildbot/buildbot-root/abi-test/llvm/llvm/include/llvm/ADT/DenseMapInfo.h:21,
                 from /home/buildbot/buildbot-root/abi-test/llvm/llvm/include/llvm/ADT/SmallVector.h:17,

```

</details>

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


More information about the llvm-commits mailing list