aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2011-06-14 14:46:12 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2011-06-14 12:46:12 +0000
commit618abf9a1a9cf867869751875ea5eac1dc6a7fea (patch)
tree0ca691aab3eb752bb4b2c1666c9a12a98c49d52e /gcc
parentea9639996561c240b57a58ff9db4b407489f7ac3 (diff)
downloadgcc-618abf9a1a9cf867869751875ea5eac1dc6a7fea.zip
gcc-618abf9a1a9cf867869751875ea5eac1dc6a7fea.tar.gz
gcc-618abf9a1a9cf867869751875ea5eac1dc6a7fea.tar.bz2
lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output BINFO_VIRTUALS when streaming for ltrans unit.
* lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output BINFO_VIRTUALS when streaming for ltrans unit. From-SVN: r175014
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/lto-streamer-out.c6
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e7d876f..fdfe9c4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index c629a9f..17042d5 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -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)));