[llvm] [AArch64] Add Statistics for Probed Stacks (PR #155661)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 27 10:21:34 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-aarch64
Author: Kyungwoo Lee (kyulee-com)
<details>
<summary>Changes</summary>
This change adds two new statistics to track the usage of probed stacks on AArch64.
---
Full diff: https://github.com/llvm/llvm-project/pull/155661.diff
1 Files Affected:
- (modified) llvm/lib/Target/AArch64/AArch64FrameLowering.cpp (+4)
``````````diff
diff --git a/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp b/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
index 7725fa4f1ccb1..2bee5667d9fac 100644
--- a/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
+++ b/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
@@ -293,6 +293,8 @@ static cl::opt<bool> DisableMultiVectorSpillFill(
cl::desc("Disable use of LD/ST pairs for SME2 or SVE2p1"), cl::init(false),
cl::Hidden);
+STATISTIC(NumProbedStacksFixed, "Number of probed stacks fixed");
+STATISTIC(NumProbedStacksDynamic, "Number of probed stacks dynamic");
STATISTIC(NumRedZoneFunctions, "Number of functions using red zone");
/// Returns how much of the incoming argument stack area (in bytes) we should
@@ -5630,6 +5632,7 @@ void AArch64FrameLowering::inlineStackProbe(MachineFunction &MF,
MI->getOperand(3).getImm());
inlineStackProbeFixed(MI->getIterator(), ScratchReg, FrameSize,
CFAOffset);
+ ++NumProbedStacksFixed;
} else {
assert(MI->getOpcode() == AArch64::PROBED_STACKALLOC_VAR &&
"Stack probe pseudo-instruction expected");
@@ -5637,6 +5640,7 @@ void AArch64FrameLowering::inlineStackProbe(MachineFunction &MF,
MI->getMF()->getSubtarget<AArch64Subtarget>().getInstrInfo();
Register TargetReg = MI->getOperand(0).getReg();
(void)TII->probedStackAlloc(MI->getIterator(), TargetReg, true);
+ ++NumProbedStacksDynamic;
}
MI->eraseFromParent();
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/155661
More information about the llvm-commits
mailing list