>>> On 14.12.15 at 09:35, <richard.guent...@gmail.com> wrote: > On Fri, Dec 11, 2015 at 2:54 PM, Bernd Schmidt <bschm...@redhat.com> wrote: >> On 12/11/2015 02:48 PM, Jan Beulich wrote: >>> >>> Function (or more narrow) scope static variables (as well as others not >>> placed on the stack) should also not have any effect on the stack >>> alignment. I noticed the issue first with Linux'es dynamic_pr_debug() >>> construct using an 8-byte aligned sub-file-scope local variable. >>> >>> According to my checking bad behavior started with 4.6.x (4.5.3 was >>> still okay), but generated code got quite a bit worse as of 4.9.0. >>> >>> [v4: Bail early, using is_global_var(), as requested by Bernd.] >> >> >> In case I haven't made it obvious, this is OK. > > But I wonder if it makes sense because shortly after the early-out we check > > if (TREE_STATIC (var) > || DECL_EXTERNAL (var) > || (TREE_CODE (origvar) == SSA_NAME && use_register_for_decl (var))) > > so either there are obvious cleanup opportunities left or the patch is > broken.
Looks like a cleanup opportunity I overlooked when following Bernd's advice. Jan