Skip to content

Commit b118051

Browse files
committed
[llvm] Mark win x64 SEH psuedoinstruction as meta instructions
1 parent 916e6ad commit b118051

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

llvm/lib/Target/X86/X86InstrCompiler.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ let isBranch = 1, isTerminator = 1, isCodeGenOnly = 1 in {
235235
//===----------------------------------------------------------------------===//
236236
// Pseudo instructions used by unwind info.
237237
//
238-
let isPseudo = 1, SchedRW = [WriteSystem] in {
238+
let isPseudo = 1, isMeta = 1, SchedRW = [WriteSystem] in {
239239
def SEH_PushReg : I<0, Pseudo, (outs), (ins i32imm:$reg),
240240
"#SEH_PushReg $reg", []>;
241241
def SEH_SaveReg : I<0, Pseudo, (outs), (ins i32imm:$reg, i32imm:$dst),

llvm/test/CodeGen/X86/x86-win64-shrink-wrapping.ll

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ define i32 @loopInfoSaveOutsideLoop(i32 %cond, i32 %N) #0 {
1717
; ENABLE-NEXT: .seh_pushreg %rbx
1818
; ENABLE-NEXT: .seh_endprologue
1919
; ENABLE-NEXT: testl %ecx, %ecx
20-
; ENABLE-NEXT: je .LBB0_4
20+
; ENABLE-NEXT: je .LBB0_5
2121
; ENABLE-NEXT: # %bb.1: # %for.preheader
2222
; ENABLE-NEXT: #APP
2323
; ENABLE-NEXT: nop
@@ -38,11 +38,11 @@ define i32 @loopInfoSaveOutsideLoop(i32 %cond, i32 %N) #0 {
3838
; ENABLE-NEXT: nop
3939
; ENABLE-NEXT: #NO_APP
4040
; ENABLE-NEXT: shll $3, %eax
41-
; ENABLE-NEXT: jmp .LBB0_5
42-
; ENABLE-NEXT: .LBB0_4: # %if.else
41+
; ENABLE-NEXT: popq %rbx
42+
; ENABLE-NEXT: retq
43+
; ENABLE-NEXT: .LBB0_5: # %if.else
4344
; ENABLE-NEXT: movl %edx, %eax
4445
; ENABLE-NEXT: addl %edx, %eax
45-
; ENABLE-NEXT: .LBB0_5: # %if.end
4646
; ENABLE-NEXT: popq %rbx
4747
; ENABLE-NEXT: retq
4848
; ENABLE-NEXT: .seh_endproc
@@ -53,7 +53,7 @@ define i32 @loopInfoSaveOutsideLoop(i32 %cond, i32 %N) #0 {
5353
; DISABLE-NEXT: .seh_pushreg %rbx
5454
; DISABLE-NEXT: .seh_endprologue
5555
; DISABLE-NEXT: testl %ecx, %ecx
56-
; DISABLE-NEXT: je .LBB0_4
56+
; DISABLE-NEXT: je .LBB0_5
5757
; DISABLE-NEXT: # %bb.1: # %for.preheader
5858
; DISABLE-NEXT: #APP
5959
; DISABLE-NEXT: nop
@@ -74,11 +74,11 @@ define i32 @loopInfoSaveOutsideLoop(i32 %cond, i32 %N) #0 {
7474
; DISABLE-NEXT: nop
7575
; DISABLE-NEXT: #NO_APP
7676
; DISABLE-NEXT: shll $3, %eax
77-
; DISABLE-NEXT: jmp .LBB0_5
78-
; DISABLE-NEXT: .LBB0_4: # %if.else
77+
; DISABLE-NEXT: popq %rbx
78+
; DISABLE-NEXT: retq
79+
; DISABLE-NEXT: .LBB0_5: # %if.else
7980
; DISABLE-NEXT: movl %edx, %eax
8081
; DISABLE-NEXT: addl %edx, %eax
81-
; DISABLE-NEXT: .LBB0_5: # %if.end
8282
; DISABLE-NEXT: popq %rbx
8383
; DISABLE-NEXT: retq
8484
; DISABLE-NEXT: .seh_endproc
@@ -157,7 +157,7 @@ define i32 @loopInfoSaveOutsideLoop2(i32 %cond, i32 %N) #0 {
157157
; DISABLE-NEXT: .seh_pushreg %rbx
158158
; DISABLE-NEXT: .seh_endprologue
159159
; DISABLE-NEXT: testl %ecx, %ecx
160-
; DISABLE-NEXT: je .LBB1_4
160+
; DISABLE-NEXT: je .LBB1_5
161161
; DISABLE-NEXT: # %bb.1: # %for.preheader
162162
; DISABLE-NEXT: #APP
163163
; DISABLE-NEXT: nop
@@ -178,11 +178,11 @@ define i32 @loopInfoSaveOutsideLoop2(i32 %cond, i32 %N) #0 {
178178
; DISABLE-NEXT: nop
179179
; DISABLE-NEXT: #NO_APP
180180
; DISABLE-NEXT: shll $3, %eax
181-
; DISABLE-NEXT: jmp .LBB1_5
182-
; DISABLE-NEXT: .LBB1_4: # %if.else
181+
; DISABLE-NEXT: popq %rbx
182+
; DISABLE-NEXT: retq
183+
; DISABLE-NEXT: .LBB1_5: # %if.else
183184
; DISABLE-NEXT: addl %edx, %edx
184185
; DISABLE-NEXT: movl %edx, %eax
185-
; DISABLE-NEXT: .LBB1_5: # %if.end
186186
; DISABLE-NEXT: popq %rbx
187187
; DISABLE-NEXT: retq
188188
; DISABLE-NEXT: .seh_endproc

0 commit comments

Comments
 (0)