[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