[PATCH] D139756: [X86] Fix cmp order in probing BuildStackAlignAND

Josh Stone via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 13 12:11:35 PST 2022


This revision was automatically updated to reflect the committed changes.
Closed by commit rG9b8fcd04ef64: [X86] Fix cmp order in probing BuildStackAlignAND (authored by cuviper).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D139756/new/

https://reviews.llvm.org/D139756

Files:
  llvm/lib/Target/X86/X86FrameLowering.cpp
  llvm/test/CodeGen/X86/stack-clash-large-large-align.ll
  llvm/test/CodeGen/X86/stack-clash-small-large-align.ll


Index: llvm/test/CodeGen/X86/stack-clash-small-large-align.ll
===================================================================
--- llvm/test/CodeGen/X86/stack-clash-small-large-align.ll
+++ llvm/test/CodeGen/X86/stack-clash-small-large-align.ll
@@ -40,7 +40,7 @@
 ; CHECK-NEXT:    je .LBB1_4
 ; CHECK-NEXT:  # %bb.1:
 ; CHECK-NEXT:    subq $4096, %rsp # imm = 0x1000
-; CHECK-NEXT:    cmpq %rsp, %r11
+; CHECK-NEXT:    cmpq %r11, %rsp
 ; CHECK-NEXT:    jb .LBB1_3
 ; CHECK-NEXT:  .LBB1_2: # =>This Inner Loop Header: Depth=1
 ; CHECK-NEXT:    movq $0, (%rsp)
Index: llvm/test/CodeGen/X86/stack-clash-large-large-align.ll
===================================================================
--- llvm/test/CodeGen/X86/stack-clash-large-large-align.ll
+++ llvm/test/CodeGen/X86/stack-clash-large-large-align.ll
@@ -44,7 +44,7 @@
 ; CHECK-NEXT:    je .LBB1_4
 ; CHECK-NEXT:  # %bb.1:
 ; CHECK-NEXT:    subq $4096, %rsp # imm = 0x1000
-; CHECK-NEXT:    cmpq %rsp, %r11
+; CHECK-NEXT:    cmpq %r11, %rsp
 ; CHECK-NEXT:    jb .LBB1_3
 ; CHECK-NEXT:  .LBB1_2: # =>This Inner Loop Header: Depth=1
 ; CHECK-NEXT:    movq $0, (%rsp)
Index: llvm/lib/Target/X86/X86FrameLowering.cpp
===================================================================
--- llvm/lib/Target/X86/X86FrameLowering.cpp
+++ llvm/lib/Target/X86/X86FrameLowering.cpp
@@ -1293,11 +1293,11 @@
 
         BuildMI(headMBB, DL,
                 TII.get(Uses64BitFramePtr ? X86::CMP64rr : X86::CMP32rr))
-            .addReg(FinalStackProbed)
             .addReg(StackPtr)
+            .addReg(FinalStackProbed)
             .setMIFlag(MachineInstr::FrameSetup);
 
-        // jump
+        // jump to the footer if StackPtr < FinalStackProbed
         BuildMI(headMBB, DL, TII.get(X86::JCC_1))
             .addMBB(footMBB)
             .addImm(X86::COND_B)
@@ -1329,7 +1329,7 @@
             .addReg(StackPtr)
             .setMIFlag(MachineInstr::FrameSetup);
 
-        // jump
+        // jump back while FinalStackProbed < StackPtr
         BuildMI(bodyMBB, DL, TII.get(X86::JCC_1))
             .addMBB(bodyMBB)
             .addImm(X86::COND_B)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D139756.482586.patch
Type: text/x-patch
Size: 2111 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221213/82d74cb4/attachment.bin>


More information about the llvm-commits mailing list