http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47893
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-02-25 17:39:36 UTC --- I guess that would break pa, because then else if (!STACK_ALIGNMENT_NEEDED) { ... } will be executed whenever record_alignment_slots is false, even for non-zero sizes or non-BLKmode. Other than that, I think it would be better to change the bool argument into an enum, after all we need just 3 variants, reduce_alignment_ok && record_alignment_slots (for caller-save), !reduce_alignment_ok && record_alignment_slots (for assign_stack_local) and !reduce_alignment_ok && !record_alignment_slots (for assign_stack_temp_for_type). I'm currently running x86_64-linux and i686-linux bootstraps/regtests gathering statistics, so far from the partial numbers I have a patch like that isn't going to pessimize stuff too much, add_frame_space from within assign_stack_temp_for_type accounts for like .5% of all add_frame_space calls (and similarly in the number of bytes thus recorded).