[llvm] [BOLT][AArch64][instr] Remove red zone clobbering protection (PR #156129)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 29 17:43:10 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-bolt
Author: YongKang Zhu (yozhu)
<details>
<summary>Changes</summary>
We can safely remove the red zone clobbering protection in arm64
instrumentation sequence, since there is no red zone in AArch64
ELF/Linux system.
---
Full diff: https://github.com/llvm/llvm-project/pull/156129.diff
1 Files Affected:
- (modified) bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp (+1-5)
``````````diff
diff --git a/bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp b/bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
index 72f95cea6fa1d..fcb645f661ef0 100644
--- a/bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
+++ b/bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
@@ -2517,10 +2517,8 @@ class AArch64MCPlusBuilder : public MCPlusBuilder {
createInstrIncMemory(const MCSymbol *Target, MCContext *Ctx, bool IsLeaf,
unsigned CodePointerSize) const override {
unsigned int I = 0;
- InstructionListType Instrs(IsLeaf ? 12 : 10);
+ InstructionListType Instrs(10);
- if (IsLeaf)
- createStackPointerIncrement(Instrs[I++], 128);
createPushRegisters(Instrs[I++], AArch64::X0, AArch64::X1);
getSystemFlag(Instrs[I++], AArch64::X1);
InstructionListType Addr = materializeAddress(Target, Ctx, AArch64::X0);
@@ -2535,8 +2533,6 @@ class AArch64MCPlusBuilder : public MCPlusBuilder {
loadReg(Instrs[I++], AArch64::X2, AArch64::SP);
setSystemFlag(Instrs[I++], AArch64::X1);
createPopRegisters(Instrs[I++], AArch64::X0, AArch64::X1);
- if (IsLeaf)
- createStackPointerDecrement(Instrs[I++], 128);
return Instrs;
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/156129
More information about the llvm-commits
mailing list