summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorjamborm <jamborm@138bc75d-0d04-0410-961f-82ee72b054a4>2009-11-18 12:19:04 +0000
committerjamborm <jamborm@138bc75d-0d04-0410-961f-82ee72b054a4>2009-11-18 12:19:04 +0000
commit8e78b58c2aa924fed285f175b325da48f2f4e631 (patch)
tree19563ecb01db287412f3fae886d2b7acdfdec5b3 /gcc
parentbf8d19fe6489985566b8ed4c5165079551baea83 (diff)
downloadgcc-8e78b58c2aa924fed285f175b325da48f2f4e631.tar.gz
2009-11-18 Martin Jambor <mjambor@suse.cz>
* passes.c (ipa_write_summaries): Call renumber_gimple_stmt_uids on all nodes we write summaries for. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154290 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/passes.c18
2 files changed, 22 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0a4b5b68e73..a28276c278c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2009-11-18 Martin Jambor <mjambor@suse.cz>
+
+ * passes.c (ipa_write_summaries): Call renumber_gimple_stmt_uids
+ on all nodes we write summaries for.
+
2009-11-18 Shujing Zhao <pearly.zhao@oracle.com>
PR middle-end/22201
diff --git a/gcc/passes.c b/gcc/passes.c
index e92d0860bd9..0c39a7a22bb 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -1660,7 +1660,23 @@ ipa_write_summaries (void)
gcc_assert (order_pos == cgraph_n_nodes);
for (i = order_pos - 1; i >= 0; i--)
- cgraph_node_set_add (set, order[i]);
+ {
+ struct cgraph_node *node = order[i];
+
+ if (node->analyzed)
+ {
+ /* When streaming out references to statements as part of some IPA
+ pass summary, the statements need to have uids assigned and the
+ following does that for all the IPA passes here. Naturally, this
+ ordering then matches the one IPA-passes get in their stmt_fixup
+ hooks. */
+
+ push_cfun (DECL_STRUCT_FUNCTION (node->decl));
+ renumber_gimple_stmt_uids ();
+ pop_cfun ();
+ }
+ cgraph_node_set_add (set, node);
+ }
ipa_write_summaries_1 (set);
lto_delete_extern_inline_states ();