This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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 */
   }
  };
  


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]