[llvm] b837c9e - Revert "[llvm] Mark win x64 SEH pseudo instruction as meta instructions (#110889)"
Martin Storsjö via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 4 03:50:08 PDT 2024
Author: Martin Storsjö
Date: 2024-10-04T13:48:42+03:00
New Revision: b837c9e289dab93c7f8a06876e3f70b6864f40ab
URL: https://github.com/llvm/llvm-project/commit/b837c9e289dab93c7f8a06876e3f70b6864f40ab
DIFF: https://github.com/llvm/llvm-project/commit/b837c9e289dab93c7f8a06876e3f70b6864f40ab.diff
LOG: Revert "[llvm] Mark win x64 SEH pseudo instruction as meta instructions (#110889)"
This reverts commit db33d82026b8742b2719289547e3cb9910c8d7d1.
This commit caused errors when compiling for i686 with codeview
debug info enabled, see
https://github.com/llvm/llvm-project/pull/110889#issuecomment-2393405613
for details.
Added:
Modified:
llvm/lib/Target/X86/X86InstrCompiler.td
llvm/test/CodeGen/X86/x86-win64-shrink-wrapping.ll
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86InstrCompiler.td b/llvm/lib/Target/X86/X86InstrCompiler.td
index 0d9ce696bad467..5a8177e2b3607b 100644
--- a/llvm/lib/Target/X86/X86InstrCompiler.td
+++ b/llvm/lib/Target/X86/X86InstrCompiler.td
@@ -235,7 +235,7 @@ let isBranch = 1, isTerminator = 1, isCodeGenOnly = 1 in {
//===----------------------------------------------------------------------===//
// Pseudo instructions used by unwind info.
//
-let isPseudo = 1, isMeta = 1, SchedRW = [WriteSystem] in {
+let isPseudo = 1, SchedRW = [WriteSystem] in {
def SEH_PushReg : I<0, Pseudo, (outs), (ins i32imm:$reg),
"#SEH_PushReg $reg", []>;
def SEH_SaveReg : I<0, Pseudo, (outs), (ins i32imm:$reg, i32imm:$dst),
diff --git a/llvm/test/CodeGen/X86/x86-win64-shrink-wrapping.ll b/llvm/test/CodeGen/X86/x86-win64-shrink-wrapping.ll
index 8309593896bf0a..d52990e753d3eb 100644
--- a/llvm/test/CodeGen/X86/x86-win64-shrink-wrapping.ll
+++ b/llvm/test/CodeGen/X86/x86-win64-shrink-wrapping.ll
@@ -17,7 +17,7 @@ define i32 @loopInfoSaveOutsideLoop(i32 %cond, i32 %N) #0 {
; ENABLE-NEXT: .seh_pushreg %rbx
; ENABLE-NEXT: .seh_endprologue
; ENABLE-NEXT: testl %ecx, %ecx
-; ENABLE-NEXT: je .LBB0_5
+; ENABLE-NEXT: je .LBB0_4
; ENABLE-NEXT: # %bb.1: # %for.preheader
; ENABLE-NEXT: #APP
; ENABLE-NEXT: nop
@@ -38,11 +38,11 @@ define i32 @loopInfoSaveOutsideLoop(i32 %cond, i32 %N) #0 {
; ENABLE-NEXT: nop
; ENABLE-NEXT: #NO_APP
; ENABLE-NEXT: shll $3, %eax
-; ENABLE-NEXT: popq %rbx
-; ENABLE-NEXT: retq
-; ENABLE-NEXT: .LBB0_5: # %if.else
+; ENABLE-NEXT: jmp .LBB0_5
+; ENABLE-NEXT: .LBB0_4: # %if.else
; ENABLE-NEXT: movl %edx, %eax
; ENABLE-NEXT: addl %edx, %eax
+; ENABLE-NEXT: .LBB0_5: # %if.end
; ENABLE-NEXT: popq %rbx
; ENABLE-NEXT: retq
; ENABLE-NEXT: .seh_endproc
@@ -53,7 +53,7 @@ define i32 @loopInfoSaveOutsideLoop(i32 %cond, i32 %N) #0 {
; DISABLE-NEXT: .seh_pushreg %rbx
; DISABLE-NEXT: .seh_endprologue
; DISABLE-NEXT: testl %ecx, %ecx
-; DISABLE-NEXT: je .LBB0_5
+; DISABLE-NEXT: je .LBB0_4
; DISABLE-NEXT: # %bb.1: # %for.preheader
; DISABLE-NEXT: #APP
; DISABLE-NEXT: nop
@@ -74,11 +74,11 @@ define i32 @loopInfoSaveOutsideLoop(i32 %cond, i32 %N) #0 {
; DISABLE-NEXT: nop
; DISABLE-NEXT: #NO_APP
; DISABLE-NEXT: shll $3, %eax
-; DISABLE-NEXT: popq %rbx
-; DISABLE-NEXT: retq
-; DISABLE-NEXT: .LBB0_5: # %if.else
+; DISABLE-NEXT: jmp .LBB0_5
+; DISABLE-NEXT: .LBB0_4: # %if.else
; DISABLE-NEXT: movl %edx, %eax
; DISABLE-NEXT: addl %edx, %eax
+; DISABLE-NEXT: .LBB0_5: # %if.end
; DISABLE-NEXT: popq %rbx
; DISABLE-NEXT: retq
; DISABLE-NEXT: .seh_endproc
@@ -157,7 +157,7 @@ define i32 @loopInfoSaveOutsideLoop2(i32 %cond, i32 %N) #0 {
; DISABLE-NEXT: .seh_pushreg %rbx
; DISABLE-NEXT: .seh_endprologue
; DISABLE-NEXT: testl %ecx, %ecx
-; DISABLE-NEXT: je .LBB1_5
+; DISABLE-NEXT: je .LBB1_4
; DISABLE-NEXT: # %bb.1: # %for.preheader
; DISABLE-NEXT: #APP
; DISABLE-NEXT: nop
@@ -178,11 +178,11 @@ define i32 @loopInfoSaveOutsideLoop2(i32 %cond, i32 %N) #0 {
; DISABLE-NEXT: nop
; DISABLE-NEXT: #NO_APP
; DISABLE-NEXT: shll $3, %eax
-; DISABLE-NEXT: popq %rbx
-; DISABLE-NEXT: retq
-; DISABLE-NEXT: .LBB1_5: # %if.else
+; DISABLE-NEXT: jmp .LBB1_5
+; DISABLE-NEXT: .LBB1_4: # %if.else
; DISABLE-NEXT: addl %edx, %edx
; DISABLE-NEXT: movl %edx, %eax
+; DISABLE-NEXT: .LBB1_5: # %if.end
; DISABLE-NEXT: popq %rbx
; DISABLE-NEXT: retq
; DISABLE-NEXT: .seh_endproc
More information about the llvm-commits
mailing list