[llvm] [X86] Return instructions don't need side effects (PR #171641)
Harald van Dijk via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 10 08:35:02 PST 2025
https://github.com/hvdijk created https://github.com/llvm/llvm-project/pull/171641
Their effects are modelled through isReturn = 1 already.
>From e8a251f98af2a69091dad3ac1746ad87356890fe Mon Sep 17 00:00:00 2001
From: Harald van Dijk <hdijk at accesssoftek.com>
Date: Wed, 10 Dec 2025 16:33:47 +0000
Subject: [PATCH] [X86] Return instructions don't need side effects
Their effects are modelled through isReturn = 1 already.
---
llvm/lib/Target/X86/X86InstrControl.td | 2 +-
llvm/test/tools/llvm-mca/X86/BtVer2/stmxcsr-ldmxcsr.s | 2 +-
llvm/test/tools/llvm-mca/X86/Haswell/stmxcsr-ldmxcsr.s | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/llvm/lib/Target/X86/X86InstrControl.td b/llvm/lib/Target/X86/X86InstrControl.td
index e8527cd73abb5..c6ca0bccd00ee 100644
--- a/llvm/lib/Target/X86/X86InstrControl.td
+++ b/llvm/lib/Target/X86/X86InstrControl.td
@@ -18,7 +18,7 @@
//
// The X86retglue return instructions are variadic because we may add ST0 and
// ST1 arguments when returning values on the x87 stack.
-let isTerminator = 1, isReturn = 1, isBarrier = 1,
+let isTerminator = 1, isReturn = 1, isBarrier = 1, hasSideEffects = 0,
hasCtrlDep = 1, FPForm = SpecialFP, SchedRW = [WriteJumpLd] in {
def RET32 : I <0xC3, RawFrm, (outs), (ins variable_ops),
"ret{l}", []>, OpSize32, Requires<[Not64BitMode]>;
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/stmxcsr-ldmxcsr.s b/llvm/test/tools/llvm-mca/X86/BtVer2/stmxcsr-ldmxcsr.s
index b1768957c58f4..4095a722b9238 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/stmxcsr-ldmxcsr.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/stmxcsr-ldmxcsr.s
@@ -34,7 +34,7 @@ retq
# CHECK-NEXT: 1 4 1.00 * andl -4(%rsp), %eax
# CHECK-NEXT: 1 1 1.00 * movl %eax, -8(%rsp)
# CHECK-NEXT: 1 3 1.00 * * U ldmxcsr -8(%rsp)
-# CHECK-NEXT: 1 4 1.00 U retq
+# CHECK-NEXT: 1 4 1.00 retq
# CHECK: Resources:
# CHECK-NEXT: [0] - JALU0
diff --git a/llvm/test/tools/llvm-mca/X86/Haswell/stmxcsr-ldmxcsr.s b/llvm/test/tools/llvm-mca/X86/Haswell/stmxcsr-ldmxcsr.s
index 011dfe61017ea..338ca10a08263 100644
--- a/llvm/test/tools/llvm-mca/X86/Haswell/stmxcsr-ldmxcsr.s
+++ b/llvm/test/tools/llvm-mca/X86/Haswell/stmxcsr-ldmxcsr.s
@@ -34,7 +34,7 @@ retq
# CHECK-NEXT: 2 6 0.50 * andl -4(%rsp), %eax
# CHECK-NEXT: 1 1 1.00 * movl %eax, -8(%rsp)
# CHECK-NEXT: 3 7 1.00 * * U ldmxcsr -8(%rsp)
-# CHECK-NEXT: 3 7 1.00 U retq
+# CHECK-NEXT: 3 7 1.00 retq
# CHECK: Resources:
# CHECK-NEXT: [0] - HWDivider
More information about the llvm-commits
mailing list