[llvm] [X86] Return instructions don't need side effects (PR #171641)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 10 09:32:36 PST 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-x86
Author: Harald van Dijk (hvdijk)
<details>
<summary>Changes</summary>
Their effects are modelled through isReturn = 1 already.
---
Full diff: https://github.com/llvm/llvm-project/pull/171641.diff
3 Files Affected:
- (modified) llvm/lib/Target/X86/X86InstrControl.td (+1-1)
- (modified) llvm/test/tools/llvm-mca/X86/BtVer2/stmxcsr-ldmxcsr.s (+1-1)
- (modified) llvm/test/tools/llvm-mca/X86/Haswell/stmxcsr-ldmxcsr.s (+1-1)
``````````diff
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
``````````
</details>
https://github.com/llvm/llvm-project/pull/171641
More information about the llvm-commits
mailing list