aboutsummaryrefslogtreecommitdiff
path: root/gcc/passes.c
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@codesourcery.com>2013-11-18 22:16:37 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2013-11-18 22:16:37 +0000
commit38f4f02fd6a83607aada3b3270469143bd9ffc7a (patch)
tree99d9aea67e80ae40bd6bfd83c82954aa16dccb28 /gcc/passes.c
parent867c8b03ffc45fee45b414d511ccf125ca5a8c4c (diff)
downloadgcc-38f4f02fd6a83607aada3b3270469143bd9ffc7a.zip
gcc-38f4f02fd6a83607aada3b3270469143bd9ffc7a.tar.gz
gcc-38f4f02fd6a83607aada3b3270469143bd9ffc7a.tar.bz2
Remove all_lto_gen_passes, replace with plain function calls
* cgraphunit.c (ipa_passes): Don't execute all_lto_gen_passes. * lto-streamer-out.c (lto_output, produce_asm_for_decls): No longer static. (pass_data_ipa_lto_gimple_out, pass_ipa_lto_gimple_out, make_pass_ipa_lto_gimple_out, pass_data_ipa_lto_finish_out, pass_ipa_lto_finish_out, make_pass_ipa_lto_finish_out): Remove. * lto-streamer.h (lto_output, produce_asm_for_decls): Declare. * pass-manager.h (GCC_PASS_LISTS, class pass_manager): Remove all_lto_gen_passes. * passes.c (pass_manager::dump_passes): Remove its use. (pass_manager::register_pass): Likewise. (ipa_read_summaries, ipa_read_optimization_summaries): Likewise. (pass_manager::pass_manager): Don't initialize or use it. (write_lto): New static function. (ipa_write_summaries_1, ipa_write_optimization_summaries): Use it instead of using all_lto_gen_passes. * passes.def (all_lto_gen_passes, pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out): Delete. * tree-pass.h (make_pass_ipa_lto_gimple_out, make_pass_ipa_lto_finish_out): Don't declare. From-SVN: r204984
Diffstat (limited to 'gcc/passes.c')
-rw-r--r--gcc/passes.c32
1 files changed, 19 insertions, 13 deletions
diff --git a/gcc/passes.c b/gcc/passes.c
index f45ed0a..55ec70f 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -907,7 +907,6 @@ pass_manager::dump_passes () const
dump_pass_list (all_lowering_passes, 1);
dump_pass_list (all_small_ipa_passes, 1);
dump_pass_list (all_regular_ipa_passes, 1);
- dump_pass_list (all_lto_gen_passes, 1);
dump_pass_list (all_late_ipa_passes, 1);
dump_pass_list (all_passes, 1);
@@ -1426,8 +1425,6 @@ pass_manager::register_pass (struct register_pass_info *pass_info)
if (!success || all_instances)
success |= position_pass (pass_info, &all_regular_ipa_passes);
if (!success || all_instances)
- success |= position_pass (pass_info, &all_lto_gen_passes);
- if (!success || all_instances)
success |= position_pass (pass_info, &all_late_ipa_passes);
if (!success || all_instances)
success |= position_pass (pass_info, &all_passes);
@@ -1498,7 +1495,7 @@ pass_manager::operator new (size_t sz)
pass_manager::pass_manager (context *ctxt)
: all_passes (NULL), all_small_ipa_passes (NULL), all_lowering_passes (NULL),
- all_regular_ipa_passes (NULL), all_lto_gen_passes (NULL),
+ all_regular_ipa_passes (NULL),
all_late_ipa_passes (NULL), passes_by_id (NULL), passes_by_id_size (0),
m_ctxt (ctxt)
{
@@ -1553,9 +1550,6 @@ pass_manager::pass_manager (context *ctxt)
register_dump_files (all_regular_ipa_passes,
PROP_gimple_any | PROP_gimple_lcf | PROP_gimple_leh
| PROP_cfg);
- register_dump_files (all_lto_gen_passes,
- PROP_gimple_any | PROP_gimple_lcf | PROP_gimple_leh
- | PROP_cfg);
register_dump_files (all_late_ipa_passes,
PROP_gimple_any | PROP_gimple_lcf | PROP_gimple_leh
| PROP_cfg);
@@ -2274,6 +2268,18 @@ execute_pass_list (struct opt_pass *pass)
while (pass);
}
+/* Write out all LTO data. */
+static void
+write_lto (void)
+{
+ timevar_push (TV_IPA_LTO_GIMPLE_OUT);
+ lto_output ();
+ timevar_pop (TV_IPA_LTO_GIMPLE_OUT);
+ timevar_push (TV_IPA_LTO_DECL_OUT);
+ produce_asm_for_decls ();
+ timevar_pop (TV_IPA_LTO_DECL_OUT);
+}
+
/* Same as execute_pass_list but assume that subpasses of IPA passes
are local passes. If SET is not NULL, write out summaries of only
those node in SET. */
@@ -2328,7 +2334,8 @@ ipa_write_summaries_1 (lto_symtab_encoder_t encoder)
gcc_assert (!flag_wpa);
ipa_write_summaries_2 (passes->all_regular_ipa_passes, state);
- ipa_write_summaries_2 (passes->all_lto_gen_passes, state);
+
+ write_lto ();
gcc_assert (lto_get_out_decl_state () == state);
lto_pop_out_decl_state ();
@@ -2461,7 +2468,8 @@ ipa_write_optimization_summaries (lto_symtab_encoder_t encoder)
gcc_assert (flag_wpa);
pass_manager *passes = g->get_passes ();
ipa_write_optimization_summaries_1 (passes->all_regular_ipa_passes, state);
- ipa_write_optimization_summaries_1 (passes->all_lto_gen_passes, state);
+
+ write_lto ();
gcc_assert (lto_get_out_decl_state () == state);
lto_pop_out_decl_state ();
@@ -2509,14 +2517,13 @@ ipa_read_summaries_1 (struct opt_pass *pass)
}
-/* Read all the summaries for all_regular_ipa_passes and all_lto_gen_passes. */
+/* Read all the summaries for all_regular_ipa_passes. */
void
ipa_read_summaries (void)
{
pass_manager *passes = g->get_passes ();
ipa_read_summaries_1 (passes->all_regular_ipa_passes);
- ipa_read_summaries_1 (passes->all_lto_gen_passes);
}
/* Same as execute_pass_list but assume that subpasses of IPA passes
@@ -2559,14 +2566,13 @@ ipa_read_optimization_summaries_1 (struct opt_pass *pass)
}
}
-/* Read all the summaries for all_regular_ipa_passes and all_lto_gen_passes. */
+/* Read all the summaries for all_regular_ipa_passes. */
void
ipa_read_optimization_summaries (void)
{
pass_manager *passes = g->get_passes ();
ipa_read_optimization_summaries_1 (passes->all_regular_ipa_passes);
- ipa_read_optimization_summaries_1 (passes->all_lto_gen_passes);
}
/* Same as execute_pass_list but assume that subpasses of IPA passes