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]

Fix LTO bootstrap


Hi,
enabling inlining triggered lifetime-dse issue with symbol_table
constructor.

Bootstrapped/regtested x86_64-linux
	* cgraph.c (symbol_table_test::symbol_table_test): Use ggc_alloc
	rather than ggc_alloc_cleared to alloc symbol table.
	* toplev.c (general_init): Likewise.
	* cgraph.h (symbol_table): Explicitly construct every field.
Index: cgraph.c
===================================================================
--- cgraph.c	(revision 276707)
+++ cgraph.c	(working copy)
@@ -3835,7 +3832,7 @@ symbol_table_test::symbol_table_test ()
 {
   gcc_assert (saved_symtab == NULL);
   saved_symtab = symtab;
-  symtab = new (ggc_cleared_alloc <symbol_table> ()) symbol_table ();
+  symtab = new (ggc_alloc <symbol_table> ()) symbol_table ();
 }
 
 /* Destructor.  Restore the old value of symtab.  */
Index: toplev.c
===================================================================
--- toplev.c	(revision 276707)
+++ toplev.c	(working copy)
@@ -1170,7 +1170,7 @@ general_init (const char *argv0, bool in
   /* Create the passes.  */
   g->set_passes (new gcc::pass_manager (g));
 
-  symtab = new (ggc_cleared_alloc <symbol_table> ()) symbol_table ();
+  symtab = new (ggc_alloc <symbol_table> ()) symbol_table ();
 
   statistics_early_init ();
   debuginfo_early_init ();
Index: cgraph.h
===================================================================
--- cgraph.h	(revision 276707)
+++ cgraph.h	(working copy)
@@ -2095,9 +2095,19 @@ public:
   friend struct cgraph_node;
   friend struct cgraph_edge;
 
-  symbol_table (): cgraph_max_uid (1), cgraph_max_summary_id (0),
-  edges_max_uid (1), edges_max_summary_id (0),
-  cgraph_released_summary_ids (), edge_released_summary_ids ()
+  symbol_table (): 
+  cgraph_count (0), cgraph_max_uid (1), cgraph_max_summary_id (0),
+  edges_count (0), edges_max_uid (1), edges_max_summary_id (0),
+  cgraph_released_summary_ids (), edge_released_summary_ids (),
+  nodes (NULL), asmnodes (NULL), asm_last_node (NULL),
+  order (0), global_info_ready (false), state (PARSING),
+  function_flags_ready (false), cpp_implicit_aliases_done (false),
+  section_hash (NULL), assembler_name_hash (NULL), init_priority_hash (NULL),
+  dump_file (NULL), ipa_clones_dump_file (NULL), cloned_nodes (),
+  m_first_edge_removal_hook (NULL), m_first_cgraph_removal_hook (NULL),
+  m_first_edge_duplicated_hook (NULL), m_first_cgraph_duplicated_hook (NULL),
+  m_first_cgraph_insertion_hook (NULL), m_first_varpool_insertion_hook (NULL),
+  m_first_varpool_removal_hook (NULL)
   {
   }
 
@@ -2343,6 +2353,9 @@ public:
   /* Vector of released summary IDS for cgraph nodes.  */
   vec<int> GTY ((skip)) edge_released_summary_ids;
 
+  /* Return symbol used to separate symbol name from suffix.  */
+  static char symbol_suffix_separator ();
+
   symtab_node* GTY(()) nodes;
   asm_node* GTY(()) asmnodes;
   asm_node* GTY(()) asm_last_node;
@@ -2372,9 +2385,6 @@ public:
 
   FILE* GTY ((skip)) dump_file;
 
-  /* Return symbol used to separate symbol name from suffix.  */
-  static char symbol_suffix_separator ();
-
   FILE* GTY ((skip)) ipa_clones_dump_file;
 
   hash_set <const cgraph_node *> GTY ((skip)) cloned_nodes;


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