This was slightly more interesting. I moved the
cleanup_cfg_post_optimizing pass from tree-optimize.c to
tree-cfgcleanup.c. And that left tree-optimize.c empty... so I deleted
that file as well. Other than that, just include it in the other 7
files that require it
bootstraps on x86_64-unknown-linux-gnu with no new regressions. OK?
Andrew
* tree-ssa.h: Don't include tree-cfgcleanup.h.
* tree-cfgcleanup.c: Include tree-cfgcleanup.h.
(execute_cleanup_cfg_post_optimizing,
pass_data_cleanup_cfg_post_optimizing,
make_pass_cleanup_cfg_post_optimizing): Relocate from tree-optimize.c.
* tree-optimize.c: Delete File.
* graphite.c: Include tree-cfgcleanup.h.
* omp-low.c: Likewise.
* passes.c: Likewise.
* tree-cfg.c: Likewise.
* tree-profile.c: Likewise.
* tree-ssa-dse.c: Likewise.
* tree-ssa-loop-ivcanon.c: Likewise.
* Makefile.in (OBJS): Delete tree-optimize.o.
*** T6/tree-ssa.h 2013-10-17 14:35:07.043401391 -0400
--- tree-ssa.h 2013-10-17 14:35:17.332401630 -0400
*************** along with GCC; see the file COPYING3.
*** 26,32 ****
#include "tree-ssa-operands.h"
#include "gimple-ssa.h"
#include "cgraph.h"
- #include "tree-cfgcleanup.h"
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
--- 26,31 ----
*** T6/tree-cfgcleanup.c 2013-10-17 14:35:07.021401391 -0400
--- tree-cfgcleanup.c 2013-10-17 14:35:17.333401630 -0400
*************** make_pass_merge_phi (gcc::context *ctxt)
*** 1027,1029 ****
--- 1027,1116 ----
{
return new pass_merge_phi (ctxt);
}
+
+ /* Pass: cleanup the CFG just before expanding trees to RTL.
+ This is just a round of label cleanups and case node grouping
+ because after the tree optimizers have run such cleanups may
+ be necessary. */
+
+ static unsigned int
+ execute_cleanup_cfg_post_optimizing (void)
+ {
+ unsigned int todo = 0;
+ if (cleanup_tree_cfg ())
+ todo |= TODO_update_ssa;
+ maybe_remove_unreachable_handlers ();
+ cleanup_dead_labels ();
+ group_case_labels ();
+ if ((flag_compare_debug_opt || flag_compare_debug)
+ && flag_dump_final_insns)
+ {
+ FILE *final_output = fopen (flag_dump_final_insns, "a");
+
+ if (!final_output)
+ {
+ error ("could not open final insn dump file %qs: %m",
+ flag_dump_final_insns);
+ flag_dump_final_insns = NULL;
+ }
+ else
+ {
+ int save_unnumbered = flag_dump_unnumbered;
+ int save_noaddr = flag_dump_noaddr;
+
+ flag_dump_noaddr = flag_dump_unnumbered = 1;
+ fprintf (final_output, "\n");
+ dump_enumerated_decls (final_output, dump_flags | TDF_NOUID);
+ flag_dump_noaddr = save_noaddr;
+ flag_dump_unnumbered = save_unnumbered;
+ if (fclose (final_output))
+ {
+ error ("could not close final insn dump file %qs: %m",
+ flag_dump_final_insns);
+ flag_dump_final_insns = NULL;
+ }
+ }
+ }
+ return todo;
+ }
+
+ namespace {
+
+ const pass_data pass_data_cleanup_cfg_post_optimizing =
+ {
+ GIMPLE_PASS, /* type */
+ "optimized", /* name */
+ OPTGROUP_NONE, /* optinfo_flags */
+ false, /* has_gate */
+ true, /* has_execute */
+ TV_TREE_CLEANUP_CFG, /* tv_id */
+ PROP_cfg, /* properties_required */
+ 0, /* properties_provided */
+ 0, /* properties_destroyed */
+ 0, /* todo_flags_start */
+ TODO_remove_unused_locals, /* todo_flags_finish */
+ };
+
+ class pass_cleanup_cfg_post_optimizing : public gimple_opt_pass
+ {
+ public:
+ pass_cleanup_cfg_post_optimizing (gcc::context *ctxt)
+ : gimple_opt_pass (pass_data_cleanup_cfg_post_optimizing, ctxt)
+ {}
+
+ /* opt_pass methods: */
+ unsigned int execute () {
+ return execute_cleanup_cfg_post_optimizing ();
+ }
+
+ }; // class pass_cleanup_cfg_post_optimizing
+
+ } // anon namespace
+
+ gimple_opt_pass *
+ make_pass_cleanup_cfg_post_optimizing (gcc::context *ctxt)
+ {
+ return new pass_cleanup_cfg_post_optimizing (ctxt);
+ }
+
+
*** T6/tree-optimize.c 2013-10-17 14:35:07.033401391 -0400
--- tree-optimize.c 1969-12-31 19:00:00.000000000 -0500
***************
*** 1,130 ****
- /* Top-level control of tree optimizations.
- Copyright (C) 2001-2013 Free Software Foundation, Inc.
- Contributed by Diego Novillo <dnovi...@redhat.com>
-
- This file is part of GCC.
-
- GCC is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3, or (at your option)
- any later version.
-
- GCC is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
- #include "tm.h"
- #include "tree.h"
- #include "tm_p.h"
- #include "basic-block.h"
- #include "flags.h"
- #include "tree-ssa.h"
- #include "function.h"
- #include "langhooks.h"
- #include "diagnostic-core.h"
- #include "toplev.h"
- #include "flags.h"
- #include "cgraph.h"
- #include "tree-inline.h"
- #include "tree-pass.h"
- #include "ggc.h"
- #include "cgraph.h"
- #include "cfgloop.h"
- #include "except.h"
- #include "plugin.h"
-
-
- /* Pass: cleanup the CFG just before expanding trees to RTL.
- This is just a round of label cleanups and case node grouping
- because after the tree optimizers have run such cleanups may
- be necessary. */
-
- static unsigned int
- execute_cleanup_cfg_post_optimizing (void)
- {
- unsigned int todo = 0;
- if (cleanup_tree_cfg ())
- todo |= TODO_update_ssa;
- maybe_remove_unreachable_handlers ();
- cleanup_dead_labels ();
- group_case_labels ();
- if ((flag_compare_debug_opt || flag_compare_debug)
- && flag_dump_final_insns)
- {
- FILE *final_output = fopen (flag_dump_final_insns, "a");
-
- if (!final_output)
- {
- error ("could not open final insn dump file %qs: %m",
- flag_dump_final_insns);
- flag_dump_final_insns = NULL;
- }
- else
- {
- int save_unnumbered = flag_dump_unnumbered;
- int save_noaddr = flag_dump_noaddr;
-
- flag_dump_noaddr = flag_dump_unnumbered = 1;
- fprintf (final_output, "\n");
- dump_enumerated_decls (final_output, dump_flags | TDF_NOUID);
- flag_dump_noaddr = save_noaddr;
- flag_dump_unnumbered = save_unnumbered;
- if (fclose (final_output))
- {
- error ("could not close final insn dump file %qs: %m",
- flag_dump_final_insns);
- flag_dump_final_insns = NULL;
- }
- }
- }
- return todo;
- }
-
- namespace {
-
- const pass_data pass_data_cleanup_cfg_post_optimizing =
- {
- GIMPLE_PASS, /* type */
- "optimized", /* name */
- OPTGROUP_NONE, /* optinfo_flags */
- false, /* has_gate */
- true, /* has_execute */
- TV_TREE_CLEANUP_CFG, /* tv_id */
- PROP_cfg, /* properties_required */
- 0, /* properties_provided */
- 0, /* properties_destroyed */
- 0, /* todo_flags_start */
- TODO_remove_unused_locals, /* todo_flags_finish */
- };
-
- class pass_cleanup_cfg_post_optimizing : public gimple_opt_pass
- {
- public:
- pass_cleanup_cfg_post_optimizing (gcc::context *ctxt)
- : gimple_opt_pass (pass_data_cleanup_cfg_post_optimizing, ctxt)
- {}
-
- /* opt_pass methods: */
- unsigned int execute () {
- return execute_cleanup_cfg_post_optimizing ();
- }
-
- }; // class pass_cleanup_cfg_post_optimizing
-
- } // anon namespace
-
- gimple_opt_pass *
- make_pass_cleanup_cfg_post_optimizing (gcc::context *ctxt)
- {
- return new pass_cleanup_cfg_post_optimizing (ctxt);
- }
-
-
--- 0 ----
*** T6/graphite.c 2013-10-17 14:35:06.917401388 -0400
--- graphite.c 2013-10-17 14:35:17.333401630 -0400
*************** along with GCC; see the file COPYING3.
*** 57,62 ****
--- 57,63 ----
#include "dbgcnt.h"
#include "tree-parloops.h"
#include "tree-pass.h"
+ #include "tree-cfgcleanup.h"
#ifdef HAVE_cloog
*** T6/omp-low.c 2013-10-17 14:35:06.967401389 -0400
--- omp-low.c 2013-10-17 14:35:17.335401630 -0400
*************** along with GCC; see the file COPYING3.
*** 45,50 ****
--- 45,51 ----
#include "target.h"
#include "omp-low.h"
#include "gimple-low.h"
+ #include "tree-cfgcleanup.h"
/* Lowering of OpenMP parallel and workshare constructs proceeds in two
*** T6/passes.c 2013-10-17 14:35:06.972401390 -0400
--- passes.c 2013-10-17 14:35:17.336401630 -0400
*************** along with GCC; see the file COPYING3.
*** 73,78 ****
--- 73,79 ----
#include "context.h"
#include "pass_manager.h"
#include "tree-ssa-live.h" /* For remove_unused_locals. */
+ #include "tree-cfgcleanup.h"
using namespace gcc;
*** T6/tree-cfg.c 2013-10-17 14:35:07.021401391 -0400
--- tree-cfg.c 2013-10-17 14:35:17.337401630 -0400
*************** along with GCC; see the file COPYING3.
*** 43,48 ****
--- 43,49 ----
#include "target.h"
#include "tree-ssa-live.h"
#include "omp-low.h"
+ #include "tree-cfgcleanup.h"
/* This file contains functions for building the Control Flow Graph (CFG)
for a function tree. */
*** T6/tree-profile.c 2013-10-17 14:35:07.037401391 -0400
--- tree-profile.c 2013-10-17 14:35:17.338401630 -0400
*************** along with GCC; see the file COPYING3.
*** 40,45 ****
--- 40,46 ----
#include "cgraph.h"
#include "profile.h"
#include "target.h"
+ #include "tree-cfgcleanup.h"
static GTY(()) tree gcov_type_node;
static GTY(()) tree tree_interval_profiler_fn;
*** T6/tree-ssa-dse.c 2013-10-17 14:35:07.043401391 -0400
--- tree-ssa-dse.c 2013-10-17 14:35:17.338401630 -0400
*************** along with GCC; see the file COPYING3.
*** 31,36 ****
--- 31,37 ----
#include "domwalk.h"
#include "flags.h"
#include "langhooks.h"
+ #include "tree-cfgcleanup.h"
/* This file implements dead store elimination.
*** T6/tree-ssa-loop-ivcanon.c 2013-10-17 14:35:07.046401391 -0400
--- tree-ssa-loop-ivcanon.c 2013-10-17 14:35:17.338401630 -0400
*************** along with GCC; see the file COPYING3.
*** 49,54 ****
--- 49,55 ----
#include "flags.h"
#include "tree-inline.h"
#include "target.h"
+ #include "tree-cfgcleanup.h"
/* Specifies types of loops that may be unrolled. */
Index: Makefile.in
===================================================================
*** Makefile.in (revision 203785)
--- Makefile.in (working copy)
*************** OBJS = \
*** 1391,1397 ****
tree-nomudflap.o \
tree-nrv.o \
tree-object-size.o \
- tree-optimize.o \
tree-outof-ssa.o \
tree-parloops.o \
tree-phinodes.o \
--- 1391,1396 ----