diff options
author | David Malcolm <dmalcolm@redhat.com> | 2013-10-14 16:15:38 +0000 |
---|---|---|
committer | David Malcolm <dmalcolm@gcc.gnu.org> | 2013-10-14 16:15:38 +0000 |
commit | 47e0da377eb7021c043244cd4ff99669eb1a370c (patch) | |
tree | a2a58a4c89a20875a0fa23706d4171d2fe967ef5 /gcc/passes.c | |
parent | 811189d91a29fbced411a62f9fcea66e2b7882cb (diff) | |
download | gcc-47e0da377eb7021c043244cd4ff99669eb1a370c.zip gcc-47e0da377eb7021c043244cd4ff99669eb1a370c.tar.gz gcc-47e0da377eb7021c043244cd4ff99669eb1a370c.tar.bz2 |
Introduce gcc::dump_manager class
gcc/
* dumpfile.h (gcc::dump_manager): New class, to hold state
relating to dumpfile management.
(get_dump_file_name): Remove in favor of method of dump_manager.
(dump_initialized_p): Likewise.
(dump_start): Likewise.
(dump_finish): Likewise.
(dump_switch_p): Likewise.
(dump_register): Likewise.
(get_dump_file_info): Likewise.
* context.c (gcc::context::context): Construct the dump_manager
instance.
* context.h (gcc::context::get_dumps): New.
(gcc::context::m_dumps): New.
* coverage.c (coverage_init): Port to dump_manager API.
* dumpfile.c (extra_dump_files): Convert to field of
gcc::dump_manager.
(extra_dump_files_in_use): Likewise.
(extra_dump_files_alloced): Likewise.
(gcc::dump_manager::dump_manager): New.
(dump_register): Convert to...
(gcc::dump_manager::dump_register): ...method, replacing
function-static next_dump with m_next_dump field.
(get_dump_file_info): Convert to...
(gcc::dump_manager::get_dump_file_info): ...method.
(get_dump_file_name): Convert to...
(gcc::dump_manager::get_dump_file_name): ...method.
(dump_start): Convert to...
(gcc::dump_manager::dump_start): ...method.
(dump_finish): Convert to...
(gcc::dump_manager::dump_finish): ...method.
(dump_begin): Replace body with...
(gcc::dump_manager::dump_begin): ...new method.
(dump_phase_enabled_p): Convert to...
(gcc::dump_manager::dump_phase_enabled_p): ...method.
(dump_phase_enabled_p): Convert to...
(gcc::dump_manager::dump_phase_enabled_p): ...method.
(dump_initialized_p): Convert to...
(gcc::dump_manager::dump_initialized_p): ...method.
(dump_flag_name): Replace body with...
(gcc::dump_manager::dump_flag_name): ...new method.
(dump_enable_all): Convert to...
(gcc::dump_manager::dump_enable_all): ...new method.
(opt_info_enable_passes): Convert to...
(gcc::dump_manager::opt_info_enable_passes): ...new method.
(dump_switch_p_1): Convert to...
(gcc::dump_manager::dump_switch_p_1): ...new method.
(dump_switch_p): Convert to...
(gcc::dump_manager::dump_switch_p): ...new method.
(opt_info_switch_p): Port to dump_manager API.
(enable_rtl_dump_file): Likewise.
* opts-global.c (handle_common_deferred_options): Port to new
dump_manager API.
* passes.c (pass_manager::finish_optimization_passes): Likewise.
(pass_manager::register_one_dump_file): Likewise.
(pass_manager::register_pass): Likewise.
(pass_init_dump_file): Likewise.
(pass_fini_dump_file): Likewise.
* statistics.c (statistics_early_init): Likewise.
gcc/java/
* lang.c (java_handle_option): Update for introduction of
gcc::dump_manager.
From-SVN: r203569
Diffstat (limited to 'gcc/passes.c')
-rw-r--r-- | gcc/passes.c | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/gcc/passes.c b/gcc/passes.c index 1b2202e..5e6b8e5 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -279,27 +279,28 @@ finish_optimization_passes (void) int i; struct dump_file_info *dfi; char *name; + gcc::dump_manager *dumps = m_ctxt->get_dumps (); timevar_push (TV_DUMP); if (profile_arc_flag || flag_test_coverage || flag_branch_probabilities) { - dump_start (pass_profile_1->static_pass_number, NULL); + dumps->dump_start (pass_profile_1->static_pass_number, NULL); end_branch_prob (); - dump_finish (pass_profile_1->static_pass_number); + dumps->dump_finish (pass_profile_1->static_pass_number); } if (optimize > 0) { - dump_start (pass_profile_1->static_pass_number, NULL); + dumps->dump_start (pass_profile_1->static_pass_number, NULL); print_combine_total_stats (); - dump_finish (pass_profile_1->static_pass_number); + dumps->dump_finish (pass_profile_1->static_pass_number); } /* Do whatever is necessary to finish printing the graphs. */ - for (i = TDI_end; (dfi = get_dump_file_info (i)) != NULL; ++i) - if (dump_initialized_p (i) + for (i = TDI_end; (dfi = dumps->get_dump_file_info (i)) != NULL; ++i) + if (dumps->dump_initialized_p (i) && (dfi->pflags & TDF_GRAPH) != 0 - && (name = get_dump_file_name (i)) != NULL) + && (name = dumps->get_dump_file_name (i)) != NULL) { finish_graph_dump_file (name); free (name); @@ -642,6 +643,7 @@ pass_manager::register_one_dump_file (struct opt_pass *pass) char num[10]; int flags, id; int optgroup_flags = OPTGROUP_NONE; + gcc::dump_manager *dumps = m_ctxt->get_dumps (); /* See below in next_pass_1. */ num[0] = '\0'; @@ -682,7 +684,8 @@ pass_manager::register_one_dump_file (struct opt_pass *pass) any dump messages are emitted properly under -fopt-info(-optall). */ if (optgroup_flags == OPTGROUP_NONE) optgroup_flags = OPTGROUP_OTHER; - id = dump_register (dot_name, flag_name, glob_name, flags, optgroup_flags); + id = dumps->dump_register (dot_name, flag_name, glob_name, flags, + optgroup_flags); set_pass_for_id (id, pass); full_name = concat (prefix, pass->name, num, NULL); register_pass_name (pass, full_name); @@ -1390,6 +1393,7 @@ void pass_manager::register_pass (struct register_pass_info *pass_info) { bool all_instances, success; + gcc::dump_manager *dumps = m_ctxt->get_dumps (); /* The checks below could fail in buggy plugins. Existing GCC passes should never fail these checks, so we mention plugin in @@ -1447,9 +1451,9 @@ pass_manager::register_pass (struct register_pass_info *pass_info) else tdi = TDI_rtl_all; /* Check if dump-all flag is specified. */ - if (get_dump_file_info (tdi)->pstate) - get_dump_file_info (added_pass_nodes->pass->static_pass_number) - ->pstate = get_dump_file_info (tdi)->pstate; + if (dumps->get_dump_file_info (tdi)->pstate) + dumps->get_dump_file_info (added_pass_nodes->pass->static_pass_number) + ->pstate = dumps->get_dump_file_info (tdi)->pstate; XDELETE (added_pass_nodes); added_pass_nodes = next_node; } @@ -1932,9 +1936,11 @@ pass_init_dump_file (struct opt_pass *pass) if (pass->static_pass_number != -1) { timevar_push (TV_DUMP); - bool initializing_dump = !dump_initialized_p (pass->static_pass_number); - dump_file_name = get_dump_file_name (pass->static_pass_number); - dump_start (pass->static_pass_number, &dump_flags); + gcc::dump_manager *dumps = g->get_dumps (); + bool initializing_dump = + !dumps->dump_initialized_p (pass->static_pass_number); + dump_file_name = dumps->get_dump_file_name (pass->static_pass_number); + dumps->dump_start (pass->static_pass_number, &dump_flags); if (dump_file && current_function_decl) dump_function_header (dump_file, current_function_decl, dump_flags); if (initializing_dump @@ -1963,7 +1969,7 @@ pass_fini_dump_file (struct opt_pass *pass) dump_file_name = NULL; } - dump_finish (pass->static_pass_number); + g->get_dumps ()->dump_finish (pass->static_pass_number); timevar_pop (TV_DUMP); } |