Skip to content

Commit 0f8e848

Browse files
committed
Update comments and remove the complicated sub test.
1 parent 4c71a98 commit 0f8e848

File tree

3 files changed

+2
-93
lines changed

3 files changed

+2
-93
lines changed

llvm/lib/Target/X86/X86FrameLowering.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2915,6 +2915,7 @@ bool X86FrameLowering::assignCalleeSavedSpillSlots(
29152915
// 1. Use push2 when
29162916
// a) number of CSR > 1 if no need padding
29172917
// b) number of CSR > 2 if need padding
2918+
// c) stack alignment >= 16 bytes
29182919
// 2. When the number of CSR push is odd
29192920
// a. Start to use push2 from the 1st push if stack is 16B aligned.
29202921
// b. Start to use push2 from the 2nd push if stack is not 16B aligned.

llvm/lib/Target/X86/X86MachineFunctionInfo.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ class X86MachineFunctionInfo : public MachineFunctionInfo {
149149
/// other tools to detect the extended record.
150150
bool HasSwiftAsyncContext = false;
151151

152-
/// Ajust stack for push2/pop2
152+
/// Adjust stack for push2/pop2
153153
bool PadForPush2Pop2 = false;
154154

155155
/// Candidate registers for push2/pop2

llvm/test/CodeGen/X86/apx/push2-pop2-disabled-with-small-stack-alignment.ll

Lines changed: 0 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -113,97 +113,5 @@ entry:
113113
ret void
114114
}
115115

116-
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg)
117-
118-
define void @lea_in_epilog(i1 %arg, ptr %arg1, ptr %arg2, i64 %arg3, i64 %arg4, i64 %arg5, i64 %arg6, i64 %arg7, i64 %arg8, i64 %arg9, i64 %arg10) nounwind {
119-
; CHECK-LABEL: lea_in_epilog:
120-
; CHECK: # %bb.0: # %bb
121-
; CHECK-NEXT: testb $1, %dil
122-
; CHECK-NEXT: je .LBB6_5
123-
; CHECK-NEXT: # %bb.1: # %bb13
124-
; CHECK-NEXT: pushq %rbp
125-
; CHECK-NEXT: pushq %r15
126-
; CHECK-NEXT: pushq %r14
127-
; CHECK-NEXT: pushq %r13
128-
; CHECK-NEXT: pushq %r12
129-
; CHECK-NEXT: pushq %rbx
130-
; CHECK-NEXT: subq $16, %rsp
131-
; CHECK-NEXT: movq %r9, %r14
132-
; CHECK-NEXT: movq %rsi, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
133-
; CHECK-NEXT: addq {{[0-9]+}}(%rsp), %r14
134-
; CHECK-NEXT: movq {{[0-9]+}}(%rsp), %r13
135-
; CHECK-NEXT: addq %r14, %r13
136-
; CHECK-NEXT: movq {{[0-9]+}}(%rsp), %r15
137-
; CHECK-NEXT: addq %r14, %r15
138-
; CHECK-NEXT: movq {{[0-9]+}}(%rsp), %rbx
139-
; CHECK-NEXT: addq %r14, %rbx
140-
; CHECK-NEXT: xorl %ebp, %ebp
141-
; CHECK-NEXT: xorl %r12d, %r12d
142-
; CHECK-NEXT: movl %edi, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill
143-
; CHECK-NEXT: .p2align 4
144-
; CHECK-NEXT: .LBB6_2: # %bb15
145-
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
146-
; CHECK-NEXT: incq %r12
147-
; CHECK-NEXT: movl $432, %edx # imm = 0x1B0
148-
; CHECK-NEXT: xorl %edi, %edi
149-
; CHECK-NEXT: movq %r15, %rsi
150-
; CHECK-NEXT: callq memcpy@PLT
151-
; CHECK-NEXT: movl {{[-0-9]+}}(%r{{[sb]}}p), %edi # 4-byte Reload
152-
; CHECK-NEXT: movq {{[0-9]+}}(%rsp), %rax
153-
; CHECK-NEXT: addq %rax, %r13
154-
; CHECK-NEXT: addq %rax, %r15
155-
; CHECK-NEXT: addq %rax, %rbx
156-
; CHECK-NEXT: addq %rax, %r14
157-
; CHECK-NEXT: addq $8, %rbp
158-
; CHECK-NEXT: testb $1, %dil
159-
; CHECK-NEXT: je .LBB6_2
160-
; CHECK-NEXT: # %bb.3: # %bb11
161-
; CHECK-NEXT: movq {{[-0-9]+}}(%r{{[sb]}}p), %rax # 8-byte Reload
162-
; CHECK-NEXT: leaq {{[0-9]+}}(%rsp), %rsp
163-
; CHECK-NEXT: popq %rbx
164-
; CHECK-NEXT: popq %r12
165-
; CHECK-NEXT: popq %r13
166-
; CHECK-NEXT: popq %r14
167-
; CHECK-NEXT: popq %r15
168-
; CHECK-NEXT: popq %rbp
169-
; CHECK-NEXT: jne .LBB6_5
170-
; CHECK-NEXT: # %bb.4: # %bb12
171-
; CHECK-NEXT: movq $0, (%rax)
172-
; CHECK-NEXT: .LBB6_5: # %bb14
173-
; CHECK-NEXT: retq
174-
bb:
175-
br i1 %arg, label %bb13, label %bb14
176-
177-
bb11:
178-
br i1 %arg, label %bb14, label %bb12
179-
180-
bb12:
181-
store double 0.000000e+00, ptr %arg1, align 8
182-
br label %bb14
183-
184-
bb13:
185-
%getelementptr = getelementptr i8, ptr null, i64 %arg5
186-
br label %bb15
187-
188-
bb14:
189-
ret void
190-
191-
bb15:
192-
%phi = phi i64 [ 0, %bb13 ], [ %add, %bb15 ]
193-
%getelementptr16 = getelementptr double, ptr null, i64 %phi
194-
%add = add i64 %phi, 1
195-
%mul = mul i64 %arg6, %add
196-
%getelementptr17 = getelementptr i8, ptr %getelementptr, i64 %mul
197-
call void @llvm.memcpy.p0.p0.i64(ptr %getelementptr16, ptr %getelementptr17, i64 0, i1 false)
198-
%getelementptr18 = getelementptr i8, ptr %getelementptr17, i64 %arg7
199-
%getelementptr19 = getelementptr i8, ptr %getelementptr17, i64 %arg8
200-
call void @llvm.memcpy.p0.p0.i64(ptr null, ptr %getelementptr19, i64 0, i1 false)
201-
%getelementptr20 = getelementptr i8, ptr %getelementptr17, i64 %arg9
202-
call void @llvm.memcpy.p0.p0.i64(ptr null, ptr %getelementptr20, i64 432, i1 false)
203-
%getelementptr21 = getelementptr i8, ptr %getelementptr17, i64 %arg10
204-
call void @llvm.memcpy.p0.p0.i64(ptr null, ptr %getelementptr21, i64 0, i1 false)
205-
br i1 %arg, label %bb11, label %bb15
206-
}
207-
208116
!llvm.module.flags = !{!0}
209117
!0 = !{i32 1, !"override-stack-alignment", i32 8}

0 commit comments

Comments
 (0)