>>> On 14.12.15 at 10:07, <richard.guent...@gmail.com> wrote: > Note that we also record alignment to make sure we can spill to properly > aligned stack slots. > > I don't see why we don't need to do that for used statics/externs. That is > are you sure we never need to spill a var of their type?
No, I'm not, but note that the discussion on v1/v2 of this patch never really led anywhere, which prompted me to resend the patch after several months of silence. Also I'm not convinced that hypothetical spilling needs should lead to unconditional stack alignment increases. I.e. either at the time alignment gets recorded it is known that a spill is needed, or the spill gets avoided when stack alignment isn't large enough (after all such spilling should only be an optimization, not a correctness requirement aiui). For me to really look into this situation I'd need to know conditions that would result in such a spill to actually occur (I've never observed one in practice). In any event (and again taking into consideration the long period of silence on the previous discussion thread) I don't mind my change to be reverted if only the problem finally gets taken care of. Globally changing very many functions' stack alignment in e.g. the Linux kernel just because of a function local static debugging variable getting emitted in certain not uncommon configurations is not acceptable imo. Jan