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 ----

Reply via email to