[PATCH] D11249: Fix PR#24142
Guozhi Wei
carrot at google.com
Tue Jul 28 16:40:15 PDT 2015
Carrot marked an inline comment as done.
================
Comment at: test/CodeGen/ARM/align-sp-adjustment.ll:4
@@ +3,3 @@
+; CHECK: [sp, #2120]
+
+%struct.struct_2 = type { [172 x %struct.struct_1] }
----------------
This number is the sum of stack frame and the space of outward parameter(8). The stack frame is:
push.w {r4, r5, r6, r7, r8, r9, r10, r11, lr}
.Ltmp0:
.cfi_def_cfa_offset 36
.Ltmp1:
.cfi_offset lr, -4
.Ltmp2:
.cfi_offset r11, -8
.Ltmp3:
.cfi_offset r10, -12
.Ltmp4:
.cfi_offset r9, -16
.Ltmp5:
.cfi_offset r8, -20
.Ltmp6:
.cfi_offset r7, -24
.Ltmp7:
.cfi_offset r6, -28
.Ltmp8:
.cfi_offset r5, -32
.Ltmp9:
.cfi_offset r4, -36
.pad #2064
sub.w sp, sp, #2064
.pad #12
sub sp, #12
12 is padding, 2064 is the size of local variable, the rest are for callee saved registers. The only possible changing size is the space for callee saved registers, and the only possible optimization that can impact it is register allocation. There are several function call in the loop, most of the callee saved registers are used to keep variables cross function call, so this looks unlikely to change.
http://reviews.llvm.org/D11249
More information about the llvm-commits
mailing list