Skip to content

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

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 16 commits into from
Aug 19, 2025

Conversation

MacDue
Copy link
Member

@MacDue MacDue commented Jul 16, 2025

Short Summary

This patch adds a new pass aarch64-machine-sme-abi to handle the ABI for ZA state (e.g., lazy saves and agnostic ZA functions). This is currently not enabled by default (but aims to be by LLVM 22). The goal is for this new pass to more optimally place ZA saves/restores and to work with exception handling.

Long Description

This patch reimplements management of ZA state for functions with private and shared ZA state. Agnostic ZA functions will be handled in a later patch. For now, this is under the flag -aarch64-new-sme-abi, however, we intend for this to replace the current SelectionDAG implementation once complete.

The approach taken here is to mark instructions as needing ZA to be in a specific ("ACTIVE" or "LOCAL_SAVED"). Machine instructions implicitly defining or using ZA registers (such as $zt0 or $zab0) require the "ACTIVE" state. Function calls may need the "LOCAL_SAVED" or "ACTIVE" state depending on the callee (having shared or private ZA).

We already add ZA register uses/definitions to machine instructions, so no extra work is needed to mark these.

Calls need to be marked by glueing Arch64ISD::INOUT_ZA_USE or Arch64ISD::REQUIRES_ZA_SAVE to the CALLSEQ_START.

These markers are then used by the MachineSMEABIPass to find instructions where there is a transition between required ZA states. These are the points we need to insert code to set up or restore a ZA save (or initialize ZA).

To handle control flow between blocks (which may have different ZA state requirements), we bundle the incoming and outgoing edges of blocks. Bundles are formed by assigning each block an incoming and outgoing bundle (initially, all blocks have their own two bundles). Bundles are then combined by joining the outgoing bundle of a block with the incoming bundle of all successors.

These bundles are then assigned a ZA state based on the blocks that participate in the bundle. Blocks whose incoming edges are in a bundle "vote" for a ZA state that matches the state required at the first instruction in the block, and likewise, blocks whose outgoing edges are in a bundle vote for the ZA state that matches the last instruction in the block. The ZA state with the most votes is used, which aims to minimize the number of state transitions.

@llvmbot
Copy link
Member

llvmbot commented Jul 16, 2025

@llvm/pr-subscribers-backend-aarch64

Author: Benjamin Maxwell (MacDue)

Changes

Short Summary

This patch adds a new pass aarch64-machine-sme-abi to handle the ABI for ZA state (e.g., lazy saves and agnostic ZA functions). This is currently not enabled by default (but aims to be by LLVM 22). The goal is for this new pass to more optimally place ZA saves/restores and to work with exception handling.

Long Description

This patch reimplements management of ZA state for functions with private and shared ZA state. Agnostic ZA functions will be handled in a later patch. For now, this is under the flag -aarch64-new-sme-abi, however, we intend for this to replace the current SelectionDAG implementation once complete.

The approach taken here is to mark instructions as needing ZA to be in a specific ("ACTIVE" or "LOCAL_SAVED"). Machine instructions implicitly defining or using ZA registers (such as $zt0 or $zab0) require the "ACTIVE" state. Function calls may need the "LOCAL_SAVED" or "ACTIVE" state depending on the callee (having shared or private ZA).

We already add ZA register uses/definitions to machine instructions, so no extra work is needed to mark these.

Calls need to be marked by glueing Arch64ISD::INOUT_ZA_USE or Arch64ISD::REQUIRES_ZA_SAVE to the CALLSEQ_START.

These markers are then used by the MachineSMEABIPass to find instructions where there is a transition between required ZA states. These are the points we need to insert code to set up or restore a ZA save (or initialize ZA).

To handle control flow between blocks (which may have different ZA state requirements), we bundle the incoming and outgoing edges of blocks. Bundles are formed by assigning each block an incoming and outgoing bundle (initially, all blocks have their own two bundles). Bundles are then combined by joining the outgoing bundle of a block with the incoming bundle of all successors.

These bundles are then assigned a ZA state based on the blocks that participate in the bundle. Blocks whose incoming edges are in a bundle "vote" for a ZA state that matches the state required at the first instruction in the block, and likewise, blocks whose outgoing edges are in a bundle vote for the ZA state that matches the last instruction in the block. The ZA state with the most votes is used, which aims to minimize the number of state transitions.


Patch is 216.21 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/149062.diff

23 Files Affected:

  • (modified) llvm/lib/Target/AArch64/AArch64.h (+2)
  • (modified) llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp (+26-13)
  • (modified) llvm/lib/Target/AArch64/AArch64ISelLowering.cpp (+88-59)
  • (modified) llvm/lib/Target/AArch64/AArch64ISelLowering.h (+4)
  • (modified) llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h (+17-19)
  • (modified) llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td (+28)
  • (modified) llvm/lib/Target/AArch64/AArch64Subtarget.cpp (+2-1)
  • (modified) llvm/lib/Target/AArch64/AArch64Subtarget.h (+5-1)
  • (modified) llvm/lib/Target/AArch64/AArch64TargetMachine.cpp (+20-5)
  • (modified) llvm/lib/Target/AArch64/CMakeLists.txt (+1)
  • (added) llvm/lib/Target/AArch64/MachineSMEABIPass.cpp (+642)
  • (modified) llvm/lib/Target/AArch64/Utils/AArch64SMEAttributes.h (+1-1)
  • (modified) llvm/test/CodeGen/AArch64/sme-agnostic-za.ll (+39)
  • (modified) llvm/test/CodeGen/AArch64/sme-lazy-save-call.ll (+628-1)
  • (added) llvm/test/CodeGen/AArch64/sme-lazy-sve-nzcv-live.mir (+132)
  • (modified) llvm/test/CodeGen/AArch64/sme-new-za-function.ll (+154-41)
  • (modified) llvm/test/CodeGen/AArch64/sme-shared-za-interface.ll (+52-1)
  • (added) llvm/test/CodeGen/AArch64/sme-za-control-flow.ll (+1131)
  • (added) llvm/test/CodeGen/AArch64/sme-za-exceptions.ll (+288)
  • (modified) llvm/test/CodeGen/AArch64/sme-za-lazy-save-buffer.ll (+79-5)
  • (modified) llvm/test/CodeGen/AArch64/sme-zt0-state.ll (+172-57)
  • (modified) llvm/test/CodeGen/AArch64/sve-stack-frame-layout.ll (+371-297)
  • (modified) llvm/unittests/Target/AArch64/SMEAttributesTest.cpp (+2-2)
diff --git a/llvm/lib/Target/AArch64/AArch64.h b/llvm/lib/Target/AArch64/AArch64.h
index 5496ebd495a55..8d0ff41fc8c08 100644
--- a/llvm/lib/Target/AArch64/AArch64.h
+++ b/llvm/lib/Target/AArch64/AArch64.h
@@ -60,6 +60,7 @@ FunctionPass *createAArch64CleanupLocalDynamicTLSPass();
 FunctionPass *createAArch64CollectLOHPass();
 FunctionPass *createSMEABIPass();
 FunctionPass *createSMEPeepholeOptPass();
+FunctionPass *createMachineSMEABIPass();
 ModulePass *createSVEIntrinsicOptsPass();
 InstructionSelector *
 createAArch64InstructionSelector(const AArch64TargetMachine &,
@@ -111,6 +112,7 @@ void initializeFalkorMarkStridedAccessesLegacyPass(PassRegistry&);
 void initializeLDTLSCleanupPass(PassRegistry&);
 void initializeSMEABIPass(PassRegistry &);
 void initializeSMEPeepholeOptPass(PassRegistry &);
+void initializeMachineSMEABIPass(PassRegistry &);
 void initializeSVEIntrinsicOptsPass(PassRegistry &);
 void initializeAArch64Arm64ECCallLoweringPass(PassRegistry &);
 } // end namespace llvm
diff --git a/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp b/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
index 7de66ccbf6f29..c0d118aa3afed 100644
--- a/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
+++ b/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
@@ -92,8 +92,8 @@ class AArch64ExpandPseudo : public MachineFunctionPass {
   bool expandCALL_BTI(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI);
   bool expandStoreSwiftAsyncContext(MachineBasicBlock &MBB,
                                     MachineBasicBlock::iterator MBBI);
-  MachineBasicBlock *expandRestoreZA(MachineBasicBlock &MBB,
-                                     MachineBasicBlock::iterator MBBI);
+  MachineBasicBlock *expandCommitOrRestoreZA(MachineBasicBlock &MBB,
+                                             MachineBasicBlock::iterator MBBI);
   MachineBasicBlock *expandCondSMToggle(MachineBasicBlock &MBB,
                                         MachineBasicBlock::iterator MBBI);
 };
@@ -974,9 +974,13 @@ bool AArch64ExpandPseudo::expandStoreSwiftAsyncContext(
 }
 
 MachineBasicBlock *
