[PATCH] D20220: [PEI, AArch64] Use empty spaces in stack area for local stack slot allocation.
    Geoff Berry via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Mon May 16 10:53:39 PDT 2016
    
    
  
gberry added a comment.
Hi Quentin,
- In the case of AArch64, yes the empty slots are there because of alignment, specifically of the callee-save stack area.  The stack pointer must always be 16-byte aligned on aarch64, so when allocating a callee-save area for say, 3 64-bit registers, there will be a 64-bit hole left.  This change uses that hole to allocate a spill slot/alloca when possible.
- My understanding is that stack coloring is solving a different problem (technically two different passes solving similar problems).  It tries to compact the stack space used by spill slots/allocas by re-using the same stack slot for different variables when their live ranges don't overlap.  They run before PEI, so they don't even see the "holes" in the callee-save area that this patch is trying to eliminate.
http://reviews.llvm.org/D20220
    
    
More information about the llvm-commits
mailing list