[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