[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