diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3ab789a42a144b4462e10ef9cec2774cd3bd8bff..23d60ec23c5808505b723122fbd9efd04f64c185 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-03-19 Richard Biener <rguenther@suse.de> + + PR middle-end/60553 + * tree-core.h (tree_type_common): Re-order pointer members + to reduce recursion depth during GC walks. + 2014-03-19 Marek Polacek <polacek@redhat.com> PR sanitizer/60569 diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index 101fbfb7b2598defa41eb2f80039c40af360f5ba..ad806db7d76184ab108c7b91eb20d4d2de7c0f48 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,9 @@ +2014-03-19 Richard Biener <rguenther@suse.de> + + PR middle-end/60553 + * lto-tree.h (lang_tree_node): For types use TYPE_NEXT_VARIANT + instead of TREE_CHAIN as chain_next. + 2014-03-19 Richard Biener <rguenther@suse.de> * lto.c (lto_wpa_write_files): Move call to diff --git a/gcc/lto/lto-tree.h b/gcc/lto/lto-tree.h index d8d22333d41d638a4b118cc4f5ddd0394a00012e..b1c3d2a848a2d8d5c54f7d60340c7e794882ffa2 100644 --- a/gcc/lto/lto-tree.h +++ b/gcc/lto/lto-tree.h @@ -48,7 +48,7 @@ enum lto_tree_node_structure_enum { }; union GTY((desc ("lto_tree_node_structure (&%h)"), - chain_next ("CODE_CONTAINS_STRUCT (TREE_CODE (&%h.generic), TS_COMMON) ? ((union lang_tree_node *) TREE_CHAIN (&%h.generic)) : NULL"))) + chain_next ("CODE_CONTAINS_STRUCT (TREE_CODE (&%h.generic), TS_TYPE_COMMON) ? ((union lang_tree_node *) %h.generic.type_common.next_variant) : CODE_CONTAINS_STRUCT (TREE_CODE (&%h.generic), TS_COMMON) ? ((union lang_tree_node *) %h.generic.common.chain) : NULL"))) lang_tree_node { union tree_node GTY ((tag ("TS_LTO_GENERIC"), diff --git a/gcc/tree-core.h b/gcc/tree-core.h index e548a0dd37d167a1663c90b6de3f85bd80f2f77e..a2dc387d647c6e9bdcda13313186b6bdb9573c2c 100644 --- a/gcc/tree-core.h +++ b/gcc/tree-core.h @@ -1265,11 +1265,11 @@ struct GTY(()) tree_type_common { const char * GTY ((tag ("TYPE_SYMTAB_IS_POINTER"))) pointer; struct die_struct * GTY ((tag ("TYPE_SYMTAB_IS_DIE"))) die; } GTY ((desc ("debug_hooks->tree_type_symtab_field"))) symtab; - tree name; + tree canonical; tree next_variant; tree main_variant; tree context; - tree canonical; + tree name; }; struct GTY(()) tree_type_with_lang_specific {