The branch stable/14 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=df67e880e278d6b6d35c254d92bba71d77e8ca8b
commit df67e880e278d6b6d35c254d92bba71d77e8ca8b Author: Dimitry Andric <[email protected]> AuthorDate: 2026-01-10 14:45:16 +0000 Commit: Dimitry Andric <[email protected]> CommitDate: 2026-05-29 22:59:36 +0000 Merge commit 598f21e9fcf7 from llvm git (by zhijian lin): [PowerPC] need to set CallFrameSize for the pass PPCReduceCRLogicals when insert a new block (#151017) In the [ [CodeGen] Store call frame size in MachineBasicBlock](https://reviews.llvm.org/D156113), it mentions When a basic block has been split in the middle of a call sequence. the call frame size may not be zero, it need to set the setCallFrameSize for the new MachineBasicBlock. but in the function `splitMBB(BlockSplitInfo &BSI)` in the llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp , it do not setCallFrameSzie for the new MachineBasicBlock `NewMBB`, we will setCallFrameSzie in the patch. the patch fix the crash mention in https://github.com/llvm/llvm-project/pull/144594#issuecomment-2993736654 This fixes "error in backend: Found 1 machine code errors" while crypto/openssh/packet.c for PowerPC64. PR: 292067 MFC after: 1 month (cherry picked from commit 48c35ae6ebfc6d9a2259979d915fd3bc5d6c01db) --- contrib/llvm-project/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp b/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp index 0ffd35dfa279..74bce436b53e 100644 --- a/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp +++ b/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp @@ -248,6 +248,10 @@ static bool splitMBB(BlockSplitInfo &BSI) { } addIncomingValuesToPHIs(NewBRTarget, ThisMBB, NewMBB, MRI); + // Set the call frame size on ThisMBB to the new basic blocks. + // See https://reviews.llvm.org/D156113. + NewMBB->setCallFrameSize(TII->getCallFrameSizeAt(ThisMBB->back())); + LLVM_DEBUG(dbgs() << "After splitting, ThisMBB:\n"; ThisMBB->dump()); LLVM_DEBUG(dbgs() << "NewMBB:\n"; NewMBB->dump()); LLVM_DEBUG(dbgs() << "New branch-to block:\n"; NewBRTarget->dump());
