lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output BINFO_VIRTUALS...
authorJan Hubicka <jh@suse.cz>
Tue, 14 Jun 2011 12:46:12 +0000 (14:46 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Tue, 14 Jun 2011 12:46:12 +0000 (12:46 +0000)
* lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
BINFO_VIRTUALS when streaming for ltrans unit.

From-SVN: r175014

gcc/ChangeLog
gcc/lto-streamer-out.c

index e7d876f..fdfe9c4 100644 (file)
@@ -1,3 +1,8 @@
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
+       BINFO_VIRTUALS when streaming for ltrans unit.
+
 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
 
        * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
index c629a9f..17042d5 100644 (file)
@@ -1117,7 +1117,11 @@ lto_output_ts_binfo_tree_pointers (struct output_block *ob, tree expr,
 
   lto_output_tree_or_ref (ob, BINFO_OFFSET (expr), ref_p);
   lto_output_tree_or_ref (ob, BINFO_VTABLE (expr), ref_p);
-  lto_output_tree_or_ref (ob, BINFO_VIRTUALS (expr), ref_p);
+  /* BINFO_VIRTUALS is used to drive type based devirtualizatoin.  It often links
+     together large portions of programs making it harder to partition.  Becuase
+     devirtualization is interesting before inlining, only, there is no real
+     need to ship it into ltrans partition.  */
+  lto_output_tree_or_ref (ob, flag_wpa ? NULL : BINFO_VIRTUALS (expr), ref_p);
   lto_output_tree_or_ref (ob, BINFO_VPTR_FIELD (expr), ref_p);
 
   output_uleb128 (ob, VEC_length (tree, BINFO_BASE_ACCESSES (expr)));