-AArch64ExpandPseudo::expandRestoreZA(MachineBasicBlock &MBB,
-                                     MachineBasicBlock::iterator MBBI) {
+AArch64ExpandPseudo::expandCommitOrRestoreZA(MachineBasicBlock &MBB,
+                                             MachineBasicBlock::iterator MBBI) {
   MachineInstr &MI = *MBBI;
+  bool IsRestoreZA = MI.getOpcode() == AArch64::RestoreZAPseudo;
+  assert((MI.getOpcode() == AArch64::RestoreZAPseudo ||
+          MI.getOpcode() == AArch64::CommitZAPseudo) &&
+         "Expected ZA commit or restore");
   assert((std::next(MBBI) != MBB.end() ||
           MI.getParent()->successors().begin() !=
               MI.getParent()->successors().end()) &&
@@ -984,21 +988,23 @@ AArch64ExpandPseudo::expandRestoreZA(MachineBasicBlock &MBB,
 
   // Compare TPIDR2_EL0 value against 0.
   DebugLoc DL = MI.getDebugLoc();
-  MachineInstrBuilder Cbz = BuildMI(MBB, MBBI, DL, TII->get(AArch64::CBZX))
-                                .add(MI.getOperand(0));
+  MachineInstrBuilder Branch =
+      BuildMI(MBB, MBBI, DL,
+              TII->get(IsRestoreZA ? AArch64::CBZX : AArch64::CBNZX))
+          .add(MI.getOperand(0));
 
   // Split MBB and create two new blocks:
   //  - MBB now contains all instructions before RestoreZAPseudo.
-  //  - SMBB contains the RestoreZAPseudo instruction only.
-  //  - EndBB contains all instructions after RestoreZAPseudo.
+  //  - SMBB contains the [Commit|RestoreZA]Pseudo instruction only.
+  //  - EndBB contains all instructions after [Commit|RestoreZA]Pseudo.
   MachineInstr &PrevMI = *std::prev(MBBI);
   MachineBasicBlock *SMBB = MBB.splitAt(PrevMI, /*UpdateLiveIns*/ true);
   MachineBasicBlock *EndBB = std::next(MI.getIterator()) == SMBB->end()
                                  ? *SMBB->successors().begin()
                                  : SMBB->splitAt(MI, /*UpdateLiveIns*/ true);
 
-  // Add the SMBB label to the TB[N]Z instruction & create a branch to EndBB.
-  Cbz.addMBB(SMBB);
+  // Add the SMBB label to the CB[N]Z instruction & create a branch to EndBB.
+  Branch.addMBB(SMBB);
   BuildMI(&MBB, DL, TII->get(AArch64::B))
       .addMBB(EndBB);
   MBB.addSuccessor(EndBB);
@@ -1006,8 +1012,12 @@ AArch64ExpandPseudo::expandRestoreZA(MachineBasicBlock &MBB,
   // Replace the pseudo with a call (BL).
   MachineInstrBuilder MIB =
       BuildMI(*SMBB, SMBB->end(), DL, TII->get(AArch64::BL));
-  MIB.addReg(MI.getOperand(1).getReg(), RegState::Implicit);
-  for (unsigned I = 2; I < MI.getNumOperands(); ++I)
+  unsigned FirstBLOperand = 1;
+  if (IsRestoreZA) {
+    MIB.addReg(MI.getOperand(1).getReg(), RegState::Implicit);
+    FirstBLOperand = 2;
+  }
+  for (unsigned I = FirstBLOperand; I < MI.getNumOperands(); ++I)
     MIB.add(MI.getOperand(I));
   BuildMI(SMBB, DL, TII->get(AArch64::B)).addMBB(EndBB);
 
@@ -1617,8 +1627,9 @@ bool AArch64ExpandPseudo::expandMI(MachineBasicBlock &MBB,
      return expandCALL_BTI(MBB, MBBI);
    case AArch64::StoreSwiftAsyncContext:
      return expandStoreSwiftAsyncContext(MBB, MBBI);
+   case AArch64::CommitZAPseudo:
    case AArch64::RestoreZAPseudo: {
-     auto *NewMBB = expandRestoreZA(MBB, MBBI);
+     auto *NewMBB = expandCommitOrRestoreZA(MBB, MBBI);
      if (NewMBB != &MBB)
        NextMBBI = MBB.end(); // The NextMBBI iterator is invalidated.
      return true;
@@ -1629,6 +1640,8 @@ bool AArch64ExpandPseudo::expandMI(MachineBasicBlock &MBB,
        NextMBBI = MBB.end(); // The NextMBBI iterator is invalidated.
      return true;
    }
+   case AArch64::InOutZAUsePseudo:
+   case AArch64::RequiresZASavePseudo:
    case AArch64::COALESCER_BARRIER_FPR16:
    case AArch64::COALESCER_BARRIER_FPR32:
    case AArch64::COALESCER_BARRIER_FPR64:
diff --git a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
index 4f13a14d24649..49135d05b689b 100644
--- a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+++ b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
@@ -8154,53 +8154,54 @@ SDValue AArch64TargetLowering::LowerFormalArguments(
   if (Subtarget->hasCustomCallingConv())
     Subtarget->getRegisterInfo()->UpdateCustomCalleeSavedRegs(MF);
 
-  // Create a 16 Byte TPIDR2 object. The dynamic buffer
-  // will be expanded and stored in the static object later using a pseudonode.
-  if (Attrs.hasZAState()) {
-    TPIDR2Object &TPIDR2 = FuncInfo->getTPIDR2Obj();
-    TPIDR2.FrameIndex = MFI.CreateStackObject(16, Align(16), false);
-    SDValue SVL = DAG.getNode(AArch64ISD::RDSVL, DL, MVT::i64,
-                              DAG.getConstant(1, DL, MVT::i32));
-
-    SDValue Buffer;
-    if (!Subtarget->isTargetWindows() && !hasInlineStackProbe(MF)) {
-      Buffer = DAG.getNode(AArch64ISD::ALLOCATE_ZA_BUFFER, DL,
-                           DAG.getVTList(MVT::i64, MVT::Other), {Chain, SVL});
-    } else {
-      SDValue Size = DAG.getNode(ISD::MUL, DL, MVT::i64, SVL, SVL);
-      Buffer = DAG.getNode(ISD::DYNAMIC_STACKALLOC, DL,
-                           DAG.getVTList(MVT::i64, MVT::Other),
-                           {Chain, Size, DAG.getConstant(1, DL, MVT::i64)});
-      MFI.CreateVariableSizedObject(Align(16), nullptr);
-    }
-    Chain = DAG.getNode(
-        AArch64ISD::INIT_TPIDR2OBJ, DL, DAG.getVTList(MVT::Other),
-        {/*Chain*/ Buffer.getValue(1), /*Buffer ptr*/ Buffer.getValue(0)});
-  } else if (Attrs.hasAgnosticZAInterface()) {
-    // Call __arm_sme_state_size().
-    SDValue BufferSize =
-        DAG.getNode(AArch64ISD::GET_SME_SAVE_SIZE, DL,
-                    DAG.getVTList(MVT::i64, MVT::Other), Chain);
-    Chain = BufferSize.getValue(1);
-
-    SDValue Buffer;
-    if (!Subtarget->isTargetWindows() && !hasInlineStackProbe(MF)) {
-      Buffer =
-          DAG.getNode(AArch64ISD::ALLOC_SME_SAVE_BUFFER, DL,
-                      DAG.getVTList(MVT::i64, MVT::Other), {Chain, BufferSize});
-    } else {
-      // Allocate space dynamically.
-      Buffer = DAG.getNode(
-          ISD::DYNAMIC_STACKALLOC, DL, DAG.getVTList(MVT::i64, MVT::Other),
-          {Chain, BufferSize, DAG.getConstant(1, DL, MVT::i64)});
-      MFI.CreateVariableSizedObject(Align(16), nullptr);
+  if (!Subtarget->useNewSMEABILowering() || Attrs.hasAgnosticZAInterface()) {
+    // Old SME ABI lowering (deprecated):
+    // Create a 16 Byte TPIDR2 object. The dynamic buffer
+    // will be expanded and stored in the static object later using a
+    // pseudonode.
+    if (Attrs.hasZAState()) {
+      TPIDR2Object &TPIDR2 = FuncInfo->getTPIDR2Obj();
+      TPIDR2.FrameIndex = MFI.CreateStackObject(16, Align(16), false);
+      SDValue SVL = DAG.getNode(AArch64ISD::RDSVL, DL, MVT::i64,
+                                DAG.getConstant(1, DL, MVT::i32));
+      SDValue Buffer;
+      if (!Subtarget->isTargetWindows() && !hasInlineStackProbe(MF)) {
+        Buffer = DAG.getNode(AArch64ISD::ALLOCATE_ZA_BUFFER, DL,
+                             DAG.getVTList(MVT::i64, MVT::Other), {Chain, SVL});
+      } else {
+        SDValue Size = DAG.getNode(ISD::MUL, DL, MVT::i64, SVL, SVL);
+        Buffer = DAG.getNode(ISD::DYNAMIC_STACKALLOC, DL,
+                             DAG.getVTList(MVT::i64, MVT::Other),
+                             {Chain, Size, DAG.getConstant(1, DL, MVT::i64)});
+        MFI.CreateVariableSizedObject(Align(16), nullptr);
+      }
+      Chain = DAG.getNode(
+          AArch64ISD::INIT_TPIDR2OBJ, DL, DAG.getVTList(MVT::Other),
+          {/*Chain*/ Buffer.getValue(1), /*Buffer ptr*/ Buffer.getValue(0)});
+    } else if (Attrs.hasAgnosticZAInterface()) {
+      // Call __arm_sme_state_size().
+      SDValue BufferSize =
+          DAG.getNode(AArch64ISD::GET_SME_SAVE_SIZE, DL,
+                      DAG.getVTList(MVT::i64, MVT::Other), Chain);
+      Chain = BufferSize.getValue(1);
+      SDValue Buffer;
+      if (!Subtarget->isTargetWindows() && !hasInlineStackProbe(MF)) {
+        Buffer = DAG.getNode(AArch64ISD::ALLOC_SME_SAVE_BUFFER, DL,
+                             DAG.getVTList(MVT::i64, MVT::Other),
+                             {Chain, BufferSize});
+      } else {
+        // Allocate space dynamically.
+        Buffer = DAG.getNode(
+            ISD::DYNAMIC_STACKALLOC, DL, DAG.getVTList(MVT::i64, MVT::Other),
+            {Chain, BufferSize, DAG.getConstant(1, DL, MVT::i64)});
+        MFI.CreateVariableSizedObject(Align(16), nullptr);
+      }
+      // Copy the value to a virtual register, and save that in FuncInfo.
+      Register BufferPtr =
+          MF.getRegInfo().createVirtualRegister(&AArch64::GPR64RegClass);
+      FuncInfo->setSMESaveBufferAddr(BufferPtr);
+      Chain = DAG.getCopyToReg(Chain, DL, BufferPtr, Buffer);
     }
-
-    // Copy the value to a virtual register, and save that in FuncInfo.
-    Register BufferPtr =
-        MF.getRegInfo().createVirtualRegister(&AArch64::GPR64RegClass);
-    FuncInfo->setSMESaveBufferAddr(BufferPtr);
-    Chain = DAG.getCopyToReg(Chain, DL, BufferPtr, Buffer);
   }
 
   if (CallConv == CallingConv::PreserveNone) {
@@ -8217,6 +8218,15 @@ SDValue AArch64TargetLowering::LowerFormalArguments(
     }
   }
 
+  if (Subtarget->useNewSMEABILowering()) {
+    // Clear new ZT0 state. TODO: Move this to the SME ABI pass.
+    if (Attrs.isNewZT0())
+      Chain = DAG.getNode(
+          ISD::INTRINSIC_VOID, DL, MVT::Other, Chain,
+          DAG.getConstant(Intrinsic::aarch64_sme_zero_zt, DL, MVT::i32),
+          DAG.getTargetConstant(0, DL, MVT::i32));
+  }
+
   return Chain;
 }
 
@@ -8781,14 +8791,12 @@ static SDValue emitSMEStateSaveRestore(const AArch64TargetLowering &TLI,
   MachineFunction &MF = DAG.getMachineFunction();
   AArch64FunctionInfo *FuncInfo = MF.getInfo<AArch64FunctionInfo>();
   FuncInfo->setSMESaveBufferUsed();
-
   TargetLowering::ArgListTy Args;
   TargetLowering::ArgListEntry Entry;
   Entry.Ty = PointerType::getUnqual(*DAG.getContext());
   Entry.Node =
       DAG.getCopyFromReg(Chain, DL, Info->getSMESaveBufferAddr(), MVT::i64);
   Args.push_back(Entry);
-
   SDValue Callee =
       DAG.getExternalSymbol(IsSave ? "__arm_sme_save" : "__arm_sme_restore",
                             TLI.getPointerTy(DAG.getDataLayout()));
@@ -8906,6 +8914,9 @@ AArch64TargetLowering::LowerCall(CallLoweringInfo &CLI,
                     *DAG.getContext());
   RetCCInfo.AnalyzeCallResult(Ins, RetCC);
 
+  // Determine whether we need any streaming mode changes.
+  SMECallAttrs CallAttrs = getSMECallAttrs(MF.getFunction(), CLI);
+
   // Check callee args/returns for SVE registers and set calling convention
   // accordingly.
   if (CallConv == CallingConv::C || CallConv == CallingConv::Fast) {
@@ -8919,14 +8930,26 @@ AArch64TargetLowering::LowerCall(CallLoweringInfo &CLI,
       CallConv = CallingConv::AArch64_SVE_VectorCall;
   }
 
+  bool UseNewSMEABILowering = Subtarget->useNewSMEABILowering();
+  bool IsAgnosticZAFunction = CallAttrs.caller().hasAgnosticZAInterface();
+  auto ZAMarkerNode = [&]() -> std::optional<unsigned> {
+    // TODO: Handle agnostic ZA functions.
+    if (!UseNewSMEABILowering || IsAgnosticZAFunction)
+      return std::nullopt;
+    if (!CallAttrs.caller().hasZAState() && !CallAttrs.caller().hasZT0State())
+      return std::nullopt;
+    return CallAttrs.requiresLazySave() ? AArch64ISD::REQUIRES_ZA_SAVE
+                                        : AArch64ISD::INOUT_ZA_USE;
+  }();
+
   if (IsTailCall) {
     // Check if it's really possible to do a tail call.
     IsTailCall = isEligibleForTailCallOptimization(CLI);
 
     // A sibling call is one where we're under the usual C ABI and not planning
     // to change that but can still do a tail call:
-    if (!TailCallOpt && IsTailCall && CallConv != CallingConv::Tail &&
-        CallConv != CallingConv::SwiftTail)
+    if (!ZAMarkerNode.has_value() && !TailCallOpt && IsTailCall &&
+        CallConv != CallingConv::Tail && CallConv != CallingConv::SwiftTail)
       IsSibCall = true;
 
     if (IsTailCall)
@@ -8978,9 +9001,6 @@ AArch64TargetLowering::LowerCall(CallLoweringInfo &CLI,
     assert(FPDiff % 16 == 0 && "unaligned stack on tail call");
   }
 
-  // Determine whether we need any streaming mode changes.
-  SMECallAttrs CallAttrs = getSMECallAttrs(MF.getFunction(), CLI);
-
   auto DescribeCallsite =
       [&](OptimizationRemarkAnalysis &R) -> OptimizationRemarkAnalysis & {
     R << "call from '" << ore::NV("Caller", MF.getName()) << "' to '";
@@ -8994,7 +9014,7 @@ AArch64TargetLowering::LowerCall(CallLoweringInfo &CLI,
     return R;
   };
 
-  bool RequiresLazySave = CallAttrs.requiresLazySave();
+  bool RequiresLazySave = !UseNewSMEABILowering && CallAttrs.requiresLazySave();
   bool RequiresSaveAllZA = CallAttrs.requiresPreservingAllZAState();
   if (RequiresLazySave) {
     const TPIDR2Object &TPIDR2 = FuncInfo->getTPIDR2Obj();
@@ -9076,10 +9096,21 @@ AArch64TargetLowering::LowerCall(CallLoweringInfo &CLI,
         AArch64ISD::SMSTOP, DL, DAG.getVTList(MVT::Other, MVT::Glue), Chain,
         DAG.getTargetConstant((int32_t)(AArch64SVCR::SVCRZA), DL, MVT::i32));
 
-  // Adjust the stack pointer for the new arguments...
+  // Adjust the stack pointer for the new arguments... and mark ZA uses.
   // These operations are automatically eliminated by the prolog/epilog pass
-  if (!IsSibCall)
+  assert((!IsSibCall || !ZAMarkerNode.has_value()) &&
+         "ZA markers require CALLSEQ_START");
+  if (!IsSibCall) {
     Chain = DAG.getCALLSEQ_START(Chain, IsTailCall ? 0 : NumBytes, 0, DL);
+    if (ZAMarkerNode) {
+      // Note: We need the CALLSEQ_START to glue the ZAMarkerNode to, simply
+      // using a chain can result in incorrect scheduling. The markers referer
+      // to the position just before the CALLSEQ_START (though occur after as
+      // CALLSEQ_START lacks in-glue).
+      Chain = DAG.getNode(*ZAMarkerNode, DL, DAG.getVTList(MVT::Other),
+                          {Chain, Chain.getValue(1)});
+    }
+  }
 
   SDValue StackPtr = DAG.getCopyFromReg(Chain, DL, AArch64::SP,
                                         getPointerTy(DAG.getDataLayout()));
@@ -9551,7 +9582,7 @@ AArch64TargetLowering::LowerCall(CallLoweringInfo &CLI,
     }
   }
 
-  if (CallAttrs.requiresEnablingZAAfterCall())
+  if (RequiresLazySave || CallAttrs.requiresEnablingZAAfterCall())
     // Unconditionally resume ZA.
     Result = DAG.getNode(
         AArch64ISD::SMSTART, DL, DAG.getVTList(MVT::Other, MVT::Glue), Result,
@@ -9572,7 +9603,6 @@ AArch64TargetLowering::LowerCall(CallLoweringInfo &CLI,
     SDValue TPIDR2_EL0 = DAG.getNode(
         ISD::INTRINSIC_W_CHAIN, DL, MVT::i64, Result,
         DAG.getConstant(Intrinsic::aarch64_sme_get_tpidr2, DL, MVT::i32));
-
     // Copy the address of the TPIDR2 block into X0 before 'calling' the
     // RESTORE_ZA pseudo.
     SDValue Glue;
@@ -9584,7 +9614,6 @@ AArch64TargetLowering::LowerCall(CallLoweringInfo &CLI,
         DAG.getNode(AArch64ISD::RESTORE_ZA, DL, MVT::Other,
                     {Result, TPIDR2_EL0, DAG.getRegister(AArch64::X0, MVT::i64),
                      RestoreRoutine, RegMask, Result.getValue(1)});
-
     // Finally reset the TPIDR2_EL0 register to 0.
     Result = DAG.getNode(
         ISD::INTRINSIC_VOID, DL, MVT::Other, Result,
diff --git a/llvm/lib/Target/AArch64/AArch64ISelLowering.h b/llvm/lib/Target/AArch64/AArch64ISelLowering.h
index 6afb3c330d25b..72897a0446ca2 100644
--- a/llvm/lib/Target/AArch64/AArch64ISelLowering.h
+++ b/llvm/lib/Target/AArch64/AArch64ISelLowering.h
@@ -173,6 +173,10 @@ class AArch64TargetLowering : public TargetLowering {
   MachineBasicBlock *EmitZTInstr(MachineInstr &MI, MachineBasicBlock *BB,
                                  unsigned Opcode, bool Op0IsDef) const;
   MachineBasicBlock *EmitZero(MachineInstr &MI, MachineBasicBlock *BB) const;
+
+  // Note: The following group of functions are only used as part of the old SME
+  // ABI lowering. They will be removed once -aarch64-new-sme-abi=true is the
+  // default.
   MachineBasicBlock *EmitInitTPIDR2Object(MachineInstr &MI,
                                           MachineBasicBlock *BB) const;
   MachineBasicBlock *EmitAllocateZABuffer(MachineInstr &MI,
diff --git a/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h b/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
index 800787cc0b4f5..3f6980fe11aea 100644
--- a/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
+++ b/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
@@ -213,9 +213,6 @@ class AArch64FunctionInfo final : public MachineFunctionInfo {
   /// or return type
   bool IsSVECC = false;
 
-  /// The frame-index for the TPIDR2 object used for lazy saves.
-  TPIDR2Object TPIDR2;
-
   /// Whether this function changes streaming mode within the function.
   bool HasStreamingModeChanges = false;
 
@@ -231,14 +228,6 @@ class AArch64FunctionInfo final : public MachineFunctionInfo {
   // on function entry to record the initial pstate of a function.
   Register PStateSMReg = MCRegister::NoRegister;
 
-  // Holds a pointer to a buffer that is large enough to represent
-  // all SME ZA state and any additional state required by the
-  // __arm_sme_save/restore support routines.
-  Register SMESaveBufferAddr = MCRegister::NoRegister;
-
-  // true if SMESaveBufferAddr is used.
-  bool SMESaveBufferUsed = false;
-
   // Has the PNReg used to build PTRUE instruction.
   // The PTRUE is used for the LD/ST of ZReg pairs in save and restore.
   unsigned PredicateRegForFillSpill = 0;
@@ -250,6 +239,16 @@ class AArch64FunctionInfo final : public MachineFunctionInfo {
   // Holds the SME function attributes (streaming mode, ZA/ZT0 state).
   SMEAttrs SMEFnAttrs;
 
+  // Note: The following properties are only used for the old SME ABI lowering:
+  /// The frame-index for the TPIDR2 object used for lazy saves.
+  TPIDR2Object TPIDR2;
+  // Holds a pointer to a buffer that is large enough to represent
+  // all SME ZA state and any additional state required by the
+  // __arm_sme_save/restore support routines.
+  Register SMESaveBufferAddr = MCRegister::NoRegister;
+  // true if SMESaveBufferAddr is used.
+  bool SMESaveBufferUsed = false;
+
 public:
   AArch64FunctionInfo(const Function &F, const AArch64Subtarget *STI);
 
@@ -258,6 +257,13 @@ class AArch64FunctionInfo final : public MachineFunctionInfo {
         const DenseMap<MachineBasicBlock *, MachineBasicBlock *> &Src2DstMBB)
       const override;
 
+  // Old SME ABI lowering state getters/setters:
+...
[truncated]

Comment on lines +240 to +327
// TODO: We should propagate desired incoming/outgoing states through blocks
// that have the "ANY" state first to make better global decisions.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a fairly important TODO. As for larger functions where most blocks don't have defined ZA states (as they don't contain any instructions that require ZA to be in a specific state), this initial implementation can place saves/restores somewhat poorly (particularly in regards to nested loops).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think something like #149510, would mostly resolve this.

@MacDue MacDue force-pushed the users/MacDue/machine-sme branch from 26d884c to ab9c3a0 Compare August 5, 2025 11:02
Copy link
Collaborator

@paulwalker-arm paulwalker-arm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is mainly a high level structural review, because I've yet to properly check the finer details of the emit... functions (although I'm guessing they're mostly taken from the existing implementation?).

What I've seen does look very nice.

@MacDue
Copy link
Member Author

MacDue commented Aug 8, 2025

This is mainly a high level structural review, because I've yet to properly check the finer details of the emit... functions (although I'm guessing they're mostly taken from the existing implementation?).

emitAllocateLazySaveBuffer is based on the existing EmitAllocateZABuffer. The others are based on what existing IR or SelectionDAG lowerings did, but ported to MIR.

What I've seen does look very nice.

😄

@MacDue MacDue force-pushed the users/MacDue/machine-sme branch from 55bb8ab to 6a0ee9d Compare August 12, 2025 14:06
OFF,

// The number of ZA states (not a valid state)
NUM_ZA_STATE
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm yet to really look at the implementation, but my first high-level question is: Why do we need more states than the ABI specifies? I expected to see:

  • OFF
  • ACTIVE
  • DORMANT

Copy link
Member Author

@MacDue MacDue Aug 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two reasons:

  1. It's not statically possible to know the ABI state compile time
    • LOCAL_SAVED is OFF or DORMANT (after a lazy save as been set up)
    • N.B. The CALLER_DORMANT state is a little bit of a misnomer as it's also (OFF or DORMANT)
  2. These states control code generation, which needs more specific states than what the ABI specifies
    • E.g., ZA can be DORMANT on entry to a function and after a lazy save has been set up, but the code generated for the transition to the ACTIVE state is different in both situations
    • This becomes more apparent in later PRs (not all upstream) that add support for more specialized cases

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the pointers :) I guess it will become clearer to me as I browse through the code. My current expentations are:

  • In a za_agnostic or za_preserved function, we can enter in any state. We can exit in any state.
  • In a za_inout function, we are in the active state on entry and exit.
  • In a za_private function, we can enter in dormant || off state. We can exit in any state.

In all those cases, there is nothing to do if we call a za_agnostic, za_inout or za_preserved function. But if calling a za_private function, we might need to setup a lazy-save buffer (when the current state is active).

AFAIU, LOCAL_SAVED and CALLER_DORMANT can both mean dormant || off. The former is on the caller-side and might need to setup a lazy-save buffer, while the latter is on the callee-side, and might need to commit the lazy-save. I would find pseudo states like OFF_OR_DORMANT_SETUP and OFF_OR_DORMANT_COMMIT clearer, as they explicitly say in what state we are, and what codegen is expected in case of a transition.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • In a za_agnostic or za_preserved function, we can enter in any state. We can exit in any state.

These two cases are pretty much the same as za_inout. Though za_agnostic can be entered with ZA = OFF, we have to assume it's active and emit code to ensure ZA is preserved. Agnostic ZA is not implemented in this PR (there's a later patch that adds basic support, then a [currently] downstream change for EH support).

So as far as code-gen is concerned we enter/exit in the active state.

  • In a za_inout function, we are in the active state on entry and exit.

Yep 👍

  • In a za_private function, we can enter in dormant || off state. We can exit in any state.

We always exit with ZA off

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♥️💜💖💚🤍🤎

%0:gpr32common = COPY $w0
ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp
RequiresZASavePseudo
BL @clobber, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again a high-level question to help me understand the implementation: Given that csr_aarch64_aapcs is just a RegMask operand, why can't we define a new mask which also clobbers $za? If we could spill/reload that register through storeRegToStackSlot/loadRegFromStackSlot and have the register as an actual part of the ABI, then we would get a lot for free?

I'm guessing we can't do any of that because the register is reserved? Do you know what it would cost to "unreserve" $za?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've thought about this more in the past, but these are a few reasons I can remember off the top of my head:

  • The SME ABI for lazily saving/restoring ZA does not behave like a simple load/store, so you have to be more careful about how actions are placed than a regular spill/fill (you can't "reload" from a single spill twice, for example)
  • The action needed can depend on more information than a "should spill" or "should fill"
    • E.g., depending on how ZA is clobbered, you may need to commit a save or just set up a lazy save
    • Note: More specific cases are not implemented yet (as these first PRs are for the basic functionality)
  • They introduce function calls, which may not be safe/nice to insert in storeRegToStackSlot

Copy link
Collaborator

@paulwalker-arm paulwalker-arm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The bundles stuff is new to me so I'm putting my faith in them working as described. Other than that I'm mostly happy with the current state of this prototype and just have a few final comments, questions and observations.

; }
;
; In this example we don't setup a lazy save before shared_za_call(), however,
; we still enter the catch block in a ZA off state. This leads to use emitting
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
; we still enter the catch block in a ZA off state. This leads to use emitting
; we still enter the catch block in a ZA off state. This leads to us emitting

Are there plans to fix this? I don't like the idea of reading random data from the stack.

Copy link
Member Author

@MacDue MacDue Aug 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've fixed this in a later patch (not upstream yet) for agnostic ZA functions (where ZA is required to be preserved on all normal exits). I've not done this for shared_za functions as it's not strictly required (this behavior matches GCC), but I could fix it in the same way.

The fix would result in it restoring ZA to the state before the shared_za call that throws the exception, though depending on that would still be UB (and not compatible with GCC).

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good. Yes, let's remember to do that for shared_za as well because I'm not keen to replicate GCC's behaviour here.

@MacDue MacDue force-pushed the users/MacDue/machine-sme branch from 3a3a90b to c4c12b9 Compare August 13, 2025 10:18
Copy link
Contributor

@gbossu gbossu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm done with my initial round. What I've seen does make a lot of sense, but I'll need to do another more thorough review one once I get some answers :) Overall, I think what would help is a bit more MIR tests for the new pass, and the AArch64PseudoLowering pass, as .ll can be hard to read due to the amount of unnecessary asm.

OFF,

// The number of ZA states (not a valid state)
NUM_ZA_STATE
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the pointers :) I guess it will become clearer to me as I browse through the code. My current expentations are:

  • In a za_agnostic or za_preserved function, we can enter in any state. We can exit in any state.
  • In a za_inout function, we are in the active state on entry and exit.
  • In a za_private function, we can enter in dormant || off state. We can exit in any state.

In all those cases, there is nothing to do if we call a za_agnostic, za_inout or za_preserved function. But if calling a za_private function, we might need to setup a lazy-save buffer (when the current state is active).

AFAIU, LOCAL_SAVED and CALLER_DORMANT can both mean dormant || off. The former is on the caller-side and might need to setup a lazy-save buffer, while the latter is on the callee-side, and might need to commit the lazy-save. I would find pseudo states like OFF_OR_DORMANT_SETUP and OFF_OR_DORMANT_COMMIT clearer, as they explicitly say in what state we are, and what codegen is expected in case of a transition.

Copy link
Contributor

@gbossu gbossu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I left a couple more comments, and I do understand a lot more about what we are trying to achieve here. I think I'll be able to do an actual thorough review tomorrow 😄

emitStateChange(MBB, Inst.InsertPt, CurrentState, Inst.NeededState,
Inst.PhysLiveRegs);
CurrentState = Inst.NeededState;
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the approach, I think it's great to first collect all the required states, and them emit the right code if a transition is detected. :)

Copy link
Collaborator

@paulwalker-arm paulwalker-arm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps I'm suffering from re-re-re-review blindness but nothing is jumping out as obviously wrong. Given it's a default off work-in-progress feature I'm happy for this to be the starting point to evolve from.

MacDue added 5 commits August 18, 2025 14:14
<h1>Short Summary</h1>

This patch adds a new pass `aarch64-machine-sme-abi` to handle the ABI
for ZA state (e.g., lazy saves and agnostic ZA functions). This is
currently not enabled by default (but aims to be by LLVM 22). The goal
is for this new pass to more optimally place ZA saves/restores and to
work with exception handling.

<h1>Long Description</h1>

This patch reimplements management of ZA state for functions with
private and shared ZA state. Agnostic ZA functions will be handled in
a later patch. For now, this is under the flag `-aarch64-new-sme-abi`,
however, we intend for this to replace the current SelectionDAG
implementation once complete.

The approach taken here is to mark instructions as needing ZA to be in a
specific ("ACTIVE" or "LOCAL_SAVED"). Machine instructions implicitly
defining or using ZA registers (such as $zt0 or $zab0) require the
"ACTIVE" state. Function calls may need the "LOCAL_SAVED" or "ACTIVE"
state depending on the callee (having shared or private ZA).

We already add ZA register uses/definitions to machine instructions,
so no extra work is needed to mark these.

Calls need to be marked by glueing Arch64ISD::INOUT_ZA_USE or
Arch64ISD::REQUIRES_ZA_SAVE to the CALLSEQ_START.

These markers are then used by the MachineSMEABIPass to find
instructions where there is a transition between required ZA states.
These are the points we need to insert code to set up or restore a ZA
save (or initialize ZA).

To handle control flow between blocks (which may have different ZA state
requirements), we bundle the incoming and outgoing edges of blocks.
Bundles are formed by assigning each block an incoming and outgoing
bundle (initially, all blocks have their own two bundles). Bundles are
then combined by joining the outgoing bundle of a block with the
incoming bundle of all successors.

These bundles are then assigned a ZA state based on the blocks that
participate in the bundle. Blocks whose incoming edges are in a bundle
"vote" for a ZA state that matches the state required at the first
instruction in the block, and likewise, blocks whose outgoing edges are
in a bundle vote for the ZA state that matches the last instruction in
the block. The ZA state with the most votes is used, which aims to
minimize the number of state transitions.

Change-Id: Iced4a3f329deab3ff8f3fd449a2337f7bbfa71ec
TODO: Make a test case that validates this
Change-Id: I8b50f54a8eab9e78ef40c8002eb1768cb8e0bdb7
Change-Id: I0316ef997160ed0232a72422c75d7180f3c09150
Change-Id: I6660e11a5e85250e135c93c08c15399230a623bb
MacDue added 4 commits August 18, 2025 14:14
Change-Id: I51fbdc4b701a096d1f1638a4abab5c105ab37c5b
Change-Id: I881feb39e07e9871d45f8e023ebfffd40c7e218f
Change-Id: Ia4b386081d67ce44d411c2fa1a835b744b0610e1
Change-Id: I64241bd6f7345cee17d7cb10b984f23122361321
@MacDue MacDue force-pushed the users/MacDue/machine-sme branch from 0d29d28 to b354229 Compare August 18, 2025 14:31
@gbossu
Copy link
Contributor

gbossu commented Aug 18, 2025

I'm happy for this to be the starting point to evolve from.

Same here, so please go ahead if that makes your stack of changes easier to manage :) With my limited SME and ZA management knowledge, I cannot comment on whether this new pass is the right approach or how much it's better than the previous approach, so I'll trust @paulwalker-arm and @sdesmalen-arm on that. What I can say is that the changes do make sense to me, and this is a great starting point to enabling better ZA "stack management".

Edit: Things I would be happy to be considered in follow-ups:

@MacDue
Copy link
Member Author

MacDue commented Aug 18, 2025

Thanks for the reviews 🚀

I'll also add #149062 (comment) (resuming from exceptions thrown in shared ZA calls) to the list of follow-ups. Alongside my own #149062 (comment) (which might overlap with #149062 (comment) -- which I think could achieve a similar result).

Copy link

@padipiee padipiee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good

@MacDue MacDue merged commit eb76404 into main Aug 19, 2025
9 checks passed
@MacDue MacDue deleted the users/MacDue/machine-sme branch August 19, 2025 09:00
@llvm-ci
Copy link
Collaborator

llvm-ci commented Aug 19, 2025

LLVM Buildbot has detected a new failure on builder ml-opt-devrel-x86-64 running on ml-opt-devrel-x86-64-b1 while building llvm at step 5 "build-unified-tree".

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

Here is the relevant piece of the build log for the reference
Step 5 (build-unified-tree) failure: build (failure)
...
251.228 [911/64/2959] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600RegisterInfo.cpp.o
251.435 [910/64/2960] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600Subtarget.cpp.o
254.161 [909/64/2961] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64PreLegalizerCombiner.cpp.o
256.733 [908/64/2962] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetObjectFile.cpp.o
257.168 [907/64/2963] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64StackTaggingPreRA.cpp.o
257.664 [906/64/2964] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIFixSGPRCopies.cpp.o
258.095 [905/64/2965] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIFixVGPRCopies.cpp.o
258.174 [904/64/2966] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64FrameLowering.cpp.o
259.381 [903/64/2967] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SMEPeepholeOpt.cpp.o
259.661 [902/64/2968] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o
FAILED: lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o 
ccache /usr/bin/c++ -DCPUINFO_SUPPORTED_PLATFORM=1 -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/b/ml-opt-devrel-x86-64-b1/build/lib/Target/AArch64 -I/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/lib/Target/AArch64 -I/var/lib/buildbot/.local/lib/python3.7/site-packages/tensorflow/include -I/b/ml-opt-devrel-x86-64-b1/build/include -I/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/include -isystem /tmp/tflitebuild/tensorflow/include -isystem /tmp/tflitebuild/eigen/include/eigen3 -isystem /tmp/tflitebuild/abseil-cpp/include -isystem /tmp/tflitebuild/flatbuffers/include -isystem /tmp/tflitebuild/gemmlowp/include/gemmlowp -isystem /tmp/tflitebuild/ml_dtypes/src/ml_dtypes -isystem /tmp/tflitebuild/ml_dtypes/src/ml_dtypes/ml_dtypes -isystem /tmp/tflitebuild/ruy/include -isystem /tmp/tflitebuild/cpuinfo/include -isystem /tmp/tflitebuild/ARM_NEON_2_x86_SSE/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 -DEIGEN_NEON_GEBP_NR=4 -DTFL_STATIC_LIBRARY_BUILD -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 /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp
/b/ml-opt-devrel-x86-64-b1/llvm-project/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 /b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp:62:
/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/include/llvm/CodeGen/EdgeBundles.h:27: note: ‘EdgeBundles’ declared here as ‘class llvm::EdgeBundles’
   27 | class EdgeBundles {
      | 
260.267 [902/63/2969] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/AsmPrinter.cpp.o
262.569 [902/62/2970] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64RegisterInfo.cpp.o
265.945 [902/61/2971] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64FastISel.cpp.o
266.620 [902/60/2972] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64InstrInfo.cpp.o
269.825 [902/59/2973] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/LTO.cpp.o
271.206 [902/58/2974] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUUnifyDivergentExitNodes.cpp.o
274.356 [902/57/2975] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64Subtarget.cpp.o
274.783 [902/56/2976] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64StackTagging.cpp.o
280.846 [902/55/2977] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ISelDAGToDAG.cpp.o
282.878 [902/54/2978] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CodeGenPrepare.cpp.o
288.100 [902/53/2979] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUAlwaysInlinePass.cpp.o
296.140 [902/52/2980] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetMachine.cpp.o
297.900 [902/51/2981] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUInstCombineIntrinsic.cpp.o
298.138 [902/50/2982] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUImageIntrinsicOptimizer.cpp.o
298.688 [902/49/2983] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPULateCodeGenPrepare.cpp.o
299.409 [902/48/2984] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64InstructionSelector.cpp.o
299.686 [902/47/2985] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUPrepareAGPRAlloc.cpp.o
300.618 [902/46/2986] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUCallLowering.cpp.o
301.558 [902/45/2987] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUHSAMetadataStreamer.cpp.o
302.350 [902/44/2988] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUMIRFormatter.cpp.o
302.737 [902/43/2989] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUCodeGenPrepare.cpp.o
/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:312: warning: ‘bool {anonymous}::AMDGPUCodeGenPrepareImpl::isSigned(const llvm::SelectInst&) const’ defined but not used [-Wunused-function]
  312 | bool AMDGPUCodeGenPrepareImpl::isSigned(const SelectInst &I) const {
      | 
/b/ml-opt-devrel-x86-64-b1/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp:307: warning: ‘bool {anonymous}::AMDGPUCodeGenPrepareImpl::isSigned(const llvm::BinaryOperator&) const’ defined but not used [-Wunused-function]
  307 | bool AMDGPUCodeGenPrepareImpl::isSigned(const BinaryOperator &I) const {
      | 
302.885 [902/42/2990] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUAsmPrinter.cpp.o
303.490 [902/41/2991] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGBuilder.cpp.o
303.871 [902/40/2992] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUPerfHintAnalysis.cpp.o

@MacDue
Copy link
Member Author

MacDue commented Aug 19, 2025

LLVM Buildbot has detected a new failure on builder ml-opt-devrel-x86-64 running on ml-opt-devrel-x86-64-b1 while building llvm at step 5 "build-unified-tree".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/175/builds/23684
Here is the relevant piece of the build log for the reference

I'll push a fix for the buildbots shortly: https://github.com/llvm/llvm-project/pull/154295/files

@llvm-ci
Copy link
Collaborator

llvm-ci commented Aug 19, 2025

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

Here is the relevant piece of the build log for the reference
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,

@llvm-ci
Copy link
Collaborator

llvm-ci commented Aug 19, 2025

LLVM Buildbot has detected a new failure on builder llvm-clang-x86_64-gcc-ubuntu running on sie-linux-worker3 while building llvm at step 5 "build-unified-tree".

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

Here is the relevant piece of the build log for the reference
Step 5 (build-unified-tree) failure: build (failure)
...
51.025 [4092/34/3172] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64FastISel.cpp.o
51.071 [4091/34/3173] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCAsmInfo.cpp.o
51.147 [4090/34/3174] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetObjectFile.cpp.o
51.289 [4089/34/3175] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64SIMDInstrOpt.cpp.o
51.611 [4088/34/3176] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64ELFStreamer.cpp.o
52.418 [4087/34/3177] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64WinCOFFObjectWriter.cpp.o
52.674 [4086/34/3178] Building CXX object lib/Target/AArch64/Utils/CMakeFiles/LLVMAArch64Utils.dir/AArch64BaseInfo.cpp.o
52.687 [4085/34/3179] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MachObjectWriter.cpp.o
53.228 [4084/34/3180] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SMEPeepholeOpt.cpp.o
53.308 [4083/34/3181] 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/llvm-clang-x86_64-gcc-ubuntu/build/lib/Target/AArch64 -I/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/lib/Target/AArch64 -I/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/build/include -I/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/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 -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/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp
/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/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/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp:62:
/home/buildbot/buildbot-root/llvm-clang-x86_64-gcc-ubuntu/llvm-project/llvm/include/llvm/CodeGen/EdgeBundles.h:27: note: ‘EdgeBundles’ declared here as ‘class llvm::EdgeBundles’
   27 | class EdgeBundles {
      | 
53.524 [4083/33/3182] Building RISCVGenExegesis.inc...
53.556 [4083/32/3183] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64WinCOFFStreamer.cpp.o
53.734 [4083/31/3184] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64InstPrinter.cpp.o
53.846 [4083/30/3185] Building RISCVGenMCPseudoLowering.inc...
53.986 [4083/29/3186] Building SparcGenAsmMatcher.inc...
54.059 [4083/28/3187] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64RegisterInfo.cpp.o
54.149 [4083/27/3188] Building RISCVGenMCCodeEmitter.inc...
54.319 [4083/26/3189] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64TargetStreamer.cpp.o
54.339 [4083/25/3190] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64StackTagging.cpp.o
54.417 [4083/24/3191] Building RISCVGenMacroFusion.inc...
54.608 [4083/23/3192] Building RISCVGenO0PreLegalizeGICombiner.inc...
54.677 [4083/22/3193] Building CXX object lib/Target/AArch64/Utils/CMakeFiles/LLVMAArch64Utils.dir/AArch64SMEAttributes.cpp.o
54.745 [4083/21/3194] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64Subtarget.cpp.o
54.801 [4083/20/3195] Building RISCVGenPostLegalizeGICombiner.inc...
54.849 [4083/19/3196] Building RISCVGenRegisterBank.inc...
54.880 [4083/18/3197] Building RISCVGenPreLegalizeGICombiner.inc...
55.063 [4083/17/3198] Building RISCVGenSDNodeInfo.inc...
55.270 [4083/16/3199] Building RISCVGenRegisterInfo.inc...
55.272 [4083/15/3200] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64InstrInfo.cpp.o
55.348 [4083/14/3201] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64InstructionSelector.cpp.o
56.561 [4083/13/3202] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ISelDAGToDAG.cpp.o
56.751 [4083/12/3203] Building RISCVGenSearchableTables.inc...
57.237 [4083/11/3204] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCCodeEmitter.cpp.o
57.496 [4083/10/3205] Building RISCVGenSubtargetInfo.inc...
57.774 [4083/9/3206] Building CXX object lib/Target/AArch64/Disassembler/CMakeFiles/LLVMAArch64Disassembler.dir/AArch64Disassembler.cpp.o
58.686 [4083/8/3207] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCTargetDesc.cpp.o
58.742 [4083/7/3208] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetMachine.cpp.o
61.379 [4083/6/3209] Building RISCVGenInstrInfo.inc...
62.040 [4083/5/3210] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetTransformInfo.cpp.o
63.111 [4083/4/3211] Building RISCVGenGlobalISel.inc...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Aug 19, 2025

LLVM Buildbot has detected a new failure on builder lldb-remote-linux-ubuntu running on as-builder-9 while building llvm at step 7 "build-default".

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

Here is the relevant piece of the build log for the reference
Step 7 (build-default) failure: cmake (failure)
...
36.926 [576/66/4905] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/Obsolete.cpp.o
36.956 [575/66/4906] Building CXX object tools/lldb/source/Plugins/Disassembler/LLVMC/CMakeFiles/lldbPluginDisassemblerLLVMC.dir/DisassemblerLLVMC.cpp.o
37.011 [574/66/4907] Building CXX object tools/lldb/source/API/CMakeFiles/liblldb.dir/SBAddress.cpp.o
37.017 [573/66/4908] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexer.cpp.o
37.029 [572/66/4909] Building CXX object tools/lldb/source/API/CMakeFiles/liblldb.dir/SBAddressRange.cpp.o
37.038 [571/66/4910] Building CXX object tools/lldb/source/API/CMakeFiles/liblldb.dir/SBAddressRangeList.cpp.o
37.054 [570/66/4911] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64CompressJumpTables.cpp.o
37.057 [569/66/4912] Building CXX object tools/lldb/source/API/CMakeFiles/liblldb.dir/SBAttachInfo.cpp.o
37.066 [568/66/4913] Building CXX object tools/lldb/source/API/CMakeFiles/liblldb.dir/SBBlock.cpp.o
37.086 [567/66/4914] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o
FAILED: lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o 
ccache /usr/bin/c++ -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/worker/as-builder-9/lldb-remote-linux-ubuntu/build/lib/Target/AArch64 -I/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/llvm/lib/Target/AArch64 -I/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/include -I/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/llvm/include -D__OPTIMIZE__ -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 -std=c++17 -fvisibility=hidden  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -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/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp
/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp:255: error: declaration of ‘llvm::EdgeBundles* {anonymous}::MachineSMEABI::EdgeBundles’ changes meaning of ‘EdgeBundles’ [-Wchanges-meaning]
  255 |   EdgeBundles *EdgeBundles = nullptr;
      | 
/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp:255: note: used here to mean ‘class llvm::EdgeBundles’
In file included from /home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp:62:
/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/llvm/include/llvm/CodeGen/EdgeBundles.h:27: note: declared here
   27 | class EdgeBundles {
      | 
37.088 [567/65/4915] Building CXX object tools/lldb/source/API/CMakeFiles/liblldb.dir/SBBreakpointLocation.cpp.o
37.090 [567/64/4916] Building CXX object tools/lldb/source/API/CMakeFiles/liblldb.dir/SBBreakpoint.cpp.o
37.100 [567/63/4917] Building CXX object tools/lldb/source/API/CMakeFiles/liblldb.dir/SBBreakpointName.cpp.o
37.104 [567/62/4918] Building CXX object tools/clang/tools/clang-repl/CMakeFiles/clang-repl.dir/ClangRepl.cpp.o
37.107 [567/61/4919] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCAsmInfo.cpp.o
37.171 [567/60/4920] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexUSRs.cpp.o
37.188 [567/59/4921] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexCodeCompletion.cpp.o
37.231 [567/58/4922] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexHigh.cpp.o
37.290 [567/57/4923] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetObjectFile.cpp.o
37.342 [567/56/4924] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexInclusionStack.cpp.o
37.351 [567/55/4925] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXComment.cpp.o
37.387 [567/54/4926] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SMEPeepholeOpt.cpp.o
37.476 [567/53/4927] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64CollectLOH.cpp.o
37.493 [567/52/4928] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndex.cpp.o
37.552 [567/51/4929] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCExpr.cpp.o
37.568 [567/50/4930] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXSourceLocation.cpp.o
37.631 [567/49/4931] Linking CXX static library lib/libclangAST.a
37.701 [567/48/4932] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXStoredDiagnostic.cpp.o
/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/clang/tools/libclang/CXStoredDiagnostic.cpp: In member function ‘virtual CXString clang::CXStoredDiagnostic::getFixIt(unsigned int, CXSourceRange*) const’:
/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/clang/tools/libclang/CXStoredDiagnostic.cpp:103:20: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  103 |   const FixItHint &Hint = Diag.fixit_begin()[FixIt];
      |                    ^~~~
/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/clang/tools/libclang/CXStoredDiagnostic.cpp:103:51: note: the temporary was destroyed at the end of the full expression ‘(&((const clang::CXStoredDiagnostic*)this)->clang::CXStoredDiagnostic::Diag)->clang::StoredDiagnostic::fixit_begin().__gnu_cxx::__normal_iterator<const clang::FixItHint*, std::vector<clang::FixItHint, std::allocator<clang::FixItHint> > >::operator[](((__gnu_cxx::__normal_iterator<const clang::FixItHint*, std::vector<clang::FixItHint, std::allocator<clang::FixItHint> > >::difference_type)FixIt))’
  103 |   const FixItHint &Hint = Diag.fixit_begin()[FixIt];
      |                                                   ^
37.731 [567/47/4933] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXString.cpp.o
37.811 [567/46/4934] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64ELFStreamer.cpp.o
In file included from /usr/include/c++/13/algorithm:60,
                 from /home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/llvm/include/llvm/ADT/SmallVector.h:19,

@llvm-ci
Copy link
Collaborator

llvm-ci commented Aug 19, 2025

LLVM Buildbot has detected a new failure on builder openmp-s390x-linux running on systemz-1 while building llvm at step 5 "compile-openmp".

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

Here is the relevant piece of the build log for the reference
Step 5 (compile-openmp) failure: build (failure)
...
184.983 [3558/4/1897] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64StackTagging.cpp.o
190.593 [3557/4/1898] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetObjectFile.cpp.o
190.765 [3556/4/1899] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64Subtarget.cpp.o
196.143 [3555/4/1900] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SMEABIPass.cpp.o
198.388 [3554/4/1901] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SMEPeepholeOpt.cpp.o
198.646 [3553/4/1902] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetMachine.cpp.o
201.994 [3552/4/1903] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SVEIntrinsicOpts.cpp.o
203.894 [3551/4/1904] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64SIMDInstrOpt.cpp.o
204.886 [3550/4/1905] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetTransformInfo.cpp.o
206.191 [3549/4/1906] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o
FAILED: lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes CCACHE_SLOPPINESS=pch_defines,time_macros /usr/bin/ccache /usr/bin/c++ -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/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.build/lib/Target/AArch64 -I/home/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.src/llvm/lib/Target/AArch64 -I/home/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.build/include -I/home/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.src/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/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.src/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp
/home/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.src/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/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.src/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp:62:
/home/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.src/llvm/include/llvm/CodeGen/EdgeBundles.h:27: note: 'EdgeBundles' declared here as 'class llvm::EdgeBundles'
   27 | class EdgeBundles {
      | 
208.169 [3549/3/1907] Building CXX object lib/Target/AArch64/Disassembler/CMakeFiles/LLVMAArch64Disassembler.dir/AArch64ExternalSymbolizer.cpp.o
212.299 [3549/2/1908] Building CXX object lib/Target/AArch64/Disassembler/CMakeFiles/LLVMAArch64Disassembler.dir/AArch64Disassembler.cpp.o
220.575 [3549/1/1909] Building CXX object lib/Target/AArch64/AsmParser/CMakeFiles/LLVMAArch64AsmParser.dir/AArch64AsmParser.cpp.o
ninja: build stopped: subcommand failed.

@llvm-ci
Copy link
Collaborator

llvm-ci commented Aug 19, 2025

LLVM Buildbot has detected a new failure on builder ppc64le-lld-multistage-test running on ppc64le-lld-multistage-test while building llvm at step 6 "build-stage1-unified-tree".

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

Here is the relevant piece of the build log for the reference
Step 6 (build-stage1-unified-tree) failure: build (failure)
...
87.409 [918/61/5675] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64O0PreLegalizerCombiner.cpp.o
87.531 [918/60/5676] Linking CXX shared module lib/CheckerOptionHandlingAnalyzerPlugin.so
87.532 [918/59/5677] Building AMDGPUGenDAGISel.inc...
87.673 [918/58/5678] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64SpeculationHardening.cpp.o
87.779 [918/57/5679] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64MachineScheduler.cpp.o
87.887 [918/56/5680] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64CondBrTuning.cpp.o
88.007 [918/55/5681] Linking CXX executable unittests/Target/X86/X86Tests
88.078 [918/54/5682] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64MacroFusion.cpp.o
88.470 [918/53/5683] Building CXX object unittests/Target/AArch64/CMakeFiles/AArch64Tests.dir/AArch64SelectionDAGTest.cpp.o
88.471 [918/52/5684] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o
FAILED: lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o 
ccache /usr/lib64/ccache/c++ -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/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/lib/Target/AArch64 -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/llvm/lib/Target/AArch64 -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/build/stage1/include -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/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-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -Wno-misleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++17 -fvisibility=hidden  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -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/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp
/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp:255: error: declaration of ‘llvm::EdgeBundles* {anonymous}::MachineSMEABI::EdgeBundles’ [-fpermissive]
   EdgeBundles *EdgeBundles = nullptr;
 
In file included from /home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp:62:
/home/buildbots/llvm-external-buildbots/workers/ppc64le-lld-multistage-test/ppc64le-lld-multistage-test/llvm-project/llvm/include/llvm/CodeGen/EdgeBundles.h:27: error: changes meaning of ‘EdgeBundles’ from ‘class llvm::EdgeBundles’ [-fpermissive]
 class EdgeBundles {
 
88.656 [918/51/5685] Building AMDGPUGenCallingConv.inc...
88.770 [918/50/5686] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64CleanupLocalDynamicTLSPass.cpp.o
88.825 [918/49/5687] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64CompressJumpTables.cpp.o
89.021 [918/48/5688] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64StackTaggingPreRA.cpp.o
89.068 [918/47/5689] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64LegalizerInfo.cpp.o
89.328 [918/46/5690] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCTargetDesc.cpp.o
89.332 [918/45/5691] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64SelectionDAGInfo.cpp.o
89.602 [918/44/5692] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64PostCoalescerPass.cpp.o
89.621 [918/43/5693] Building CXX object unittests/Target/AArch64/CMakeFiles/AArch64Tests.dir/AddressingModes.cpp.o
89.637 [918/42/5694] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64PostLegalizerLowering.cpp.o
89.973 [918/41/5695] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetObjectFile.cpp.o
89.998 [918/40/5696] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64BranchTargets.cpp.o
90.005 [918/39/5697] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SMEPeepholeOpt.cpp.o
90.132 [918/38/5698] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64MachineFunctionInfo.cpp.o
90.184 [918/37/5699] Building CXX object unittests/Target/AArch64/CMakeFiles/AArch64Tests.dir/Immediates.cpp.o
90.224 [918/36/5700] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64SLSHardening.cpp.o
90.227 [918/35/5701] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64AsmPrinter.cpp.o
90.274 [918/34/5702] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64CallingConvention.cpp.o
90.292 [918/33/5703] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64LowerHomogeneousPrologEpilog.cpp.o
91.054 [918/32/5704] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64PointerAuth.cpp.o
91.159 [918/31/5705] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64MCInstLower.cpp.o
91.168 [918/30/5706] Building CXX object unittests/Target/AArch64/CMakeFiles/AArch64Tests.dir/AArch64RegisterInfoTest.cpp.o
91.218 [918/29/5707] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64PreLegalizerCombiner.cpp.o
91.401 [918/28/5708] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64FalkorHWPFFix.cpp.o
91.456 [918/27/5709] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64PostLegalizerCombiner.cpp.o
91.487 [918/26/5710] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ExpandPseudoInsts.cpp.o
91.631 [918/25/5711] Building CXX object unittests/Target/AArch64/CMakeFiles/AArch64Tests.dir/MatrixRegisterAliasing.cpp.o
92.080 [918/24/5712] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64CollectLOH.cpp.o
92.244 [918/23/5713] Building CXX object tools/llvm-exegesis/lib/AArch64/CMakeFiles/LLVMExegesisAArch64.dir/Target.cpp.o
93.126 [918/22/5714] Building CXX object unittests/Target/AArch64/CMakeFiles/AArch64Tests.dir/AArch64SVESchedPseudoTest.cpp.o

@llvm-ci
Copy link
Collaborator

llvm-ci commented Aug 19, 2025

LLVM Buildbot has detected a new failure on builder clang-ppc64le-linux-test-suite running on ppc64le-clang-test-suite while building llvm at step 5 "build-unified-tree".

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

Here is the relevant piece of the build log for the reference
Step 5 (build-unified-tree) failure: build (failure)
...
44.928 [474/118/5586] Building CXX object lib/Target/AArch64/TargetInfo/CMakeFiles/LLVMAArch64Info.dir/AArch64TargetInfo.cpp.o
45.006 [473/118/5587] Building CXX object tools/llvm-exegesis/CMakeFiles/llvm-exegesis.dir/llvm-exegesis.cpp.o
45.054 [473/117/5588] Linking CXX static library lib/libLLVMAArch64Info.a
45.562 [473/116/5589] Linking CXX static library lib/libclangTidyCERTModule.a
45.633 [473/115/5590] Linking CXX static library lib/libclangTidyModernizeModule.a
46.646 [472/115/5591] Linking CXX static library lib/libclangTidyCppCoreGuidelinesModule.a
47.026 [471/115/5592] Linking CXX static library lib/libclangTidyHICPPModule.a
47.136 [470/115/5593] Linking CXX static library lib/libclangTidyPlugin.a
51.205 [470/114/5594] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SVEIntrinsicOpts.cpp.o
53.516 [470/113/5595] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o
FAILED: lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o 
ccache /usr/lib64/ccache/c++ -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/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/lib/Target/AArch64 -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/llvm-project/llvm/lib/Target/AArch64 -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/build/include -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/llvm-project/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-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -Wno-misleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++17 -fvisibility=hidden  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -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/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp
/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp:255: error: declaration of ‘llvm::EdgeBundles* {anonymous}::MachineSMEABI::EdgeBundles’ [-fpermissive]
   EdgeBundles *EdgeBundles = nullptr;
 
In file included from /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp:62:
/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/llvm-project/llvm/include/llvm/CodeGen/EdgeBundles.h:27: error: changes meaning of ‘EdgeBundles’ from ‘class llvm::EdgeBundles’ [-fpermissive]
 class EdgeBundles {
 
53.835 [470/112/5596] Building CXX object lib/Target/AArch64/Disassembler/CMakeFiles/LLVMAArch64Disassembler.dir/AArch64ExternalSymbolizer.cpp.o
54.104 [470/111/5597] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCAsmInfo.cpp.o
55.296 [470/110/5598] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64AdvSIMDScalarPass.cpp.o
55.298 [470/109/5599] Linking CXX executable bin/pp-trace
55.647 [470/108/5600] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MachObjectWriter.cpp.o
55.940 [470/107/5601] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64MachineScheduler.cpp.o
56.423 [470/106/5602] Linking CXX executable bin/clang-query
57.033 [470/105/5603] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64RedundantCopyElimination.cpp.o
57.396 [470/104/5604] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64MIPeepholeOpt.cpp.o
57.775 [470/103/5605] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64WinCOFFObjectWriter.cpp.o
57.987 [470/102/5606] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SMEABIPass.cpp.o
58.822 [470/101/5607] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ExpandImm.cpp.o
58.874 [470/100/5608] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCExpr.cpp.o
59.221 [470/99/5609] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64ELFObjectWriter.cpp.o
59.262 [470/98/5610] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCCodeEmitter.cpp.o
59.784 [470/97/5611] Building CXX object lib/Target/AArch64/Utils/CMakeFiles/LLVMAArch64Utils.dir/AArch64BaseInfo.cpp.o
59.827 [470/96/5612] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ConditionOptimizer.cpp.o
59.952 [470/95/5613] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64RegisterInfo.cpp.o
59.991 [470/94/5614] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/LTO.cpp.o
In file included from /usr/include/c++/8/cassert:44,
                 from /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/llvm-project/llvm/include/llvm/ProfileData/InstrProf.h:40,
                 from /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/llvm-project/llvm/include/llvm/Analysis/IndirectCallPromotionAnalysis.h:16,
                 from /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/llvm-project/llvm/include/llvm/Transforms/IPO/MemProfContextDisambiguation.h:18,
                 from /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/llvm-project/llvm/lib/LTO/LTO.cpp:60:
/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/llvm-project/llvm/include/llvm/ProfileData/InstrProf.h: In member function ‘llvm::ArrayRef<llvm::InstrProfValueSiteRecord> llvm::InstrProfRecord::getValueSitesForKind(uint32_t) const’:
/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/llvm-project/llvm/include/llvm/ProfileData/InstrProf.h:1028:23: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
     assert(IPVK_First <= ValueKind && ValueKind <= IPVK_Last &&
            ~~~~~~~~~~~^~~~~~~~~~~~
/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/llvm-project/llvm/include/llvm/ProfileData/InstrProf.h: In member function ‘std::vector<llvm::InstrProfValueSiteRecord>& llvm::InstrProfRecord::getOrCreateValueSitesForKind(uint32_t)’:
/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/llvm-project/llvm/include/llvm/ProfileData/InstrProf.h:1037:23: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]

@llvm-ci
Copy link
Collaborator

llvm-ci commented Aug 19, 2025

LLVM Buildbot has detected a new failure on builder publish-sphinx-docs running on as-worker-4 while building llvm at step 5 "build-docs-llvm-html-docs-clang-html-docs-clang...".

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

Here is the relevant piece of the build log for the reference
Step 5 (build-docs-llvm-html-docs-clang-html-docs-clang...) failure: build (failure)
...
537.468 [3722/24/1779] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetObjectFile.cpp.o
537.567 [3721/24/1780] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SMEPeepholeOpt.cpp.o
538.098 [3720/24/1781] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCExpr.cpp.o
538.377 [3719/24/1782] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64AsmBackend.cpp.o
538.681 [3718/24/1783] Building CXX object lib/Target/AArch64/TargetInfo/CMakeFiles/LLVMAArch64Info.dir/AArch64TargetInfo.cpp.o
538.738 [3717/24/1784] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64InstrInfo.cpp.o
538.948 [3716/24/1785] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64ELFStreamer.cpp.o
539.562 [3715/24/1786] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64WinCOFFObjectWriter.cpp.o
539.621 [3714/24/1787] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MachObjectWriter.cpp.o
539.820 [3713/24/1788] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o
FAILED: lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o 
/usr/bin/c++ -DGTEST_HAS_RTTI=0 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/buildbot/as-worker-4/publish-sphinx-docs/build/lib/Target/AArch64 -I/home/buildbot/as-worker-4/publish-sphinx-docs/llvm-project/llvm/lib/Target/AArch64 -I/home/buildbot/as-worker-4/publish-sphinx-docs/build/include -I/home/buildbot/as-worker-4/publish-sphinx-docs/llvm-project/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 -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -fvisibility=hidden  -fno-exceptions -funwind-tables -fno-rtti -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/as-worker-4/publish-sphinx-docs/llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp
/home/buildbot/as-worker-4/publish-sphinx-docs/llvm-project/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/as-worker-4/publish-sphinx-docs/llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp:62:
/home/buildbot/as-worker-4/publish-sphinx-docs/llvm-project/llvm/include/llvm/CodeGen/EdgeBundles.h:27: note: ‘EdgeBundles’ declared here as ‘class llvm::EdgeBundles’
   27 | class EdgeBundles {
      | 
540.010 [3713/23/1789] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64StackTagging.cpp.o
541.383 [3713/22/1790] Building CXX object lib/Target/AArch64/Utils/CMakeFiles/LLVMAArch64Utils.dir/AArch64BaseInfo.cpp.o
541.499 [3713/21/1791] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64TargetStreamer.cpp.o
542.025 [3713/20/1792] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64WinCOFFStreamer.cpp.o
542.347 [3713/19/1793] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64InstPrinter.cpp.o
542.714 [3713/18/1794] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMConstantPoolValue.cpp.o
542.925 [3713/17/1795] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64Subtarget.cpp.o
543.749 [3713/16/1796] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ISelDAGToDAG.cpp.o
544.237 [3713/15/1797] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCCodeEmitter.cpp.o
544.312 [3713/14/1798] Building CXX object lib/Target/AArch64/Utils/CMakeFiles/LLVMAArch64Utils.dir/AArch64SMEAttributes.cpp.o
547.575 [3713/13/1799] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetMachine.cpp.o
550.760 [3713/12/1800] Building CXX object lib/Target/AArch64/Disassembler/CMakeFiles/LLVMAArch64Disassembler.dir/AArch64Disassembler.cpp.o
551.265 [3713/11/1801] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCTargetDesc.cpp.o
551.332 [3713/10/1802] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMCallLowering.cpp.o
551.929 [3713/9/1803] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMCallingConv.cpp.o
552.765 [3713/8/1804] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMFixCortexA57AES1742098Pass.cpp.o
556.732 [3713/7/1805] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetTransformInfo.cpp.o
557.269 [3713/6/1806] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMConstantIslandPass.cpp.o
558.095 [3713/5/1807] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMExpandPseudoInsts.cpp.o
560.569 [3713/4/1808] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMFastISel.cpp.o
561.558 [3713/3/1809] Building CXX object lib/Target/AArch64/AsmParser/CMakeFiles/LLVMAArch64AsmParser.dir/AArch64AsmParser.cpp.o
568.249 [3713/2/1810] Building InstCombineTables.inc...
578.033 [3713/1/1811] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ISelLowering.cpp.o
/home/buildbot/as-worker-4/publish-sphinx-docs/llvm-project/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp: In function ‘bool shouldLowerTailCallStackArg(const llvm::MachineFunction&, const llvm::CCValAssign&, llvm::SDValue, llvm::ISD::ArgFlagsTy, int)’:
/home/buildbot/as-worker-4/publish-sphinx-docs/llvm-project/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))
      | 
ninja: build stopped: subcommand failed.

@llvm-ci
Copy link
Collaborator

llvm-ci commented Aug 19, 2025

LLVM Buildbot has detected a new failure on builder clang-ppc64le-linux-multistage running on ppc64le-clang-multistage-test while building llvm at step 4 "build stage 1".

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

Here is the relevant piece of the build log for the reference
Step 4 (build stage 1) failure: 'ninja' (failure)
...
[5955/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64SIMDInstrOpt.cpp.o
[5956/6483] Building AMDGPUGenRegisterBank.inc...
[5957/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64MIPeepholeOpt.cpp.o
[5958/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64MacroFusion.cpp.o
[5959/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64DeadRegisterDefinitionsPass.cpp.o
[5960/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64SelectionDAGInfo.cpp.o
[5961/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64A53Fix835769.cpp.o
[5962/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64SpeculationHardening.cpp.o
[5963/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64MachineScheduler.cpp.o
[5964/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o
FAILED: lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o 
ccache /usr/lib64/ccache/c++ -DGTEST_HAS_RTTI=0 -DLLVM_EXPORTS -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/stage1/lib/Target/AArch64 -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/llvm/llvm/lib/Target/AArch64 -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/stage1/include -I/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/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-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -Wno-misleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++17 -fPIC  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -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/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/llvm/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp
/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/llvm/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp:255: error: declaration of ‘llvm::EdgeBundles* {anonymous}::MachineSMEABI::EdgeBundles’ [-fpermissive]
   EdgeBundles *EdgeBundles = nullptr;
 
In file included from /home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/llvm/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp:62:
/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-multistage-test/clang-ppc64le-multistage/llvm/llvm/include/llvm/CodeGen/EdgeBundles.h:27: error: changes meaning of ‘EdgeBundles’ from ‘class llvm::EdgeBundles’ [-fpermissive]
 class EdgeBundles {
 
[5965/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64PostSelectOptimize.cpp.o
[5966/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetObjectFile.cpp.o
[5967/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64PostCoalescerPass.cpp.o
[5968/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64StorePairSuppress.cpp.o
[5969/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64BranchTargets.cpp.o
[5970/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64MachineFunctionInfo.cpp.o
[5971/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64PointerAuth.cpp.o
[5972/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64FalkorHWPFFix.cpp.o
[5973/6483] Building CXX object tools/llvm-exegesis/lib/AArch64/CMakeFiles/obj.LLVMExegesisAArch64.dir/Target.cpp.o
[5974/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64A57FPLoadBalancing.cpp.o
[5975/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64CompressJumpTables.cpp.o
[5976/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ExpandPseudoInsts.cpp.o
[5977/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64SLSHardening.cpp.o
[5978/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64CallingConvention.cpp.o
[5979/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64LowerHomogeneousPrologEpilog.cpp.o
[5980/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64MCInstLower.cpp.o
[5981/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64CallLowering.cpp.o
[5982/6483] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCTargetDesc.cpp.o
[5983/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64LoadStoreOptimizer.cpp.o
[5984/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64PostLegalizerLowering.cpp.o
[5985/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64LegalizerInfo.cpp.o
[5986/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64AsmPrinter.cpp.o
[5987/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64O0PreLegalizerCombiner.cpp.o
[5988/6483] Building CXX object lib/Target/AArch64/Disassembler/CMakeFiles/LLVMAArch64Disassembler.dir/AArch64Disassembler.cpp.o
[5989/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64PostLegalizerCombiner.cpp.o
[5990/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64Subtarget.cpp.o
[5991/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64PreLegalizerCombiner.cpp.o
[5992/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetMachine.cpp.o
[5993/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64FrameLowering.cpp.o
[5994/6483] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64FastISel.cpp.o

@llvm-ci
Copy link
Collaborator

llvm-ci commented Aug 19, 2025

LLVM Buildbot has detected a new failure on builder llvm-clang-x86_64-gcc-ubuntu-no-asserts running on doug-worker-6 while building llvm at step 5 "build-unified-tree".

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

Here is the relevant piece of the build log for the reference
Step 5 (build-unified-tree) failure: build (failure)
...
/home/buildbot/buildbot-root/gcc-no-asserts/llvm-project/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))
      | 
219.312 [5238/8/2052] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SMEPeepholeOpt.cpp.o
220.643 [5237/8/2053] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SVEIntrinsicOpts.cpp.o
223.748 [5236/8/2054] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetMachine.cpp.o
226.887 [5235/8/2055] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64ELFObjectWriter.cpp.o
227.189 [5234/8/2056] Building CXX object lib/Target/AArch64/Disassembler/CMakeFiles/LLVMAArch64Disassembler.dir/AArch64ExternalSymbolizer.cpp.o
227.288 [5233/8/2057] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64SIMDInstrOpt.cpp.o
228.255 [5232/8/2058] 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_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/buildbot/buildbot-root/gcc-no-asserts/build/lib/Target/AArch64 -I/home/buildbot/buildbot-root/gcc-no-asserts/llvm-project/llvm/lib/Target/AArch64 -I/home/buildbot/buildbot-root/gcc-no-asserts/build/include -I/home/buildbot/buildbot-root/gcc-no-asserts/llvm-project/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 -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -fvisibility=hidden  -fno-exceptions -funwind-tables -fno-rtti -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/gcc-no-asserts/llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp
/home/buildbot/buildbot-root/gcc-no-asserts/llvm-project/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/gcc-no-asserts/llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp:62:
/home/buildbot/buildbot-root/gcc-no-asserts/llvm-project/llvm/include/llvm/CodeGen/EdgeBundles.h:27: note: ‘EdgeBundles’ declared here as ‘class llvm::EdgeBundles’
   27 | class EdgeBundles {
      | 
233.010 [5232/7/2059] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64AsmBackend.cpp.o
234.592 [5232/6/2060] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCAsmInfo.cpp.o
234.909 [5232/5/2061] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetTransformInfo.cpp.o
235.668 [5232/4/2062] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64ELFStreamer.cpp.o
236.096 [5232/3/2063] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64InstPrinter.cpp.o
239.487 [5232/2/2064] Building CXX object lib/Target/AArch64/Disassembler/CMakeFiles/LLVMAArch64Disassembler.dir/AArch64Disassembler.cpp.o
247.968 [5232/1/2065] Building CXX object lib/Target/AArch64/AsmParser/CMakeFiles/LLVMAArch64AsmParser.dir/AArch64AsmParser.cpp.o
ninja: build stopped: subcommand failed.

@llvm-ci
Copy link
Collaborator

llvm-ci commented Aug 19, 2025

LLVM Buildbot has detected a new failure on builder clang-s390x-linux running on systemz-1 while building llvm at step 4 "build stage 1".

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

Here is the relevant piece of the build log for the reference
Step 4 (build stage 1) failure: 'ninja -j4' (failure)
...
[1891/6177] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64StackTaggingPreRA.cpp.o
[1892/6177] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64StackTagging.cpp.o
[1893/6177] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64Subtarget.cpp.o
[1894/6177] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetObjectFile.cpp.o
[1895/6177] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SMEABIPass.cpp.o
[1896/6177] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetMachine.cpp.o
[1897/6177] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SMEPeepholeOpt.cpp.o
[1898/6177] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SVEIntrinsicOpts.cpp.o
[1899/6177] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64SIMDInstrOpt.cpp.o
[1900/6177] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o
FAILED: lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes CCACHE_SLOPPINESS=pch_defines,time_macros /usr/bin/ccache /usr/bin/c++ -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/uweigand/sandbox/buildbot/clang-s390x-linux/stage1/lib/Target/AArch64 -I/home/uweigand/sandbox/buildbot/clang-s390x-linux/llvm/llvm/lib/Target/AArch64 -I/home/uweigand/sandbox/buildbot/clang-s390x-linux/stage1/include -I/home/uweigand/sandbox/buildbot/clang-s390x-linux/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/uweigand/sandbox/buildbot/clang-s390x-linux/llvm/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp
/home/uweigand/sandbox/buildbot/clang-s390x-linux/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/uweigand/sandbox/buildbot/clang-s390x-linux/llvm/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp:62:
/home/uweigand/sandbox/buildbot/clang-s390x-linux/llvm/llvm/include/llvm/CodeGen/EdgeBundles.h:27: note: 'EdgeBundles' declared here as 'class llvm::EdgeBundles'
   27 | class EdgeBundles {
      | 
[1901/6177] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetTransformInfo.cpp.o
[1902/6177] Building CXX object lib/Target/AArch64/Disassembler/CMakeFiles/LLVMAArch64Disassembler.dir/AArch64Disassembler.cpp.o
[1903/6177] Building CXX object lib/Target/AArch64/AsmParser/CMakeFiles/LLVMAArch64AsmParser.dir/AArch64AsmParser.cpp.o
ninja: build stopped: subcommand failed.

@@ -0,0 +1,288 @@
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sme -aarch64-new-sme-abi < %s | FileCheck %s
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This testcase fails if llc is built with EXPENSIVE_CHECKS, or if you justr add "-verify-machineinstrs" to the RUN line:

*** Bad machine code: Using an undefined physical register ***
- function:    za_with_raii
- basic block: %bb.1 throw_exception (0x563ee44cad28)
- instruction: %12:gpr64 = COPY $x0
- operand 1:   $x0
LLVM ERROR: Found 1 machine code errors.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks 👍 I'm aware of this issue and have a fix that'll be posting shortly

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See #154325

@llvm-ci
Copy link
Collaborator

llvm-ci commented Aug 19, 2025

LLVM Buildbot has detected a new failure on builder clang-s390x-linux-lnt running on systemz-1 while building llvm at step 6 "build stage 1".

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

Here is the relevant piece of the build log for the reference
Step 6 (build stage 1) failure: 'ninja -j4' (failure)
...
[1892/6177] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64StackTagging.cpp.o
[1893/6177] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64Subtarget.cpp.o
[1894/6177] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetObjectFile.cpp.o
[1895/6177] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SMEABIPass.cpp.o
[1896/6177] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetMachine.cpp.o
[1897/6177] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SMEPeepholeOpt.cpp.o
[1898/6177] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SVEIntrinsicOpts.cpp.o
[1899/6177] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetTransformInfo.cpp.o
[1900/6177] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64SIMDInstrOpt.cpp.o
[1901/6177] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o
FAILED: lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes CCACHE_SLOPPINESS=pch_defines,time_macros /usr/bin/ccache /usr/bin/c++ -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/uweigand/sandbox/buildbot/clang-s390x-linux-lnt/stage1/lib/Target/AArch64 -I/home/uweigand/sandbox/buildbot/clang-s390x-linux-lnt/llvm/llvm/lib/Target/AArch64 -I/home/uweigand/sandbox/buildbot/clang-s390x-linux-lnt/stage1/include -I/home/uweigand/sandbox/buildbot/clang-s390x-linux-lnt/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/uweigand/sandbox/buildbot/clang-s390x-linux-lnt/llvm/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp
/home/uweigand/sandbox/buildbot/clang-s390x-linux-lnt/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/uweigand/sandbox/buildbot/clang-s390x-linux-lnt/llvm/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp:62:
/home/uweigand/sandbox/buildbot/clang-s390x-linux-lnt/llvm/llvm/include/llvm/CodeGen/EdgeBundles.h:27: note: 'EdgeBundles' declared here as 'class llvm::EdgeBundles'
   27 | class EdgeBundles {
      | 
[1902/6177] Building CXX object lib/Target/AArch64/Disassembler/CMakeFiles/LLVMAArch64Disassembler.dir/AArch64ExternalSymbolizer.cpp.o
[1903/6177] Building CXX object lib/Target/AArch64/Disassembler/CMakeFiles/LLVMAArch64Disassembler.dir/AArch64Disassembler.cpp.o
[1904/6177] Building CXX object lib/Target/AArch64/AsmParser/CMakeFiles/LLVMAArch64AsmParser.dir/AArch64AsmParser.cpp.o
ninja: build stopped: subcommand failed.

@llvm-ci
Copy link
Collaborator

llvm-ci commented Aug 19, 2025

LLVM Buildbot has detected a new failure on builder clang-with-thin-lto-ubuntu running on as-worker-92 while building llvm at step 6 "build-stage1-compiler".

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

Here is the relevant piece of the build log for the reference
Step 6 (build-stage1-compiler) failure: build (failure)
...
262.416 [4341/72/2240] Building CXX object lib/Target/BPF/MCTargetDesc/CMakeFiles/LLVMBPFDesc.dir/BPFMCCodeEmitter.cpp.o
262.466 [4340/72/2241] Building CXX object lib/Target/BPF/MCTargetDesc/CMakeFiles/LLVMBPFDesc.dir/BPFELFObjectWriter.cpp.o
262.561 [4339/72/2242] Building CXX object lib/Target/BPF/Disassembler/CMakeFiles/LLVMBPFDisassembler.dir/BPFDisassembler.cpp.o
262.705 [4338/72/2243] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFASpaceCastSimplifyPass.cpp.o
262.886 [4337/72/2244] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SMEPeepholeOpt.cpp.o
263.084 [4336/72/2245] Building CXX object lib/Target/BPF/MCTargetDesc/CMakeFiles/LLVMBPFDesc.dir/BPFMCTargetDesc.cpp.o
263.152 [4335/72/2246] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64LoadStoreOptimizer.cpp.o
263.380 [4334/72/2247] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64AsmPrinter.cpp.o
263.478 [4333/72/2248] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64StackTaggingPreRA.cpp.o
263.722 [4332/72/2249] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o
FAILED: lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o 
/usr/bin/c++ -DGTEST_HAS_RTTI=0 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/buildbot/as-worker-92/clang-with-thin-lto-ubuntu/build/stage1/lib/Target/AArch64 -I/home/buildbot/as-worker-92/clang-with-thin-lto-ubuntu/llvm-project/llvm/lib/Target/AArch64 -I/home/buildbot/as-worker-92/clang-with-thin-lto-ubuntu/build/stage1/include -I/home/buildbot/as-worker-92/clang-with-thin-lto-ubuntu/llvm-project/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 -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/as-worker-92/clang-with-thin-lto-ubuntu/llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp
/home/buildbot/as-worker-92/clang-with-thin-lto-ubuntu/llvm-project/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/as-worker-92/clang-with-thin-lto-ubuntu/llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp:62:
/home/buildbot/as-worker-92/clang-with-thin-lto-ubuntu/llvm-project/llvm/include/llvm/CodeGen/EdgeBundles.h:27: note: ‘EdgeBundles’ declared here as ‘class llvm::EdgeBundles’
   27 | class EdgeBundles {
      | 
263.804 [4332/71/2250] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64InstPrinter.cpp.o
264.217 [4332/70/2251] Building CXX object lib/Target/ARM/Disassembler/CMakeFiles/LLVMARMDisassembler.dir/ARMDisassembler.cpp.o
264.263 [4332/69/2252] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFMCInstLower.cpp.o
264.316 [4332/68/2253] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFIRPeephole.cpp.o
264.704 [4332/67/2254] Building CXX object lib/Target/BPF/AsmParser/CMakeFiles/LLVMBPFAsmParser.dir/BPFAsmParser.cpp.o
265.074 [4332/66/2255] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMMCTargetDesc.cpp.o
265.144 [4332/65/2256] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFCheckAndAdjustIR.cpp.o
265.176 [4332/64/2257] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFPreserveDIType.cpp.o
265.189 [4332/63/2258] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64RegisterInfo.cpp.o
265.251 [4332/62/2259] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFPreserveStaticOffset.cpp.o
265.342 [4332/61/2260] Building CXX object lib/Target/BPF/MCTargetDesc/CMakeFiles/LLVMBPFDesc.dir/BPFInstPrinter.cpp.o
266.313 [4332/60/2261] Building AMDGPUGenRegisterBank.inc...
266.957 [4332/59/2262] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonCFGOptimizer.cpp.o
267.141 [4332/58/2263] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFInstrInfo.cpp.o
267.695 [4332/57/2264] Building CXX object lib/Target/ARM/AsmParser/CMakeFiles/LLVMARMAsmParser.dir/ARMAsmParser.cpp.o
267.956 [4332/56/2265] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCCodeEmitter.cpp.o
268.125 [4332/55/2266] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFSelectionDAGInfo.cpp.o
268.384 [4332/54/2267] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonCommonGEP.cpp.o
268.616 [4332/53/2268] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonGenExtract.cpp.o
268.960 [4332/52/2269] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCTargetDesc.cpp.o
269.085 [4332/51/2270] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFFrameLowering.cpp.o
269.192 [4332/50/2271] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonFixupHwLoops.cpp.o
269.566 [4332/49/2272] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64Subtarget.cpp.o
269.568 [4332/48/2273] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64StackTagging.cpp.o
269.927 [4332/47/2274] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonBranchRelaxation.cpp.o
270.205 [4332/46/2275] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFMIChecking.cpp.o
270.231 [4332/45/2276] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFRegisterInfo.cpp.o
270.399 [4332/44/2277] Building CXX object lib/Target/AArch64/Disassembler/CMakeFiles/LLVMAArch64Disassembler.dir/AArch64Disassembler.cpp.o
270.561 [4332/43/2278] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/BitTracker.cpp.o
270.590 [4332/42/2279] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFSubtarget.cpp.o

@llvm-ci
Copy link
Collaborator

llvm-ci commented Aug 19, 2025

LLVM Buildbot has detected a new failure on builder flang-aarch64-latest-gcc running on linaro-flang-aarch64-latest-gcc while building llvm at step 5 "build-unified-tree".

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

Here is the relevant piece of the build log for the reference
Step 5 (build-unified-tree) failure: build (failure)
...
107.524 [5026/12/2592] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SVEIntrinsicOpts.cpp.o
107.532 [5020/17/2593] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetObjectFile.cpp.o
109.503 [5020/16/2594] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64StackTagging.cpp.o
110.627 [5020/15/2595] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64Subtarget.cpp.o
111.093 [5020/14/2596] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64SIMDInstrOpt.cpp.o
112.355 [5018/15/2597] Building CXX object lib/Target/AArch64/Disassembler/CMakeFiles/LLVMAArch64Disassembler.dir/AArch64ExternalSymbolizer.cpp.o
112.996 [5018/14/2598] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SMEPeepholeOpt.cpp.o
113.194 [5018/13/2599] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCAsmInfo.cpp.o
113.232 [5018/12/2600] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64ELFObjectWriter.cpp.o
114.177 [5018/11/2601] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o
FAILED: lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o 
/usr/local/bin/c++ -DGTEST_HAS_RTTI=0 -DLLVM_EXPORTS -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/build/lib/Target/AArch64 -I/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/llvm-project/llvm/lib/Target/AArch64 -I/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/build/include -I/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/llvm-project/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 -std=c++17 -fPIC  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -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/tcwg-buildbot/worker/flang-aarch64-latest-gcc/llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp
../llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp:255: error: declaration of ‘llvm::EdgeBundles* {anonymous}::MachineSMEABI::EdgeBundles’ changes meaning of ‘EdgeBundles’ [-Wchanges-meaning]
  255 |   EdgeBundles *EdgeBundles = nullptr;
      | 
../llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp:255: note: used here to mean ‘class llvm::EdgeBundles’
In file included from ../llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp:62:
../llvm-project/llvm/include/llvm/CodeGen/EdgeBundles.h:27: note: declared here
   27 | class EdgeBundles {
      | 
114.880 [5018/10/2602] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64AsmBackend.cpp.o
115.586 [5018/9/2603] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64ELFStreamer.cpp.o
In file included from /usr/include/c++/13/algorithm:60,
                 from ../llvm-project/llvm/include/llvm/ADT/SmallVector.h:19,
                 from ../llvm-project/llvm/include/llvm/MC/MCELFStreamer.h:12,
                 from ../llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.h:16,
                 from ../llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp:15:
In static member function ‘static _Up* std::__copy_move<_IsMove, true, std::random_access_iterator_tag>::__copy_m(_Tp*, _Tp*, _Up*) [with _Tp = const llvm::MCSymbol*; _Up = 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++/13/bits/stl_algobase.h:506: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++/13/bits/stl_algobase.h:533: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++/13/bits/stl_algobase.h:540:31,
    inlined from ‘_OI std::move(_II, _II, _OI) [with _II = const llvm::MCSymbol**; _OI = const llvm::MCSymbol**]’ at /usr/include/c++/13/bits/stl_algobase.h:665:38,
    inlined from ‘llvm::SmallVectorImpl<T>& llvm::SmallVectorImpl<T>::operator=(llvm::SmallVectorImpl<T>&&) [with T = const llvm::MCSymbol*]’ at ../llvm-project/llvm/include/llvm/ADT/SmallVector.h:1071:25,
    inlined from ‘virtual void llvm::AArch64TargetELFStreamer::finish()’ at ../llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp:512:31:
/usr/include/c++/13/bits/stl_algobase.h:437:30: warning: ‘void* __builtin_memmove(void*, const void*, long unsigned int)’ offset [16, 24] is out of the bounds [0, 16] of object ‘NewSyms’ with type ‘llvm::SmallVector<const llvm::MCSymbol*, 0>’ [-Warray-bounds=]
  437 |             __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
      |             ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp: In member function ‘virtual void llvm::AArch64TargetELFStreamer::finish()’:
../llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp:489:40: note: ‘NewSyms’ declared here
  489 |       SmallVector<const MCSymbol *, 0> NewSyms;
      |                                        ^~~~~~~
In static member function ‘static _Up* std::__copy_move<_IsMove, true, std::random_access_iterator_tag>::__copy_m(_Tp*, _Tp*, _Up*) [with _Tp = const llvm::MCSymbol*; _Up = 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++/13/bits/stl_algobase.h:506: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++/13/bits/stl_algobase.h:533: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++/13/bits/stl_algobase.h:540:31,
    inlined from ‘_OI std::move(_II, _II, _OI) [with _II = const llvm::MCSymbol**; _OI = const llvm::MCSymbol**]’ at /usr/include/c++/13/bits/stl_algobase.h:665:38,
    inlined from ‘llvm::SmallVectorImpl<T>& llvm::SmallVectorImpl<T>::operator=(llvm::SmallVectorImpl<T>&&) [with T = const llvm::MCSymbol*]’ at ../llvm-project/llvm/include/llvm/ADT/SmallVector.h:1094:14,
    inlined from ‘virtual void llvm::AArch64TargetELFStreamer::finish()’ at ../llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp:512:31:
/usr/include/c++/13/bits/stl_algobase.h:437:30: warning: ‘void* __builtin_memmove(void*, const void*, long unsigned int)’ offset [16, 24] is out of the bounds [0, 16] of object ‘NewSyms’ with type ‘llvm::SmallVector<const llvm::MCSymbol*, 0>’ [-Warray-bounds=]

MacDue added a commit that referenced this pull request Aug 21, 2025
#154325)

These liveins are not defined by predecessors, so should not be 
considered as liveouts in predecessor blocks. This resolves:

- #149062 (comment)
- #153417 (comment)
llvm-sync bot pushed a commit to arm/arm-toolchain that referenced this pull request Aug 21, 2025
…ing liveouts (#154325)

These liveins are not defined by predecessors, so should not be
considered as liveouts in predecessor blocks. This resolves:

- llvm/llvm-project#149062 (comment)
- llvm/llvm-project#153417 (comment)
@llvm-ci
Copy link
Collaborator

llvm-ci commented Aug 21, 2025

LLVM Buildbot has detected a new failure on builder clang-with-lto-ubuntu running on as-worker-91 while building llvm at step 6 "build-stage1-compiler".

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

Here is the relevant piece of the build log for the reference
Step 6 (build-stage1-compiler) failure: build (failure)
...
268.380 [4349/72/2232] Building CXX object lib/Target/BPF/MCTargetDesc/CMakeFiles/LLVMBPFDesc.dir/BPFELFObjectWriter.cpp.o
268.463 [4348/72/2233] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/SMEPeepholeOpt.cpp.o
268.465 [4347/72/2234] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64AsmPrinter.cpp.o
268.550 [4346/72/2235] Building CXX object lib/Target/ARM/Disassembler/CMakeFiles/LLVMARMDisassembler.dir/ARMDisassembler.cpp.o
268.582 [4345/72/2236] Building CXX object lib/Target/BPF/MCTargetDesc/CMakeFiles/LLVMBPFDesc.dir/BPFAsmBackend.cpp.o
268.996 [4344/72/2237] Building CXX object lib/Target/BPF/Disassembler/CMakeFiles/LLVMBPFDisassembler.dir/BPFDisassembler.cpp.o
269.002 [4343/72/2238] Building CXX object lib/Target/BPF/MCTargetDesc/CMakeFiles/LLVMBPFDesc.dir/BPFMCCodeEmitter.cpp.o
269.031 [4342/72/2239] Building CXX object lib/Target/AArch64/Utils/CMakeFiles/LLVMAArch64Utils.dir/AArch64SMEAttributes.cpp.o
269.048 [4341/72/2240] Building CXX object lib/Target/BPF/MCTargetDesc/CMakeFiles/LLVMBPFDesc.dir/BPFMCTargetDesc.cpp.o
269.113 [4340/72/2241] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o
FAILED: lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/MachineSMEABIPass.cpp.o 
/usr/bin/c++ -DGTEST_HAS_RTTI=0 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/buildbot/as-worker-91/clang-with-lto-ubuntu/build/stage1/lib/Target/AArch64 -I/home/buildbot/as-worker-91/clang-with-lto-ubuntu/llvm-project/llvm/lib/Target/AArch64 -I/home/buildbot/as-worker-91/clang-with-lto-ubuntu/build/stage1/include -I/home/buildbot/as-worker-91/clang-with-lto-ubuntu/llvm-project/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 -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/as-worker-91/clang-with-lto-ubuntu/llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp
/home/buildbot/as-worker-91/clang-with-lto-ubuntu/llvm-project/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/as-worker-91/clang-with-lto-ubuntu/llvm-project/llvm/lib/Target/AArch64/MachineSMEABIPass.cpp:62:
/home/buildbot/as-worker-91/clang-with-lto-ubuntu/llvm-project/llvm/include/llvm/CodeGen/EdgeBundles.h:27: note: ‘EdgeBundles’ declared here as ‘class llvm::EdgeBundles’
   27 | class EdgeBundles {
      | 
269.278 [4340/71/2242] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFASpaceCastSimplifyPass.cpp.o
269.566 [4340/70/2243] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64LoadStoreOptimizer.cpp.o
269.658 [4340/69/2244] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64InstPrinter.cpp.o
270.828 [4340/68/2245] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFIRPeephole.cpp.o
270.899 [4340/67/2246] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64RegisterInfo.cpp.o
271.057 [4340/66/2247] Building CXX object lib/Target/BPF/AsmParser/CMakeFiles/LLVMBPFAsmParser.dir/BPFAsmParser.cpp.o
271.172 [4340/65/2248] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFMCInstLower.cpp.o
271.182 [4340/64/2249] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFCheckAndAdjustIR.cpp.o
271.605 [4340/63/2250] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFPreserveDIType.cpp.o
271.825 [4340/62/2251] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMMCTargetDesc.cpp.o
271.942 [4340/61/2252] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFPreserveStaticOffset.cpp.o
272.001 [4340/60/2253] Building CXX object lib/Target/BPF/MCTargetDesc/CMakeFiles/LLVMBPFDesc.dir/BPFInstPrinter.cpp.o
273.362 [4340/59/2254] Building AMDGPUGenRegisterBank.inc...
273.380 [4340/58/2255] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonCFGOptimizer.cpp.o
273.404 [4340/57/2256] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCCodeEmitter.cpp.o
273.516 [4340/56/2257] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFFrameLowering.cpp.o
273.667 [4340/55/2258] Building CXX object lib/Target/ARM/AsmParser/CMakeFiles/LLVMARMAsmParser.dir/ARMAsmParser.cpp.o
273.818 [4340/54/2259] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64Subtarget.cpp.o
273.874 [4340/53/2260] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMMCCodeEmitter.cpp.o
273.879 [4340/52/2261] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFInstrInfo.cpp.o
274.032 [4340/51/2262] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCTargetDesc.cpp.o
274.697 [4340/50/2263] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64StackTagging.cpp.o
275.103 [4340/49/2264] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonGenExtract.cpp.o
275.174 [4340/48/2265] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonBranchRelaxation.cpp.o
275.719 [4340/47/2266] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFMISimplifyPatchable.cpp.o
275.776 [4340/46/2267] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFSelectionDAGInfo.cpp.o
275.862 [4340/45/2268] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFAsmPrinter.cpp.o
275.890 [4340/44/2269] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonBlockRanges.cpp.o
276.063 [4340/43/2270] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonAsmPrinter.cpp.o
276.435 [4340/42/2271] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/BitTracker.cpp.o

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants