This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] FLD changes
- From: Richard Guenther <rguenther at suse dot de>
- To: gcc-patches at gcc dot gnu dot org
- Date: Wed, 9 Sep 2009 11:28:43 +0200 (CEST)
- Subject: [PATCH] FLD changes
This changes FLD on trunk according to the changes that went on the
LTO branch.
Bootstrapped and tested on x86_64-unknonw-linux-gnu, applied to trunk.
Richard.
2009-09-09 Richard Guenther <rguenther@suse.de>
* tree.c (free_lang_data_in_type): Do not free the type variant
chains.
(free_lang_data): Merge char_type_node with its properly signed
variant.
(pass_ipa_free): Collect after freeing language specific data.
Index: gcc/tree.c
===================================================================
*** gcc/tree.c (revision 151500)
--- gcc/tree.c (working copy)
*************** free_lang_data_in_type (tree type)
*** 4250,4265 ****
TYPE_CONTEXT (type) = NULL_TREE;
TYPE_STUB_DECL (type) = NULL_TREE;
-
- /* Remove type variants other than the main variant. This is both
- wasteful and it may introduce infinite loops when the types are
- read from disk and merged (since the variant will be the same
- type as the main variant, traversing type variants will get into
- an infinite loop). */
- if (TYPE_MAIN_VARIANT (type))
- TYPE_NEXT_VARIANT (TYPE_MAIN_VARIANT (type)) = NULL_TREE;
-
- TYPE_NEXT_VARIANT (type) = NULL_TREE;
}
--- 4250,4255 ----
*************** free_lang_data (void)
*** 4868,4873 ****
--- 4858,4869 ----
boolean_true_node = TYPE_MAX_VALUE (boolean_type_node);
}
+ /* Unify char_type_node with its properly signed variant. */
+ if (TYPE_UNSIGNED (char_type_node))
+ unsigned_char_type_node = char_type_node;
+ else
+ signed_char_type_node = char_type_node;
+
/* Reset some langhooks. */
lang_hooks.callgraph.analyze_expr = NULL;
lang_hooks.types_compatible_p = NULL;
*************** struct simple_ipa_opt_pass pass_ipa_free
*** 4910,4916 ****
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
! 0 /* todo_flags_finish */
}
};
--- 4906,4912 ----
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
! TODO_ggc_collect /* todo_flags_finish */
}
};