This is the mail archive of the
mailing list for the GCC project.
PR65416, alloca on xtensa
- From: Max Filippov <jcmvbkbc at gmail dot com>
- To: Sterling Augustine <augustine dot sterling at gmail dot com>, gcc at gcc dot gnu dot org
- Cc: Marc Gauthier <marc at cadence dot com>
- Date: Fri, 13 Mar 2015 17:54:48 +0300
- Subject: PR65416, alloca on xtensa
- Authentication-results: sourceware.org; auth=none
I've got an issue building gdb for xtensa linux with gcc, reported it here:
Looking at it I've got two questions, can you help me with them?
1. in windowed ABI stack pointer update is always split into two opcodes:
add and movsp. How gcc optimization passes are supposed to know that
'movsp' is related to 'add' and that stack allocation is complete only after
2. alloca seems to make an additional 16-bytes padding to each stack
allocation: alloca(1) results in moving sp down by 32 bytes, alloca(17)
moves it by 48 bytes, etc. This padding looks unnecessary to me: either
this space is not used (previous register frame is not spilled), or alloca
exception handler will take care about reloading or moving spilled registers
to a new location. In both cases after movsp this space is just wasted.
Do you know why this padding may be needed?