On 11 October 2013 04:53, Jeff Law <l...@redhat.com> wrote: > With your change it seems to me that we do a single round of spilling & > caller-save setup, then align the stack, then restart. The net result being > we align the stack a lot more often.
Yes, but AFAICT, that should not result in more space being used, because assign_stack_local uses ASLK_RECORD_PAD, so assign_stack_local_1 will record any space added for alignment purposes with add_frame_space, so it can be used for a subsequent spill of suitable size. Also, trying to do register elimination with an unaligned frame size could lead to invalid stack slot addresses; if not ICEs, these could lead to extra reloads, extra spill register needs, and thus ultimately more spills and larger frame size.