diff options
author | Martin Jambor <mjambor@suse.cz> | 2009-11-18 13:19:04 +0100 |
---|---|---|
committer | Martin Jambor <jamborm@gcc.gnu.org> | 2009-11-18 13:19:04 +0100 |
commit | 8b2205027de65d0d8c2fe0ef9c4238bf7e769eb8 (patch) | |
tree | 19563ecb01db287412f3fae886d2b7acdfdec5b3 /gcc/passes.c | |
parent | 848f237b0d51efe763c65723b05cd437cc7af632 (diff) | |
download | gcc-8b2205027de65d0d8c2fe0ef9c4238bf7e769eb8.zip gcc-8b2205027de65d0d8c2fe0ef9c4238bf7e769eb8.tar.gz gcc-8b2205027de65d0d8c2fe0ef9c4238bf7e769eb8.tar.bz2 |
passes.c (ipa_write_summaries): Call renumber_gimple_stmt_uids on all nodes we write summaries for.
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.
From-SVN: r154290
Diffstat (limited to 'gcc/passes.c')
-rw-r--r-- | gcc/passes.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/gcc/passes.c b/gcc/passes.c index e92d086..0c39a7a 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 (); |