[RFA] pretty-ipa merge 11: ehcleanup pass

Richard Guenther rguenther@suse.de
Sun Mar 29 00:22:00 GMT 2009


On Sun, 29 Mar 2009, Jan Hubicka wrote:

> Hi,
> this patch implements EH cleanup pass doing:
>   1) cleanups regions with handlers doing nothing are optimized out
>   2) MUST_NOT_THROW regions that became dead because of 1) are optimized out
>   3) Info about regions that are containing instructions, and regions
>      reachable via local EH edges is collected
>   4) Eh tree is pruned for regions no longer neccesary.
> It differs from pretty-ipa that has cleanup region elimination in tree-cfgcleanup.
> With improved NOTHROW detection I no longer see that many abnormal PHIs preventing
> optimization during early stages so I don't see that much value in re-donig
> the optimization all the time.
> 
> There are more optimization oppurtunities here.  In particular we can unify all
> MUST_NOT_THROW regions that contains no local resumes and move all
> MUST_NOT_THROW to the root of the tree to save some dwarf space.  We can also
> decide whether we can unify all terminate() calls in the function.  This kills
> unwind info on terminate so I am not sure we want to do it at -O2, but probably
> we ought at -Os.  Main problem of those local must not throws is that they
> confuse inliner while they rarely survive to end of compilation.  I will teach
> inliner to cowardly ignore their existence.  This I plan to all handle later to
> avoid snowballing. Half of EH regions from tramp3d should go away this way
> and we can look into unifying equivalent sibling EH regions that seems to have good
> chances of success.
> 
> I do the ehcleanup 3 times now, once at the end of early optimization queue.
> This is most effective pass important to get right inline size estimates and
> reduce LTO throughput.  Then just after IPA passes.  It is not that effective
> on tramp but wiht IPA propagain and fixing inlining decisions in general we
> ought to be able to eliminate a lot of unreachable regions.  Finally it is done
> at before going to RTL. Dead code elimination might render more cleanups
> useless.
> 
> The scores on tramp3d are following:
> 
> 1106 empty EH cleanups are eliminated in ehcleanup1, 4 in ehcleanup3
> same numbers of MUST_NOT_THROW regions are removed 
> 6298 unreachable EH regions are eliminated in ehcleanup1, 23 in ehcleanup2, 4 in ehcleanup3

Sooo .. the numbers suggest pretty clearly to me that we should for now
stick with only ehcleanup1.  Given our inability to remove dead passes
later ;)

I'll look on the patch in more detail tomorrow.

Thanks,
Richard.

> First two transforms kill real gimple code improving inlining decisions, while
> the last only shrinks on-side tables.
> 
> Bootstrapped/regtested x86_64-linux, OK?
> 
> 	PR middle-end/28850
> 	* tree-pass.h (pass_cleanup_eh): New.
> 	(remove_unreachable_regions): Break code handling RTL
> 	to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
> 	that can not be reached by runtime.
> 	(can_be_reached_by_runtime): New.
> 	(label_to_region_map): New.
> 	(num_eh_regions): New.
> 	(rtl_remove_unreachable_regions): New.
> 	(convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
> 	(remove_eh_region): New.
> 	* except.h: Include sbitmap and vecprim.
> 	(remove_eh_region, remove_unreachable_regions, label_to_region_map,
> 	num_eh_regions): Declare.
> 	* passes.c (init_optimization_passes): Schedule cleanup_eh.
> 	* Makefile.in (EXCEPT_H): New; replace all uses of except.h
> 	by it.
> 	* tree-eh.c (tree_remove_unreachable_handlers): New function.
> 	(tree_empty_eh_handler_p): New function.
> 	(cleanup_empty_eh): New function.
> 	(cleanup_eh): New function.
> 	(pass_cleanup_eh): New function.
> Index: tree-pass.h
> ===================================================================
> *** tree-pass.h	(revision 145204)
> --- tree-pass.h	(working copy)
> *************** extern struct gimple_opt_pass pass_tree_
> *** 309,314 ****
> --- 309,315 ----
>   extern struct gimple_opt_pass pass_early_tree_profile;
>   extern struct gimple_opt_pass pass_cleanup_cfg;
>   extern struct gimple_opt_pass pass_referenced_vars;
> + extern struct gimple_opt_pass pass_cleanup_eh;
>   extern struct gimple_opt_pass pass_fixup_cfg;
>   extern struct gimple_opt_pass pass_sra;
>   extern struct gimple_opt_pass pass_sra_early;
> Index: except.h
> ===================================================================
> *** except.h	(revision 145204)
> --- except.h	(working copy)
> *************** You should have received a copy of the G
> *** 19,24 ****
> --- 19,26 ----
>   along with GCC; see the file COPYING3.  If not see
>   <http://www.gnu.org/licenses/>.  */
>   
> + #include "sbitmap.h"
> + #include "vecprim.h"
>   
>   struct function;
>   
> *************** extern void init_eh_for_function (void);
> *** 61,66 ****
> --- 63,69 ----
>   
>   extern rtx reachable_handlers (rtx);
>   extern void maybe_remove_eh_handler (rtx);
> + void remove_eh_region (int);
>   
>   extern void convert_from_eh_region_ranges (void);
>   extern unsigned int convert_to_eh_region_ranges (void);
> *************** struct throw_stmt_node GTY(())
> *** 174,176 ****
> --- 177,182 ----
>   
>   extern struct htab *get_eh_throw_stmt_table (struct function *);
>   extern void set_eh_throw_stmt_table (struct function *, struct htab *);
> + extern void remove_unreachable_regions (sbitmap, sbitmap);
> + extern VEC(int,heap) * label_to_region_map (void);
> + extern int num_eh_regions (void);
> Index: passes.c
> ===================================================================
> *** passes.c	(revision 145204)
> --- passes.c	(working copy)
> *************** init_optimization_passes (void)
> *** 562,567 ****
> --- 562,568 ----
>   	  NEXT_PASS (pass_simple_dse);
>   	  NEXT_PASS (pass_tail_recursion);
>   	  NEXT_PASS (pass_convert_switch);
> +           NEXT_PASS (pass_cleanup_eh);
>             NEXT_PASS (pass_profile);
>             NEXT_PASS (pass_local_pure_const);
>   	}
> *************** init_optimization_passes (void)
> *** 589,594 ****
> --- 590,596 ----
>         /* Initial scalar cleanups before alias computation.
>   	 They ensure memory accesses are not indirect wherever possible.  */
>         NEXT_PASS (pass_strip_predict_hints);
> +       NEXT_PASS (pass_cleanup_eh);
>         NEXT_PASS (pass_update_address_taken);
>         NEXT_PASS (pass_rename_ssa_copies);
>         NEXT_PASS (pass_complete_unrolli);
> *************** init_optimization_passes (void)
> *** 686,691 ****
> --- 688,694 ----
>         NEXT_PASS (pass_phi_only_cprop);
>         NEXT_PASS (pass_cd_dce);
>         NEXT_PASS (pass_tracer);
> +       NEXT_PASS (pass_cleanup_eh);
>   
>         /* FIXME: If DCE is not run before checking for uninitialized uses,
>   	 we may get false warnings (e.g., testsuite/gcc.dg/uninit-5.c).
> Index: except.c
> ===================================================================
> --- except.c	(revision 145204)
> +++ except.c	(working copy)
> @@ -227,8 +227,6 @@ static hashval_t t2r_hash (const void *)
>  static void add_type_for_runtime (tree);
>  static tree lookup_type_for_runtime (tree);
>  
> -static void remove_unreachable_regions (rtx);
> -
>  static int ttypes_filter_eq (const void *, const void *);
>  static hashval_t ttypes_filter_hash (const void *);
>  static int ehspec_filter_eq (const void *, const void *);
> @@ -622,69 +620,134 @@ collect_eh_region_array (void)
>      }
>  }
>  
> -/* Remove all regions whose labels are not reachable from insns.  */
> +/* R is MUST_NOT_THROW region that is not reachable via local
> +   RESX instructions.  It still must be kept in the tree in case runtime
> +   can unwind through it, or we will eliminate out terminate call
> +   runtime would do otherwise.  Return TRUE if R contains throwing statements
> +   or some of the exceptions in inner regions can be unwound up to R. 
> +   
> +   CONTAINS_STMT is bitmap of all regions that contains some throwing
> +   statements.  */
>  
> -static void
> -remove_unreachable_regions (rtx insns)
> +static bool
> +can_be_reached_by_runtime (sbitmap contains_stmt, struct eh_region *r)
>  {
> -  int i, *uid_region_num;
> -  bool *reachable;
> -  struct eh_region *r;
> -  rtx insn;
> -
> -  uid_region_num = XCNEWVEC (int, get_max_uid ());
> -  reachable = XCNEWVEC (bool, cfun->eh->last_region_number + 1);
> -
> -  for (i = cfun->eh->last_region_number; i > 0; --i)
> +  struct eh_region *i = r->inner;
> +  unsigned n;
> +  bitmap_iterator bi;
> +
> +  if (TEST_BIT (contains_stmt, r->region_number))
> +    return true;
> +  if (r->aka)
> +    EXECUTE_IF_SET_IN_BITMAP (r->aka, 0, n, bi)
> +      if (TEST_BIT (contains_stmt, n))
> +        return true;
> +  if (!i)
> +    return false;
> +  while (1)
>      {
> -      r = VEC_index (eh_region, cfun->eh->region_array, i);
> -      if (!r || r->region_number != i)
> -	continue;
> +      /* It is pointless to look into MUST_NOT_THROW
> +         or dive into subregions.  They never unwind up.  */
> +      if (i->type != ERT_MUST_NOT_THROW)
> +      	{
> +	  bool found = TEST_BIT (contains_stmt, i->region_number);
> +	  if (!found)
> +	    EXECUTE_IF_SET_IN_BITMAP (i->aka, 0, n, bi)
> +	      if (TEST_BIT (contains_stmt, n))
> +	        {
> +		  found = true;
> +		  break;
> +		}
> +	  /* We have nested region that contains throwing statement.
> +	     See if resuming might lead up to the resx or we get locally
> +	     caught sooner.  If we get locally caught sooner, we either
> +	     know region R is not reachable or it would have direct edge
> +	     from the EH resx and thus consider region reachable at
> +	     firest place.  */
> +	  if (found)
> +	    {
> +	      struct eh_region *i1 = i;
> +	      tree type_thrown = NULL_TREE;
>  
> -      if (r->resume)
> -	{
> -	  gcc_assert (!uid_region_num[INSN_UID (r->resume)]);
> -	  uid_region_num[INSN_UID (r->resume)] = i;
> -	}
> -      if (r->label)
> +	      if (i1->type == ERT_THROW)
> +		{
> +		  type_thrown = i1->u.eh_throw.type;
> +		  i1 = i1->outer;
> +		}
> +              for (; i1 != r ; i1 = i1->outer)
> +		if (reachable_next_level (i1, type_thrown, NULL,
> +					  false) >= RNL_CAUGHT)
> +		  break;
> +	      if (i1 == r)
> +		return true;
> +	    }
> +	 }
> +      /* If there are sub-regions, process them.  */
> +      if (i->type != ERT_MUST_NOT_THROW
> +          && i->inner)
> +	i = i->inner;
> +      /* If there are peers, process them.  */
> +      else if (i->next_peer)
> +	i = i->next_peer;
> +      /* Otherwise, step back up the tree to the next peer.  */
> +      else
>  	{
> -	  gcc_assert (!uid_region_num[INSN_UID (r->label)]);
> -	  uid_region_num[INSN_UID (r->label)] = i;
> +	  do {
> +	    i = i->outer;
> +	    if (i == r)
> +	      return false;
> +	  } while (i->next_peer == NULL);
> +	  i = i->next_peer;
>  	}
>      }
> +}
>  
> -  for (insn = insns; insn; insn = NEXT_INSN (insn))
> -    reachable[uid_region_num[INSN_UID (insn)]] = true;
> +/* Remove all regions whose labels are not reachable.
> +   REACHABLE is bitmap of all regions that are used by the function
> +   CONTAINS_STMT is bitmap of all regions that contains stmt (or NULL). */
> +void
> +remove_unreachable_regions (sbitmap reachable, sbitmap contains_stmt)
> +{
> +  int i;
> +  struct eh_region *r;
>  
>    for (i = cfun->eh->last_region_number; i > 0; --i)
>      {
>        r = VEC_index (eh_region, cfun->eh->region_array, i);
> -      if (r && r->region_number == i && !reachable[i])
> +      if (!r)
> +	continue;
> +      if (r->region_number == i && !TEST_BIT (reachable, i) && !r->resume)
>  	{
>  	  bool kill_it = true;
> +
> +	  r->tree_label = NULL;
>  	  switch (r->type)
>  	    {
>  	    case ERT_THROW:
>  	      /* Don't remove ERT_THROW regions if their outer region
>  		 is reachable.  */
> -	      if (r->outer && reachable[r->outer->region_number])
> +	      if (r->outer && TEST_BIT (reachable, r->outer->region_number))
>  		kill_it = false;
>  	      break;
> -
>  	    case ERT_MUST_NOT_THROW:
>  	      /* MUST_NOT_THROW regions are implementable solely in the
> -		 runtime, but their existence continues to affect calls
> -		 within that region.  Never delete them here.  */
> -	      kill_it = false;
> -	      break;
> +		 runtime, but we need them when inlining function.
>  
> +		 Keep them if outer region is not MUST_NOT_THROW a well
> +		 and if they contain some statement that might unwind through
> +		 them.  */
> +	      if ((!r->outer || r->outer->type != ERT_MUST_NOT_THROW)
> +	          && (!contains_stmt
> +	              || can_be_reached_by_runtime (contains_stmt, r)))
> +	        kill_it = false;
> +	      break;
>  	    case ERT_TRY:
>  	      {
>  		/* TRY regions are reachable if any of its CATCH regions
>  		   are reachable.  */
>  		struct eh_region *c;
>  		for (c = r->u.eh_try.eh_catch; c ; c = c->u.eh_catch.next_catch)
> -		  if (reachable[c->region_number])
> +		  if (TEST_BIT (reachable, c->region_number))
>  		    {
>  		      kill_it = false;
>  		      break;
> @@ -697,11 +760,86 @@ remove_unreachable_regions (rtx insns)
>  	    }
>  
>  	  if (kill_it)
> -	    remove_eh_handler (r);
> +	    {
> +	      if (dump_file)
> +		fprintf (dump_file, "Removing unreachable eh region %i\n", r->region_number);
> +	      remove_eh_handler (r);
> +	    }
> +	}
> +    }
> +#ifdef ENABLE_CHECKING
> +  verify_eh_tree (cfun);
> +#endif
> +}
> +
> +/* Return array mapping LABEL_DECL_UID to region such that region's tree_label
> +   is identical to label.  */
> +
> +VEC(int,heap) *
> +label_to_region_map (void)
> +{
> +  VEC(int,heap) *label_to_region = NULL;
> +  int i;
> +
> +  VEC_safe_grow_cleared (int, heap, label_to_region, cfun->cfg->last_label_uid + 1);
> +  for (i = cfun->eh->last_region_number; i > 0; --i)
> +    {
> +      struct eh_region *r = VEC_index (eh_region, cfun->eh->region_array, i);
> +      if (r && r->tree_label && LABEL_DECL_UID (r->tree_label) >= 0)
> +	{
> +	  if ((unsigned)LABEL_DECL_UID (r->tree_label) > VEC_length (int, label_to_region))
> +	    VEC_safe_grow_cleared (int, heap, label_to_region, LABEL_DECL_UID (r->tree_label));
> +          VEC_replace (int, label_to_region, LABEL_DECL_UID (r->tree_label), i);
> +	}
> +    }
> +  return label_to_region;
> +}
> +
> +/* Return number of EH regions.  */
> +int
> +num_eh_regions (void)
> +{
> +  return cfun->eh->last_region_number + 1;
> +}
> +
> +/* Remove all regions whose labels are not reachable from insns.  */
> +
> +static void
> +rtl_remove_unreachable_regions (rtx insns)
> +{
> +  int i, *uid_region_num;
> +  sbitmap reachable;
> +  struct eh_region *r;
> +  rtx insn;
> +
> +  uid_region_num = XCNEWVEC (int, get_max_uid ());
> +  reachable = sbitmap_alloc (cfun->eh->last_region_number + 1);
> +  sbitmap_zero (reachable);
> +
> +  for (i = cfun->eh->last_region_number; i > 0; --i)
> +    {
> +      r = VEC_index (eh_region, cfun->eh->region_array, i);
> +      if (!r || r->region_number != i)
> +	continue;
> +
> +      if (r->resume)
> +	{
> +	  gcc_assert (!uid_region_num[INSN_UID (r->resume)]);
> +	  uid_region_num[INSN_UID (r->resume)] = i;
> +	}
> +      if (r->label)
> +	{
> +	  gcc_assert (!uid_region_num[INSN_UID (r->label)]);
> +	  uid_region_num[INSN_UID (r->label)] = i;
>  	}
>      }
>  
> -  free (reachable);
> +  for (insn = insns; insn; insn = NEXT_INSN (insn))
> +    SET_BIT (reachable, uid_region_num[INSN_UID (insn)]);
> +
> +  remove_unreachable_regions (reachable, NULL);
> +
> +  sbitmap_free (reachable);
>    free (uid_region_num);
>  }
>  
> @@ -726,7 +864,7 @@ convert_from_eh_region_ranges (void)
>  	region->label = DECL_RTL_IF_SET (region->tree_label);
>      }
>  
> -  remove_unreachable_regions (insns);
> +  rtl_remove_unreachable_regions (insns);
>  }
>  
>  static void
>      remove_eh_handler (region);
>  }
>  
> +/* Remove Eh region R that has turned out to have no code in its handler.  */
> +
> +void
> +remove_eh_region (int r)
> +{
> +  struct eh_region *region;
> +
> +  region = VEC_index (eh_region, cfun->eh->region_array, r);
> +  remove_eh_handler (region);
> +}
> +
>  /* Invokes CALLBACK for every exception handler label.  Only used by old
>     loop hackery; should not be used by new code.  */
>  
> Index: tree-eh.c
> ===================================================================
> --- tree-eh.c	(revision 145204)
> +++ tree-eh.c	(working copy)
> @@ -2639,3 +2639,269 @@ struct gimple_opt_pass pass_refactor_eh 
>    TODO_dump_func			/* todo_flags_finish */
>   }
>  };
> +
> +/* Walk statements, see what regions are really references and remove unreachable ones.  */
> +
> +static void
> +tree_remove_unreachable_handlers (void)
> +{
> +  sbitmap reachable, contains_stmt;
> +  VEC(int, heap) *label_to_region;
> +  basic_block bb;
> +
> +  label_to_region = label_to_region_map ();
> +  reachable = sbitmap_alloc (num_eh_regions ());
> +  sbitmap_zero (reachable);
> +  contains_stmt = sbitmap_alloc (num_eh_regions ());
> +  sbitmap_zero (contains_stmt);
> +
> +  FOR_EACH_BB (bb)
> +  {
> +    gimple_stmt_iterator gsi;
> +    int region;
> +    bool has_eh_preds = false;
> +    edge e;
> +    edge_iterator ei;
> +
> +    FOR_EACH_EDGE (e, ei, bb->preds)
> +      if (e->flags & EDGE_EH)
> +	has_eh_preds = true;
> +
> +    for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
> +      {
> +	gimple stmt = gsi_stmt (gsi);
> +
> +	if (gimple_code (stmt) == GIMPLE_LABEL && has_eh_preds)
> +	  {
> +	    int uid = LABEL_DECL_UID (gimple_label_label (stmt));
> +	    if (uid <= cfun->cfg->last_label_uid)
> +	      {
> +		int region = VEC_index (int, label_to_region, uid);
> +		SET_BIT (reachable, region);
> +	      }
> +	  }
> +	if (gimple_code (stmt) == RESX)
> +	  SET_BIT (reachable, gimple_resx_region (stmt));
> +	if ((region = lookup_stmt_eh_region (stmt)) >= 0)
> +	  SET_BIT (contains_stmt, region);
> +      }
> +  }
> +
> +  if (dump_file)
> +    {
> +      fprintf (dump_file, "Before removal of unreachable regions:\n");
> +      dump_eh_tree (dump_file, cfun);
> +      fprintf (dump_file, "Reachable regions: ");
> +      dump_sbitmap_file (dump_file, reachable);
> +      fprintf (dump_file, "Regions containing insns: ");
> +      dump_sbitmap_file (dump_file, contains_stmt);
> +    }
> +
> +  remove_unreachable_regions (reachable, contains_stmt);
> +  sbitmap_free (reachable);
> +  sbitmap_free (contains_stmt);
> +  VEC_free (int, heap, label_to_region);
> +  if (dump_file)
> +    {
> +      fprintf (dump_file, "\n\nAfter removal of unreachable regions:\n");
> +      dump_eh_tree (dump_file, cfun);
> +      fprintf (dump_file, "\n\n");
> +    }
> +}
> +
> +/* Pattern match emtpy EH receiver looking like:
> +  
> +   save_filt.6352_662 = [filter_expr] <<<filter object>>>;
> +   save_eptr.6351_663 = [exc_ptr_expr] <<<exception object>>>;
> +   <<<exception object>>> = save_eptr.6351_663;
> +   <<<filter object>>> = save_filt.6352_662;
> +   resx 1
> + */
> +
> +static int
> +tree_empty_eh_handler_p (basic_block bb)
> +{
> +  gimple_stmt_iterator gsi;
> +  int region;
> +
> +  gsi = gsi_last_bb (bb);
> +
> +  /* RESX  */
> +  if (gsi_end_p (gsi))
> +    return 0;
> +  if (gimple_code (gsi_stmt (gsi)) != GIMPLE_RESX)
> +    return 0;
> +  region = gimple_resx_region (gsi_stmt (gsi));
> +
> +  /* filter_object set.  */
> +  gsi_prev (&gsi);
> +  if (gsi_end_p (gsi))
> +    return 0;
> +  if (gimple_code (gsi_stmt (gsi)) != GIMPLE_ASSIGN)
> +    return 0;
> +  if (TREE_CODE (gimple_assign_lhs (gsi_stmt (gsi))) != FILTER_EXPR)
> +    return 0;
> +
> +  /* filter_object set.  */
> +  gsi_prev (&gsi);
> +  if (gsi_end_p (gsi))
> +    return 0;
> +  if (gimple_code (gsi_stmt (gsi)) != GIMPLE_ASSIGN)
> +    return 0;
> +  if (TREE_CODE (gimple_assign_lhs (gsi_stmt (gsi))) != EXC_PTR_EXPR)
> +    return 0;
> +
> +  /* filter_object get.  */
> +  gsi_prev (&gsi);
> +  if (gsi_end_p (gsi))
> +    return 0;
> +  if (gimple_code (gsi_stmt (gsi)) != GIMPLE_ASSIGN)
> +    return 0;
> +  if (TREE_CODE (gimple_assign_rhs1 (gsi_stmt (gsi))) != EXC_PTR_EXPR)
> +    return 0;
> +
> +  /* filter_object get.  */
> +  gsi_prev (&gsi);
> +  if (gsi_end_p (gsi))
> +    return 0;
> +  if (gimple_code (gsi_stmt (gsi)) != GIMPLE_ASSIGN)
> +    return 0;
> +  if (TREE_CODE (gimple_assign_rhs1 (gsi_stmt (gsi))) != FILTER_EXPR)
> +    return 0;
> +
> +  /* label.  */
> +  gsi_prev (&gsi);
> +  if (gsi_end_p (gsi))
> +    return 0;
> +  if (gimple_code (gsi_stmt (gsi)) == GIMPLE_LABEL)
> +    return region;
> +  else
> +    return 0;
> +}
> +
> +/* Look for basic blocks containing empty exception handler and remove them.
> +   This is similar to jump forwarding, just across EH edges.  */
> +
> +static bool
> +cleanup_empty_eh (basic_block bb)
> +{
> +  int region;
> +
> +  /* When handler of EH region winds up to be empty, we can safely
> +     remove it.  This leads to inner EH regions to be redirected
> +     to outer one, if present in function. So we need to rebuild
> +     EH edges in all sources.   */
> +  if ((region = tree_empty_eh_handler_p (bb)))
> +    {
> +      edge_iterator ei;
> +      edge e;
> +      gimple_stmt_iterator si;
> +
> +      remove_eh_region (region);
> +
> +      /* It is safe to mark symbol for renaming because we have abnormal PHI
> +         here.  Once EH edges are made redirectable we might need to add here
> +	 similar updating as jump threading does.  */
> +
> +      for (si = gsi_start_phis (bb); !gsi_end_p (si); gsi_next (&si))
> +        mark_sym_for_renaming (SSA_NAME_VAR (PHI_RESULT (gsi_stmt (si))));
> +
> +      while ((e = ei_safe_edge (ei_start (bb->preds))))
> +	{
> +	  basic_block src = e->src;
> +	  gcc_assert (e->flags & EDGE_EH);
> +          for (ei = ei_start (src->succs); (e = ei_safe_edge (ei));)
> +	    {
> +	      if (e->flags & EDGE_EH)
> +		{
> +		  remove_edge (e);
> +    	          free_dominance_info (CDI_DOMINATORS);
> +    	          free_dominance_info (CDI_POST_DOMINATORS);
> +		}
> +	      else
> +		ei_next (&ei);
> +	    }
> +	   if (!stmt_can_throw_internal (last_stmt (src)))
> +	     continue;
> +	   make_eh_edges (last_stmt (src));
> +  	   FOR_EACH_EDGE (e, ei, src->succs)
> +	     if (e->flags & EDGE_EH)
> +	       {
> +    	         free_dominance_info (CDI_DOMINATORS);
> +    	         free_dominance_info (CDI_POST_DOMINATORS);
> +                 for (si = gsi_start_phis (e->dest); !gsi_end_p (si); gsi_next (&si))
> +                   mark_sym_for_renaming (SSA_NAME_VAR (PHI_RESULT (gsi_stmt (si))));
> +	       }
> +        }
> +      if (dump_file)
> +	fprintf (dump_file, "Empty EH handler %i removed\n", region);
> +      delete_basic_block (bb);
> +      return true;
> +    }
> +  return false;
> +}
> +
> +
> +/* Perform cleanups and lowering of exception handling
> +    1) cleanups regions with handlers doing nothing are optimized out
> +    2) MUST_NOT_THROW regions that became dead because of 1) are optimized out
> +    3) Info about regions that are containing instructions, and regions
> +       reachable via local EH edges is collected
> +    4) Eh tree is pruned for regions no longer neccesary.
> + */
> +
> +static unsigned int
> +cleanup_eh (void)
> +{
> +  bool changed = false;
> +  basic_block bb;
> +  int i;
> +
> +  if (!cfun->eh)
> +    return 0;
> +  if (dump_file)
> +    {
> +      fprintf (dump_file, "Before cleanups:\n");
> +      dump_eh_tree (dump_file, cfun);
> +    }
> +
> +  /* We cannot use FOR_EACH_BB, since the basic blocks may get removed.  */
> +  for (i = NUM_FIXED_BLOCKS; i < last_basic_block; i++)
> +    {
> +      bb = BASIC_BLOCK (i);
> +      if (bb)
> +        changed |= cleanup_empty_eh (bb);
> +    }
> +
> +  /* Removing contained cleanup can render MUST_NOT_THROW regions empty.  */
> +  if (changed)
> +    delete_unreachable_blocks ();
> +
> +  tree_remove_unreachable_handlers ();
> +  if (dump_file)
> +    {
> +      fprintf (dump_file, "After cleanups:\n");
> +      dump_eh_tree (dump_file, cfun);
> +    }
> +
> +  return (changed ? TODO_cleanup_cfg | TODO_update_ssa : 0);
> +}
> +
> +struct gimple_opt_pass pass_cleanup_eh =
> +{
> + {
> +  GIMPLE_PASS,
> +  "ehcleanup",				/* name */
> +  NULL,					/* gate */
> +  cleanup_eh,				/* execute */
> +  NULL,					/* sub */
> +  NULL,					/* next */
> +  0,					/* static_pass_number */
> +  TV_TREE_EH,				/* tv_id */
> +  PROP_gimple_lcf,			/* properties_required */
> +  0,					/* properties_provided */
> +  0,					/* properties_destroyed */
> +  0,					/* todo_flags_start */
> +  TODO_dump_func			/* todo_flags_finish */
> + }
> +};
> Index: Makefile.in
> ===================================================================
> *** Makefile.in	(revision 145204)
> --- Makefile.in	(working copy)
> *************** REVISION_s  :=
> *** 780,785 ****
> --- 780,786 ----
>   endif
>   
>   # Shorthand variables for dependency lists.
> + EXCEPT_H = except.h sbitmap.h vecprim.h
>   TOPLEV_H = toplev.h input.h
>   TARGET_H = $(TM_H) target.h insn-modes.h
>   MACHMODE_H = machmode.h mode-classes.def insn-modes.h
> *************** c-decl.o : c-decl.c $(CONFIG_H) $(SYSTEM
> *** 1810,1816 ****
>       $(RTL_H) $(C_TREE_H) $(GGC_H) $(TARGET_H) $(FLAGS_H) $(FUNCTION_H) output.h \
>       $(EXPR_H) debug.h $(TOPLEV_H) intl.h $(TM_P_H) $(TREE_INLINE_H) $(TIMEVAR_H) \
>       opts.h $(C_PRAGMA_H) gt-c-decl.h $(CGRAPH_H) $(HASHTAB_H) libfuncs.h \
> !     except.h $(LANGHOOKS_DEF_H) $(TREE_DUMP_H) $(C_COMMON_H) $(CPPLIB_H) \
>       $(DIAGNOSTIC_H) $(INPUT_H) langhooks.h $(GIMPLE_H) tree-mudflap.h  \
>       pointer-set.h $(BASIC_BLOCK_H) $(GIMPLE_H) tree-iterator.h
>   c-typeck.o : c-typeck.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
> --- 1811,1817 ----
>       $(RTL_H) $(C_TREE_H) $(GGC_H) $(TARGET_H) $(FLAGS_H) $(FUNCTION_H) output.h \
>       $(EXPR_H) debug.h $(TOPLEV_H) intl.h $(TM_P_H) $(TREE_INLINE_H) $(TIMEVAR_H) \
>       opts.h $(C_PRAGMA_H) gt-c-decl.h $(CGRAPH_H) $(HASHTAB_H) libfuncs.h \
> !     $(EXCEPT_H) $(LANGHOOKS_DEF_H) $(TREE_DUMP_H) $(C_COMMON_H) $(CPPLIB_H) \
>       $(DIAGNOSTIC_H) $(INPUT_H) langhooks.h $(GIMPLE_H) tree-mudflap.h  \
>       pointer-set.h $(BASIC_BLOCK_H) $(GIMPLE_H) tree-iterator.h
>   c-typeck.o : c-typeck.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
> *************** c-opts.o : c-opts.c $(CONFIG_H) $(SYSTEM
> *** 1894,1900 ****
>   
>   c-cppbuiltin.o : c-cppbuiltin.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>   	$(TREE_H) version.h $(C_COMMON_H) $(C_PRAGMA_H) $(FLAGS_H) \
> ! 	$(TOPLEV_H) output.h except.h $(REAL_H) $(TARGET_H) $(TM_P_H) \
>   	$(BASEVER) debug.h
>   	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) -DBASEVER=$(BASEVER_s) \
>   		$< $(OUTPUT_OPTION)
> --- 1895,1901 ----
>   
>   c-cppbuiltin.o : c-cppbuiltin.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>   	$(TREE_H) version.h $(C_COMMON_H) $(C_PRAGMA_H) $(FLAGS_H) \
> ! 	$(TOPLEV_H) output.h $(EXCEPT_H) $(REAL_H) $(TARGET_H) $(TM_P_H) \
>   	$(BASEVER) debug.h
>   	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) -DBASEVER=$(BASEVER_s) \
>   		$< $(OUTPUT_OPTION)
> *************** c-format.o : c-format.c $(CONFIG_H) $(SY
> *** 1911,1917 ****
>   
>   c-semantics.o : c-semantics.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>   	$(TREE_H) $(FLAGS_H) $(TOPLEV_H) output.h $(RTL_H) $(GGC_H) \
> ! 	$(PREDICT_H) $(TREE_INLINE_H) $(C_COMMON_H) except.h $(FUNCTION_H) \
>   	langhooks.h $(SPLAY_TREE_H) $(TIMEVAR_H) $(GIMPLE_H) \
>   	$(VARRAY_H) tree-iterator.h
>   
> --- 1912,1918 ----
>   
>   c-semantics.o : c-semantics.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>   	$(TREE_H) $(FLAGS_H) $(TOPLEV_H) output.h $(RTL_H) $(GGC_H) \
> ! 	$(PREDICT_H) $(TREE_INLINE_H) $(C_COMMON_H) $(EXCEPT_H) $(FUNCTION_H) \
>   	langhooks.h $(SPLAY_TREE_H) $(TIMEVAR_H) $(GIMPLE_H) \
>   	$(VARRAY_H) tree-iterator.h
>   
> *************** gtype-desc.o: gtype-desc.c $(CONFIG_H) $
> *** 2008,2014 ****
>   	input.h $(TREE_H) $(RTL_H) $(FUNCTION_H) insn-config.h $(EXPR_H) \
>   	hard-reg-set.h $(BASIC_BLOCK_H) cselib.h $(INSN_ADDR_H) $(OPTABS_H) \
>   	libfuncs.h debug.h $(GGC_H) $(CGRAPH_H) $(TREE_FLOW_H) reload.h \
> ! 	$(CPP_ID_DATA_H) tree-chrec.h $(CFGLAYOUT_H) except.h output.h \
>   	$(CFGLOOP_H)
>   
>   ggc-common.o: ggc-common.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(GGC_H) \
> --- 2009,2015 ----
>   	input.h $(TREE_H) $(RTL_H) $(FUNCTION_H) insn-config.h $(EXPR_H) \
>   	hard-reg-set.h $(BASIC_BLOCK_H) cselib.h $(INSN_ADDR_H) $(OPTABS_H) \
>   	libfuncs.h debug.h $(GGC_H) $(CGRAPH_H) $(TREE_FLOW_H) reload.h \
> ! 	$(CPP_ID_DATA_H) tree-chrec.h $(CFGLAYOUT_H) $(EXCEPT_H) output.h \
>   	$(CFGLOOP_H)
>   
>   ggc-common.o: ggc-common.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(GGC_H) \
> *************** tree-inline.o : tree-inline.c $(CONFIG_H
> *** 2054,2060 ****
>      $(TREE_H) $(RTL_H) $(EXPR_H) $(FLAGS_H) $(PARAMS_H) $(INPUT_H) insn-config.h \
>      $(VARRAY_H) $(HASHTAB_H) $(TOPLEV_H) langhooks.h $(TREE_INLINE_H) $(CGRAPH_H) \
>      intl.h $(FUNCTION_H) $(GGC_H) $(GIMPLE_H) \
> !    debug.h $(DIAGNOSTIC_H) except.h $(TREE_FLOW_H) tree-iterator.h tree-mudflap.h \
>      $(IPA_PROP_H) value-prof.h tree-pass.h $(TARGET_H) $(INTEGRATE_H)
>   print-tree.o : print-tree.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
>      $(GGC_H) langhooks.h $(REAL_H) tree-iterator.h fixed-value.h \
> --- 2055,2061 ----
>      $(TREE_H) $(RTL_H) $(EXPR_H) $(FLAGS_H) $(PARAMS_H) $(INPUT_H) insn-config.h \
>      $(VARRAY_H) $(HASHTAB_H) $(TOPLEV_H) langhooks.h $(TREE_INLINE_H) $(CGRAPH_H) \
>      intl.h $(FUNCTION_H) $(GGC_H) $(GIMPLE_H) \
> !    debug.h $(DIAGNOSTIC_H) $(EXCEPT_H) $(TREE_FLOW_H) tree-iterator.h tree-mudflap.h \
>      $(IPA_PROP_H) value-prof.h tree-pass.h $(TARGET_H) $(INTEGRATE_H)
>   print-tree.o : print-tree.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
>      $(GGC_H) langhooks.h $(REAL_H) tree-iterator.h fixed-value.h \
> *************** tree-vrp.o : tree-vrp.c $(CONFIG_H) $(SY
> *** 2177,2189 ****
>   tree-cfg.o : tree-cfg.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
>      $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) $(FLAGS_H) output.h \
>      $(DIAGNOSTIC_H) $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
> !    $(TREE_DUMP_H) except.h langhooks.h $(CFGLOOP_H) tree-pass.h \
>      $(CFGLAYOUT_H) $(BASIC_BLOCK_H) hard-reg-set.h $(TOPLEV_H) \
>      value-prof.h tree-ssa-propagate.h $(TREE_INLINE_H)
>   tree-cfgcleanup.o : tree-cfgcleanup.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
>      $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) $(FLAGS_H) output.h \
>      $(DIAGNOSTIC_H) $(TOPLEV_H) $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
> !    $(TREE_DUMP_H) except.h langhooks.h $(CFGLOOP_H) tree-pass.h \
>      $(CFGLAYOUT_H) $(BASIC_BLOCK_H) hard-reg-set.h $(HASHTAB_H) $(TOPLEV_H) \
>      tree-ssa-propagate.h tree-scalar-evolution.h
>   rtl-factoring.o : rtl-factoring.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) \
> --- 2178,2190 ----
>   tree-cfg.o : tree-cfg.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
>      $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) $(FLAGS_H) output.h \
>      $(DIAGNOSTIC_H) $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
> !    $(TREE_DUMP_H) $(EXCEPT_H) langhooks.h $(CFGLOOP_H) tree-pass.h \
>      $(CFGLAYOUT_H) $(BASIC_BLOCK_H) hard-reg-set.h $(TOPLEV_H) \
>      value-prof.h tree-ssa-propagate.h $(TREE_INLINE_H)
>   tree-cfgcleanup.o : tree-cfgcleanup.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
>      $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) $(FLAGS_H) output.h \
>      $(DIAGNOSTIC_H) $(TOPLEV_H) $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
> !    $(TREE_DUMP_H) $(EXCEPT_H) langhooks.h $(CFGLOOP_H) tree-pass.h \
>      $(CFGLAYOUT_H) $(BASIC_BLOCK_H) hard-reg-set.h $(HASHTAB_H) $(TOPLEV_H) \
>      tree-ssa-propagate.h tree-scalar-evolution.h
>   rtl-factoring.o : rtl-factoring.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) \
> *************** rtl-factoring.o : rtl-factoring.c $(CONF
> *** 2192,2198 ****
>      $(TIMEVAR_H) output.h $(DF_H)
>   tree-tailcall.o : tree-tailcall.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
>      $(RTL_H) $(TREE_H) $(TM_P_H) $(FUNCTION_H) $(TM_H) coretypes.h \
> !    $(TREE_DUMP_H) $(DIAGNOSTIC_H) except.h tree-pass.h $(FLAGS_H) langhooks.h \
>      $(BASIC_BLOCK_H) hard-reg-set.h $(DBGCNT_H)
>   tree-ssa-sink.o : tree-ssa-sink.c $(TREE_FLOW_H) $(CONFIG_H) \
>      $(SYSTEM_H) $(TREE_H) $(GGC_H) $(DIAGNOSTIC_H) $(TIMEVAR_H) \
> --- 2193,2199 ----
>      $(TIMEVAR_H) output.h $(DF_H)
>   tree-tailcall.o : tree-tailcall.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
>      $(RTL_H) $(TREE_H) $(TM_P_H) $(FUNCTION_H) $(TM_H) coretypes.h \
> !    $(TREE_DUMP_H) $(DIAGNOSTIC_H) $(EXCEPT_H) tree-pass.h $(FLAGS_H) langhooks.h \
>      $(BASIC_BLOCK_H) hard-reg-set.h $(DBGCNT_H)
>   tree-ssa-sink.o : tree-ssa-sink.c $(TREE_FLOW_H) $(CONFIG_H) \
>      $(SYSTEM_H) $(TREE_H) $(GGC_H) $(DIAGNOSTIC_H) $(TIMEVAR_H) \
> *************** tree-ssa-operands.o : tree-ssa-operands.
> *** 2221,2227 ****
>      $(FLAGS_H) $(FUNCTION_H) $(TM_H) $(TIMEVAR_H) tree-pass.h $(TOPLEV_H) \
>      coretypes.h langhooks.h $(IPA_REFERENCE_H)
>   tree-eh.o : tree-eh.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
> !    $(RTL_H) $(TREE_H) $(TM_H) $(FLAGS_H) $(FUNCTION_H) except.h langhooks.h \
>      $(GGC_H) tree-pass.h coretypes.h $(TIMEVAR_H) $(TM_P_H) pointer-set.h \
>      $(TREE_DUMP_H) $(TREE_INLINE_H) tree-iterator.h $(TOPLEV_H)
>   tree-ssa-loop.o : tree-ssa-loop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
> --- 2222,2228 ----
>      $(FLAGS_H) $(FUNCTION_H) $(TM_H) $(TIMEVAR_H) tree-pass.h $(TOPLEV_H) \
>      coretypes.h langhooks.h $(IPA_REFERENCE_H)
>   tree-eh.o : tree-eh.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
> !    $(RTL_H) $(TREE_H) $(TM_H) $(FLAGS_H) $(FUNCTION_H) $(EXCEPT_H) langhooks.h \
>      $(GGC_H) tree-pass.h coretypes.h $(TIMEVAR_H) $(TM_P_H) pointer-set.h \
>      $(TREE_DUMP_H) $(TREE_INLINE_H) tree-iterator.h $(TOPLEV_H)
>   tree-ssa-loop.o : tree-ssa-loop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
> *************** tree-optimize.o : tree-optimize.c $(TREE
> *** 2301,2307 ****
>      $(DIAGNOSTIC_H) $(BASIC_BLOCK_H) $(FLAGS_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
>      $(TREE_DUMP_H) $(TOPLEV_H) $(FUNCTION_H) langhooks.h $(FLAGS_H) $(CGRAPH_H) \
>      $(TREE_INLINE_H) tree-mudflap.h $(GGC_H) graph.h $(CGRAPH_H) tree-pass.h \
> !    $(CFGLOOP_H) except.h
>   
>   c-gimplify.o : c-gimplify.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) \
>      $(C_TREE_H) $(C_COMMON_H) $(DIAGNOSTIC_H) $(GIMPLE_H) $(VARRAY_H) \
> --- 2302,2308 ----
>      $(DIAGNOSTIC_H) $(BASIC_BLOCK_H) $(FLAGS_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
>      $(TREE_DUMP_H) $(TOPLEV_H) $(FUNCTION_H) langhooks.h $(FLAGS_H) $(CGRAPH_H) \
>      $(TREE_INLINE_H) tree-mudflap.h $(GGC_H) graph.h $(CGRAPH_H) tree-pass.h \
> !    $(CFGLOOP_H) $(EXCEPT_H)
>   
>   c-gimplify.o : c-gimplify.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) \
>      $(C_TREE_H) $(C_COMMON_H) $(DIAGNOSTIC_H) $(GIMPLE_H) $(VARRAY_H) \
> *************** c-gimplify.o : c-gimplify.c $(CONFIG_H) 
> *** 2311,2317 ****
>   gimplify.o : gimplify.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(GIMPLE_H) \
>      $(DIAGNOSTIC_H) $(GIMPLE_H) $(TREE_INLINE_H) $(VARRAY_H) langhooks.h \
>      $(LANGHOOKS_DEF_H) $(TREE_FLOW_H) $(CGRAPH_H) $(TIMEVAR_H) $(TM_H) \
> !    coretypes.h except.h $(FLAGS_H) $(RTL_H) $(FUNCTION_H) $(EXPR_H) output.h \
>      $(GGC_H) gt-gimplify.h $(HASHTAB_H) $(TARGET_H) $(TOPLEV_H) $(OPTABS_H) \
>      $(REAL_H) $(SPLAY_TREE_H) vec.h tree-iterator.h
>   gimple-iterator.o : gimple-iterator.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
> --- 2312,2318 ----
>   gimplify.o : gimplify.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(GIMPLE_H) \
>      $(DIAGNOSTIC_H) $(GIMPLE_H) $(TREE_INLINE_H) $(VARRAY_H) langhooks.h \
>      $(LANGHOOKS_DEF_H) $(TREE_FLOW_H) $(CGRAPH_H) $(TIMEVAR_H) $(TM_H) \
> !    coretypes.h $(EXCEPT_H) $(FLAGS_H) $(RTL_H) $(FUNCTION_H) $(EXPR_H) output.h \
>      $(GGC_H) gt-gimplify.h $(HASHTAB_H) $(TARGET_H) $(TOPLEV_H) $(OPTABS_H) \
>      $(REAL_H) $(SPLAY_TREE_H) vec.h tree-iterator.h
>   gimple-iterator.o : gimple-iterator.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
> *************** gimple-iterator.o : gimple-iterator.c $(
> *** 2319,2330 ****
>   gimple-low.o : gimple-low.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) \
>      $(DIAGNOSTIC_H) $(GIMPLE_H) $(TREE_INLINE_H) $(VARRAY_H) langhooks.h \
>      $(LANGHOOKS_DEF_H) $(TREE_FLOW_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
> !    except.h $(FLAGS_H) $(RTL_H) $(FUNCTION_H) $(EXPR_H) tree-pass.h \
>      $(HASHTAB_H) $(TOPLEV.H) tree-iterator.h
>   omp-low.o : omp-low.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
>      $(RTL_H) $(GIMPLE_H) $(TREE_INLINE_H) langhooks.h $(DIAGNOSTIC_H) \
>      $(TREE_FLOW_H) $(TIMEVAR_H) $(FLAGS_H) $(EXPR_H) $(TOPLEV_H) tree-pass.h \
> !    $(GGC_H) except.h $(SPLAY_TREE_H) $(OPTABS_H) $(CFGLOOP_H) \
>      tree-iterator.h
>   tree-browser.o : tree-browser.c tree-browser.def $(CONFIG_H) $(SYSTEM_H) \
>      $(TREE_H) $(TREE_INLINE_H) $(DIAGNOSTIC_H) $(HASHTAB_H) \
> --- 2320,2331 ----
>   gimple-low.o : gimple-low.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) \
>      $(DIAGNOSTIC_H) $(GIMPLE_H) $(TREE_INLINE_H) $(VARRAY_H) langhooks.h \
>      $(LANGHOOKS_DEF_H) $(TREE_FLOW_H) $(TIMEVAR_H) $(TM_H) coretypes.h \
> !    $(EXCEPT_H) $(FLAGS_H) $(RTL_H) $(FUNCTION_H) $(EXPR_H) tree-pass.h \
>      $(HASHTAB_H) $(TOPLEV.H) tree-iterator.h
>   omp-low.o : omp-low.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
>      $(RTL_H) $(GIMPLE_H) $(TREE_INLINE_H) langhooks.h $(DIAGNOSTIC_H) \
>      $(TREE_FLOW_H) $(TIMEVAR_H) $(FLAGS_H) $(EXPR_H) $(TOPLEV_H) tree-pass.h \
> !    $(GGC_H) $(EXCEPT_H) $(SPLAY_TREE_H) $(OPTABS_H) $(CFGLOOP_H) \
>      tree-iterator.h
>   tree-browser.o : tree-browser.c tree-browser.def $(CONFIG_H) $(SYSTEM_H) \
>      $(TREE_H) $(TREE_INLINE_H) $(DIAGNOSTIC_H) $(HASHTAB_H) \
> *************** toplev.o : toplev.c $(CONFIG_H) $(SYSTEM
> *** 2429,2435 ****
>      version.h $(RTL_H) $(FUNCTION_H) $(FLAGS_H) xcoffout.h $(INPUT_H) \
>      $(INSN_ATTR_H) output.h $(DIAGNOSTIC_H) debug.h insn-config.h intl.h \
>      $(RECOG_H) Makefile $(TOPLEV_H) dwarf2out.h sdbout.h dbxout.h $(EXPR_H) \
> !    hard-reg-set.h $(BASIC_BLOCK_H) graph.h except.h $(REGS_H) $(TIMEVAR_H) \
>      value-prof.h $(PARAMS_H) $(TM_P_H) reload.h ira.h dwarf2asm.h $(TARGET_H) \
>      langhooks.h insn-flags.h $(CFGLAYOUT_H) $(CFGLOOP_H) hosthooks.h \
>      $(CGRAPH_H) $(COVERAGE_H) alloc-pool.h $(GGC_H) $(INTEGRATE_H) \
> --- 2430,2436 ----
>      version.h $(RTL_H) $(FUNCTION_H) $(FLAGS_H) xcoffout.h $(INPUT_H) \
>      $(INSN_ATTR_H) output.h $(DIAGNOSTIC_H) debug.h insn-config.h intl.h \
>      $(RECOG_H) Makefile $(TOPLEV_H) dwarf2out.h sdbout.h dbxout.h $(EXPR_H) \
> !    hard-reg-set.h $(BASIC_BLOCK_H) graph.h $(EXCEPT_H) $(REGS_H) $(TIMEVAR_H) \
>      value-prof.h $(PARAMS_H) $(TM_P_H) reload.h ira.h dwarf2asm.h $(TARGET_H) \
>      langhooks.h insn-flags.h $(CFGLAYOUT_H) $(CFGLOOP_H) hosthooks.h \
>      $(CGRAPH_H) $(COVERAGE_H) alloc-pool.h $(GGC_H) $(INTEGRATE_H) \
> *************** passes.o : passes.c $(CONFIG_H) $(SYSTEM
> *** 2442,2448 ****
>      $(RTL_H) $(FUNCTION_H) $(FLAGS_H) xcoffout.h $(INPUT_H) $(INSN_ATTR_H) output.h \
>      $(DIAGNOSTIC_H) debug.h insn-config.h intl.h $(RECOG_H) $(TOPLEV_H) \
>      dwarf2out.h sdbout.h dbxout.h $(EXPR_H) hard-reg-set.h $(BASIC_BLOCK_H) \
> !    graph.h except.h $(REGS_H) $(TIMEVAR_H) value-prof.h \
>      $(PARAMS_H) $(TM_P_H) reload.h dwarf2asm.h $(TARGET_H) \
>      langhooks.h insn-flags.h $(CFGLAYOUT_H) $(REAL_H) $(CFGLOOP_H) \
>      hosthooks.h $(CGRAPH_H) $(COVERAGE_H) tree-pass.h $(TREE_DUMP_H) \
> --- 2443,2449 ----
>      $(RTL_H) $(FUNCTION_H) $(FLAGS_H) xcoffout.h $(INPUT_H) $(INSN_ATTR_H) output.h \
>      $(DIAGNOSTIC_H) debug.h insn-config.h intl.h $(RECOG_H) $(TOPLEV_H) \
>      dwarf2out.h sdbout.h dbxout.h $(EXPR_H) hard-reg-set.h $(BASIC_BLOCK_H) \
> !    graph.h $(EXCEPT_H) $(REGS_H) $(TIMEVAR_H) value-prof.h \
>      $(PARAMS_H) $(TM_P_H) reload.h dwarf2asm.h $(TARGET_H) \
>      langhooks.h insn-flags.h $(CFGLAYOUT_H) $(REAL_H) $(CFGLOOP_H) \
>      hosthooks.h $(CGRAPH_H) $(COVERAGE_H) tree-pass.h $(TREE_DUMP_H) \
> *************** varasm.o : varasm.c $(CONFIG_H) $(SYSTEM
> *** 2477,2502 ****
>   function.o : function.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(TREE_H) $(CFGLAYOUT_H) $(GIMPLE_H) $(FLAGS_H) $(FUNCTION_H) $(EXPR_H) \
>      $(OPTABS_H) libfuncs.h $(REGS_H) hard-reg-set.h insn-config.h $(RECOG_H) \
> !    output.h $(TOPLEV_H) except.h $(HASHTAB_H) $(GGC_H) $(TM_P_H) langhooks.h \
>      gt-function.h $(TARGET_H) $(BASIC_BLOCK_H) $(INTEGRATE_H) $(PREDICT_H) \
>      tree-pass.h $(DF_H) $(TIMEVAR_H) vecprim.h
>   statistics.o : statistics.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
>      tree-pass.h $(TREE_DUMP_H) $(HASHTAB_H) statistics.h $(TM_H) $(FUNCTION_H)
>   stmt.o : stmt.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(TREE_H) $(FLAGS_H) $(FUNCTION_H) insn-config.h hard-reg-set.h $(EXPR_H) \
> !    libfuncs.h except.h $(RECOG_H) $(TOPLEV_H) output.h $(GGC_H) $(TM_P_H) \
>      langhooks.h $(PREDICT_H) $(OPTABS_H) $(TARGET_H) $(MACHMODE_H) \
>      $(REGS_H) alloc-pool.h
>   except.o : except.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
> !    $(TREE_H) $(FLAGS_H) except.h $(FUNCTION_H) $(EXPR_H) libfuncs.h \
>      langhooks.h insn-config.h hard-reg-set.h $(BASIC_BLOCK_H) output.h \
>      dwarf2asm.h dwarf2out.h $(TOPLEV_H) $(HASHTAB_H) intl.h $(GGC_H) \
> !    gt-except.h $(CGRAPH_H) $(INTEGRATE_H) $(DIAGNOSTIC_H) dwarf2.h \
>      $(TARGET_H) $(TM_P_H) tree-pass.h $(TIMEVAR_H)
>   expr.o : expr.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(TREE_H) $(FLAGS_H) $(FUNCTION_H) $(REGS_H) $(EXPR_H) $(OPTABS_H) \
>      libfuncs.h $(INSN_ATTR_H) insn-config.h $(RECOG_H) output.h \
> !    typeclass.h hard-reg-set.h $(TOPLEV_H) hard-reg-set.h except.h reload.h \
>      $(GGC_H) langhooks.h intl.h $(TM_P_H) $(REAL_H) $(TARGET_H) \
>      tree-iterator.h gt-expr.h $(MACHMODE_H) $(TIMEVAR_H) $(TREE_FLOW_H) \
>      tree-pass.h $(DF_H) $(DIAGNOSTIC_H) vecprim.h
> --- 2478,2503 ----
>   function.o : function.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(TREE_H) $(CFGLAYOUT_H) $(GIMPLE_H) $(FLAGS_H) $(FUNCTION_H) $(EXPR_H) \
>      $(OPTABS_H) libfuncs.h $(REGS_H) hard-reg-set.h insn-config.h $(RECOG_H) \
> !    output.h $(TOPLEV_H) $(EXCEPT_H) $(HASHTAB_H) $(GGC_H) $(TM_P_H) langhooks.h \
>      gt-function.h $(TARGET_H) $(BASIC_BLOCK_H) $(INTEGRATE_H) $(PREDICT_H) \
>      tree-pass.h $(DF_H) $(TIMEVAR_H) vecprim.h
>   statistics.o : statistics.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
>      tree-pass.h $(TREE_DUMP_H) $(HASHTAB_H) statistics.h $(TM_H) $(FUNCTION_H)
>   stmt.o : stmt.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(TREE_H) $(FLAGS_H) $(FUNCTION_H) insn-config.h hard-reg-set.h $(EXPR_H) \
> !    libfuncs.h $(EXCEPT_H) $(RECOG_H) $(TOPLEV_H) output.h $(GGC_H) $(TM_P_H) \
>      langhooks.h $(PREDICT_H) $(OPTABS_H) $(TARGET_H) $(MACHMODE_H) \
>      $(REGS_H) alloc-pool.h
>   except.o : except.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
> !    $(TREE_H) $(FLAGS_H) $(EXCEPT_H) $(FUNCTION_H) $(EXPR_H) libfuncs.h \
>      langhooks.h insn-config.h hard-reg-set.h $(BASIC_BLOCK_H) output.h \
>      dwarf2asm.h dwarf2out.h $(TOPLEV_H) $(HASHTAB_H) intl.h $(GGC_H) \
> !    gt-$(EXCEPT_H) $(CGRAPH_H) $(INTEGRATE_H) $(DIAGNOSTIC_H) dwarf2.h \
>      $(TARGET_H) $(TM_P_H) tree-pass.h $(TIMEVAR_H)
>   expr.o : expr.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(TREE_H) $(FLAGS_H) $(FUNCTION_H) $(REGS_H) $(EXPR_H) $(OPTABS_H) \
>      libfuncs.h $(INSN_ATTR_H) insn-config.h $(RECOG_H) output.h \
> !    typeclass.h hard-reg-set.h $(TOPLEV_H) hard-reg-set.h $(EXCEPT_H) reload.h \
>      $(GGC_H) langhooks.h intl.h $(TM_P_H) $(REAL_H) $(TARGET_H) \
>      tree-iterator.h gt-expr.h $(MACHMODE_H) $(TIMEVAR_H) $(TREE_FLOW_H) \
>      tree-pass.h $(DF_H) $(DIAGNOSTIC_H) vecprim.h
> *************** dojump.o : dojump.c $(CONFIG_H) $(SYSTEM
> *** 2506,2528 ****
>   builtins.o : builtins.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(TREE_H) $(GIMPLE_H) $(FLAGS_H) $(TARGET_H) $(FUNCTION_H) $(REGS_H) \
>      $(EXPR_H) $(OPTABS_H) insn-config.h $(RECOG_H) output.h typeclass.h \
> !    hard-reg-set.h $(TOPLEV_H) hard-reg-set.h except.h $(TM_P_H) $(PREDICT_H) \
>      libfuncs.h $(REAL_H) langhooks.h $(BASIC_BLOCK_H) tree-mudflap.h \
>      $(BUILTINS_DEF) $(MACHMODE_H) $(DIAGNOSTIC_H) $(TREE_FLOW_H) value-prof.h
>   calls.o : calls.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(TREE_H) $(FLAGS_H) $(EXPR_H) $(OPTABS_H) langhooks.h $(TARGET_H) \
>      libfuncs.h $(REGS_H) $(TOPLEV_H) output.h $(FUNCTION_H) $(TIMEVAR_H) $(TM_P_H) \
> !    $(CGRAPH_H) except.h sbitmap.h $(DBGCNT_H) $(TREE_FLOW_H)
>   expmed.o : expmed.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \
>      $(FLAGS_H) insn-config.h $(EXPR_H) $(OPTABS_H) $(RECOG_H) $(REAL_H) \
>      $(TOPLEV_H) $(TM_P_H) langhooks.h $(DF_H) $(TARGET_H)
>   explow.o : explow.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \
>      $(FLAGS_H) hard-reg-set.h insn-config.h $(EXPR_H) $(OPTABS_H) $(RECOG_H) \
> !    $(TOPLEV_H) except.h $(FUNCTION_H) $(GGC_H) $(TM_P_H) langhooks.h gt-explow.h \
>      $(TARGET_H) output.h
>   optabs.o : optabs.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(TREE_H) $(FLAGS_H) insn-config.h $(EXPR_H) $(OPTABS_H) libfuncs.h \
> !    $(RECOG_H) reload.h $(TOPLEV_H) $(GGC_H) $(REAL_H) $(TM_P_H) except.h \
>      gt-optabs.h $(BASIC_BLOCK_H) $(TARGET_H) $(FUNCTION_H)
>   dbxout.o : dbxout.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
>      $(RTL_H) $(FLAGS_H) $(REGS_H) debug.h $(TM_P_H) $(TARGET_H) $(FUNCTION_H) \
> --- 2507,2529 ----
>   builtins.o : builtins.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(TREE_H) $(GIMPLE_H) $(FLAGS_H) $(TARGET_H) $(FUNCTION_H) $(REGS_H) \
>      $(EXPR_H) $(OPTABS_H) insn-config.h $(RECOG_H) output.h typeclass.h \
> !    hard-reg-set.h $(TOPLEV_H) hard-reg-set.h $(EXCEPT_H) $(TM_P_H) $(PREDICT_H) \
>      libfuncs.h $(REAL_H) langhooks.h $(BASIC_BLOCK_H) tree-mudflap.h \
>      $(BUILTINS_DEF) $(MACHMODE_H) $(DIAGNOSTIC_H) $(TREE_FLOW_H) value-prof.h
>   calls.o : calls.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(TREE_H) $(FLAGS_H) $(EXPR_H) $(OPTABS_H) langhooks.h $(TARGET_H) \
>      libfuncs.h $(REGS_H) $(TOPLEV_H) output.h $(FUNCTION_H) $(TIMEVAR_H) $(TM_P_H) \
> !    $(CGRAPH_H) $(EXCEPT_H) sbitmap.h $(DBGCNT_H) $(TREE_FLOW_H)
>   expmed.o : expmed.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \
>      $(FLAGS_H) insn-config.h $(EXPR_H) $(OPTABS_H) $(RECOG_H) $(REAL_H) \
>      $(TOPLEV_H) $(TM_P_H) langhooks.h $(DF_H) $(TARGET_H)
>   explow.o : explow.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \
>      $(FLAGS_H) hard-reg-set.h insn-config.h $(EXPR_H) $(OPTABS_H) $(RECOG_H) \
> !    $(TOPLEV_H) $(EXCEPT_H) $(FUNCTION_H) $(GGC_H) $(TM_P_H) langhooks.h gt-explow.h \
>      $(TARGET_H) output.h
>   optabs.o : optabs.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(TREE_H) $(FLAGS_H) insn-config.h $(EXPR_H) $(OPTABS_H) libfuncs.h \
> !    $(RECOG_H) reload.h $(TOPLEV_H) $(GGC_H) $(REAL_H) $(TM_P_H) $(EXCEPT_H) \
>      gt-optabs.h $(BASIC_BLOCK_H) $(TARGET_H) $(FUNCTION_H)
>   dbxout.o : dbxout.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
>      $(RTL_H) $(FLAGS_H) $(REGS_H) debug.h $(TM_P_H) $(TARGET_H) $(FUNCTION_H) \
> *************** sdbout.o : sdbout.c $(CONFIG_H) $(SYSTEM
> *** 2536,2542 ****
>   dwarf2out.o : dwarf2out.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(TREE_H) version.h $(RTL_H) dwarf2.h debug.h $(FLAGS_H) insn-config.h \
>      output.h $(DIAGNOSTIC_H) $(REAL_H) hard-reg-set.h $(REGS_H) $(EXPR_H) \
> !    libfuncs.h $(TOPLEV_H) dwarf2out.h reload.h $(GGC_H) except.h dwarf2asm.h \
>      $(TM_P_H) langhooks.h $(HASHTAB_H) gt-dwarf2out.h $(TARGET_H) $(CGRAPH_H) \
>      $(MD5_H) $(INPUT_H) $(FUNCTION_H) $(VARRAY_H)
>   dwarf2asm.o : dwarf2asm.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
> --- 2537,2543 ----
>   dwarf2out.o : dwarf2out.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(TREE_H) version.h $(RTL_H) dwarf2.h debug.h $(FLAGS_H) insn-config.h \
>      output.h $(DIAGNOSTIC_H) $(REAL_H) hard-reg-set.h $(REGS_H) $(EXPR_H) \
> !    libfuncs.h $(TOPLEV_H) dwarf2out.h reload.h $(GGC_H) $(EXCEPT_H) dwarf2asm.h \
>      $(TM_P_H) langhooks.h $(HASHTAB_H) gt-dwarf2out.h $(TARGET_H) $(CGRAPH_H) \
>      $(MD5_H) $(INPUT_H) $(FUNCTION_H) $(VARRAY_H)
>   dwarf2asm.o : dwarf2asm.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
> *************** fixed-value.o: fixed-value.c $(CONFIG_H)
> *** 2561,2571 ****
>   integrate.o : integrate.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) $(TREE_H) $(FLAGS_H) debug.h $(INTEGRATE_H) insn-config.h \
>      $(EXPR_H) $(REAL_H) $(REGS_H) intl.h $(FUNCTION_H) output.h $(RECOG_H) \
> !    except.h $(TOPLEV_H) $(PARAMS_H) $(TM_P_H) $(TARGET_H) langhooks.h \
>      gt-integrate.h $(GGC_H) tree-pass.h $(DF_H)
>   jump.o : jump.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(FLAGS_H) hard-reg-set.h $(REGS_H) insn-config.h $(RECOG_H) $(EXPR_H) \
> !    $(REAL_H) except.h $(FUNCTION_H) tree-pass.h $(DIAGNOSTIC_H) \
>      $(TOPLEV_H) $(INSN_ATTR_H) $(TM_P_H) reload.h $(PREDICT_H) \
>      $(TIMEVAR_H) $(TARGET_H)
>   simplify-rtx.o : simplify-rtx.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
> --- 2562,2572 ----
>   integrate.o : integrate.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) $(TREE_H) $(FLAGS_H) debug.h $(INTEGRATE_H) insn-config.h \
>      $(EXPR_H) $(REAL_H) $(REGS_H) intl.h $(FUNCTION_H) output.h $(RECOG_H) \
> !    $(EXCEPT_H) $(TOPLEV_H) $(PARAMS_H) $(TM_P_H) $(TARGET_H) langhooks.h \
>      gt-integrate.h $(GGC_H) tree-pass.h $(DF_H)
>   jump.o : jump.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(FLAGS_H) hard-reg-set.h $(REGS_H) insn-config.h $(RECOG_H) $(EXPR_H) \
> !    $(REAL_H) $(EXCEPT_H) $(FUNCTION_H) tree-pass.h $(DIAGNOSTIC_H) \
>      $(TOPLEV_H) $(INSN_ATTR_H) $(TM_P_H) reload.h $(PREDICT_H) \
>      $(TIMEVAR_H) $(TARGET_H)
>   simplify-rtx.o : simplify-rtx.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
> *************** cselib.o : cselib.c $(CONFIG_H) $(SYSTEM
> *** 2648,2654 ****
>   cse.o : cse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(REGS_H) \
>      hard-reg-set.h $(FLAGS_H) insn-config.h $(RECOG_H) $(EXPR_H) $(TOPLEV_H) \
>      output.h $(FUNCTION_H) $(BASIC_BLOCK_H) $(GGC_H) $(TM_P_H) $(TIMEVAR_H) \
> !    except.h $(TARGET_H) $(PARAMS_H) rtlhooks-def.h tree-pass.h $(REAL_H) \
>      $(DF_H) $(DBGCNT_H)
>   dce.o : dce.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(TREE_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) $(DF_H) cselib.h \
> --- 2649,2655 ----
>   cse.o : cse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(REGS_H) \
>      hard-reg-set.h $(FLAGS_H) insn-config.h $(RECOG_H) $(EXPR_H) $(TOPLEV_H) \
>      output.h $(FUNCTION_H) $(BASIC_BLOCK_H) $(GGC_H) $(TM_P_H) $(TIMEVAR_H) \
> !    $(EXCEPT_H) $(TARGET_H) $(PARAMS_H) rtlhooks-def.h tree-pass.h $(REAL_H) \
>      $(DF_H) $(DBGCNT_H)
>   dce.o : dce.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(TREE_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) $(DF_H) cselib.h \
> *************** see.o : see.c $(CONFIG_H) $(SYSTEM_H) co
> *** 2671,2681 ****
>   gcse.o : gcse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(REGS_H) hard-reg-set.h $(FLAGS_H) $(REAL_H) insn-config.h $(GGC_H) \
>      $(RECOG_H) $(EXPR_H) $(BASIC_BLOCK_H) $(FUNCTION_H) output.h $(TOPLEV_H) \
> !    $(TM_P_H) $(PARAMS_H) except.h gt-gcse.h $(TREE_H) cselib.h $(TIMEVAR_H) \
>      intl.h $(OBSTACK_H) tree-pass.h $(DF_H) $(DBGCNT_H)
>   resource.o : resource.c $(CONFIG_H) $(RTL_H) hard-reg-set.h $(SYSTEM_H) \
>      coretypes.h $(TM_H) $(REGS_H) $(FLAGS_H) output.h $(RESOURCE_H) $(DF_H) \
> !    $(FUNCTION_H) $(TOPLEV_H) $(INSN_ATTR_H) except.h $(PARAMS_H) $(TM_P_H)
>   lcm.o : lcm.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(REGS_H) \
>      hard-reg-set.h $(FLAGS_H) insn-config.h $(INSN_ATTR_H) $(RECOG_H) \
>      $(BASIC_BLOCK_H) $(TM_P_H) $(FUNCTION_H) output.h $(REAL_H)
> --- 2672,2682 ----
>   gcse.o : gcse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(REGS_H) hard-reg-set.h $(FLAGS_H) $(REAL_H) insn-config.h $(GGC_H) \
>      $(RECOG_H) $(EXPR_H) $(BASIC_BLOCK_H) $(FUNCTION_H) output.h $(TOPLEV_H) \
> !    $(TM_P_H) $(PARAMS_H) $(EXCEPT_H) gt-gcse.h $(TREE_H) cselib.h $(TIMEVAR_H) \
>      intl.h $(OBSTACK_H) tree-pass.h $(DF_H) $(DBGCNT_H)
>   resource.o : resource.c $(CONFIG_H) $(RTL_H) hard-reg-set.h $(SYSTEM_H) \
>      coretypes.h $(TM_H) $(REGS_H) $(FLAGS_H) output.h $(RESOURCE_H) $(DF_H) \
> !    $(FUNCTION_H) $(TOPLEV_H) $(INSN_ATTR_H) $(EXCEPT_H) $(PARAMS_H) $(TM_P_H)
>   lcm.o : lcm.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(REGS_H) \
>      hard-reg-set.h $(FLAGS_H) insn-config.h $(INSN_ATTR_H) $(RECOG_H) \
>      $(BASIC_BLOCK_H) $(TM_P_H) $(FUNCTION_H) output.h $(REAL_H)
> *************** df-core.o : df-core.c $(CONFIG_H) $(SYST
> *** 2722,2728 ****
>   df-problems.o : df-problems.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) insn-config.h $(RECOG_H) $(FUNCTION_H) $(REGS_H) alloc-pool.h \
>      hard-reg-set.h $(BASIC_BLOCK_H) $(DF_H) $(BITMAP_H) sbitmap.h $(TIMEVAR_H) \
> !    $(TM_P_H) $(FLAGS_H) output.h except.h dce.h vecprim.h
>   df-scan.o : df-scan.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      insn-config.h $(RECOG_H) $(FUNCTION_H) $(REGS_H) alloc-pool.h \
>      hard-reg-set.h $(BASIC_BLOCK_H) $(DF_H) $(BITMAP_H) sbitmap.h $(TIMEVAR_H) \
> --- 2723,2729 ----
>   df-problems.o : df-problems.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) insn-config.h $(RECOG_H) $(FUNCTION_H) $(REGS_H) alloc-pool.h \
>      hard-reg-set.h $(BASIC_BLOCK_H) $(DF_H) $(BITMAP_H) sbitmap.h $(TIMEVAR_H) \
> !    $(TM_P_H) $(FLAGS_H) output.h $(EXCEPT_H) dce.h vecprim.h
>   df-scan.o : df-scan.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      insn-config.h $(RECOG_H) $(FUNCTION_H) $(REGS_H) alloc-pool.h \
>      hard-reg-set.h $(BASIC_BLOCK_H) $(DF_H) $(BITMAP_H) sbitmap.h $(TIMEVAR_H) \
> *************** df-scan.o : df-scan.c $(CONFIG_H) $(SYST
> *** 2731,2737 ****
>   df-byte-scan.o : df-byte-scan.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      tm_p.h $(DF_H) output.h $(DBGCNT_H)
>   regstat.o : regstat.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
> !    $(TM_P_H) $(FLAGS_H) $(REGS_H) output.h except.h hard-reg-set.h \
>      $(BASIC_BLOCK_H) $(TIMEVAR_H) $(DF_H)
>   var-tracking.o : var-tracking.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) $(TREE_H) hard-reg-set.h insn-config.h reload.h $(FLAGS_H) \
> --- 2732,2738 ----
>   df-byte-scan.o : df-byte-scan.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      tm_p.h $(DF_H) output.h $(DBGCNT_H)
>   regstat.o : regstat.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
> !    $(TM_P_H) $(FLAGS_H) $(REGS_H) output.h $(EXCEPT_H) hard-reg-set.h \
>      $(BASIC_BLOCK_H) $(TIMEVAR_H) $(DF_H)
>   var-tracking.o : var-tracking.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) $(TREE_H) hard-reg-set.h insn-config.h reload.h $(FLAGS_H) \
> *************** loop-doloop.o : loop-doloop.c $(CONFIG_H
> *** 2758,2779 ****
>   alloc-pool.o : alloc-pool.c $(CONFIG_H) $(SYSTEM_H) alloc-pool.h $(HASHTAB_H)
>   auto-inc-dec.o : auto-inc-dec.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(TREE_H) $(RTL_H) $(TM_P_H) hard-reg-set.h $(BASIC_BLOCK_H) insn-config.h \
> !    $(REGS_H) $(FLAGS_H) output.h $(FUNCTION_H) except.h $(TOPLEV_H) $(RECOG_H) \
>      $(EXPR_H) $(TIMEVAR_H) tree-pass.h $(DF_H) $(DBGCNT_H)
>   cfg.o : cfg.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(FLAGS_H) \
> !    $(REGS_H) hard-reg-set.h output.h $(TOPLEV_H) $(FUNCTION_H) except.h $(GGC_H) \
>      $(TM_P_H) $(TIMEVAR_H) $(OBSTACK_H) $(TREE_H) alloc-pool.h \
>      $(HASHTAB_H) $(DF_H) $(CFGLOOP_H) $(TREE_FLOW_H) tree-pass.h
>   cfghooks.o: cfghooks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(TREE_H) $(BASIC_BLOCK_H) $(TREE_FLOW_H) $(TIMEVAR_H) $(TOPLEV_H) $(CFGLOOP_H)
>   cfgexpand.o : cfgexpand.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
>      $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) \
> !    coretypes.h $(TREE_DUMP_H) except.h langhooks.h tree-pass.h $(RTL_H) \
>      $(DIAGNOSTIC_H) $(TOPLEV_H) $(BASIC_BLOCK_H) $(FLAGS_H) debug.h $(PARAMS_H) \
>      value-prof.h $(TREE_INLINE_H) $(TARGET_H)
>   cfgrtl.o : cfgrtl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(FLAGS_H) insn-config.h $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h \
> !    output.h $(TOPLEV_H) $(FUNCTION_H) except.h $(TM_P_H) insn-config.h $(EXPR_H) \
>      $(CFGLAYOUT_H) $(CFGLOOP_H) $(OBSTACK_H) $(TARGET_H) $(TREE_H) \
>      tree-pass.h $(DF_H) $(GGC_H)
>   cfganal.o : cfganal.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
> --- 2759,2780 ----
>   alloc-pool.o : alloc-pool.c $(CONFIG_H) $(SYSTEM_H) alloc-pool.h $(HASHTAB_H)
>   auto-inc-dec.o : auto-inc-dec.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(TREE_H) $(RTL_H) $(TM_P_H) hard-reg-set.h $(BASIC_BLOCK_H) insn-config.h \
> !    $(REGS_H) $(FLAGS_H) output.h $(FUNCTION_H) $(EXCEPT_H) $(TOPLEV_H) $(RECOG_H) \
>      $(EXPR_H) $(TIMEVAR_H) tree-pass.h $(DF_H) $(DBGCNT_H)
>   cfg.o : cfg.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(FLAGS_H) \
> !    $(REGS_H) hard-reg-set.h output.h $(TOPLEV_H) $(FUNCTION_H) $(EXCEPT_H) $(GGC_H) \
>      $(TM_P_H) $(TIMEVAR_H) $(OBSTACK_H) $(TREE_H) alloc-pool.h \
>      $(HASHTAB_H) $(DF_H) $(CFGLOOP_H) $(TREE_FLOW_H) tree-pass.h
>   cfghooks.o: cfghooks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(TREE_H) $(BASIC_BLOCK_H) $(TREE_FLOW_H) $(TIMEVAR_H) $(TOPLEV_H) $(CFGLOOP_H)
>   cfgexpand.o : cfgexpand.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
>      $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(FUNCTION_H) $(TIMEVAR_H) $(TM_H) \
> !    coretypes.h $(TREE_DUMP_H) $(EXCEPT_H) langhooks.h tree-pass.h $(RTL_H) \
>      $(DIAGNOSTIC_H) $(TOPLEV_H) $(BASIC_BLOCK_H) $(FLAGS_H) debug.h $(PARAMS_H) \
>      value-prof.h $(TREE_INLINE_H) $(TARGET_H)
>   cfgrtl.o : cfgrtl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(FLAGS_H) insn-config.h $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h \
> !    output.h $(TOPLEV_H) $(FUNCTION_H) $(EXCEPT_H) $(TM_P_H) insn-config.h $(EXPR_H) \
>      $(CFGLAYOUT_H) $(CFGLOOP_H) $(OBSTACK_H) $(TARGET_H) $(TREE_H) \
>      tree-pass.h $(DF_H) $(GGC_H)
>   cfganal.o : cfganal.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
> *************** cfganal.o : cfganal.c $(CONFIG_H) $(SYST
> *** 2781,2787 ****
>      $(TIMEVAR_H) $(OBSTACK_H) $(TOPLEV_H) vecprim.h
>   cfgbuild.o : cfgbuild.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(FLAGS_H) $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h output.h $(TOPLEV_H) \
> !    $(FUNCTION_H) except.h $(TIMEVAR_H) $(TREE_H)
>   cfgcleanup.o : cfgcleanup.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) $(TIMEVAR_H) hard-reg-set.h output.h $(FLAGS_H) $(RECOG_H) \
>      $(TOPLEV_H) insn-config.h cselib.h $(TARGET_H) $(TM_P_H) $(PARAMS_H) \
> --- 2782,2788 ----
>      $(TIMEVAR_H) $(OBSTACK_H) $(TOPLEV_H) vecprim.h
>   cfgbuild.o : cfgbuild.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(FLAGS_H) $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h output.h $(TOPLEV_H) \
> !    $(FUNCTION_H) $(EXCEPT_H) $(TIMEVAR_H) $(TREE_H)
>   cfgcleanup.o : cfgcleanup.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) $(TIMEVAR_H) hard-reg-set.h output.h $(FLAGS_H) $(RECOG_H) \
>      $(TOPLEV_H) insn-config.h cselib.h $(TARGET_H) $(TM_P_H) $(PARAMS_H) \
> *************** loop-iv.o : loop-iv.c $(CONFIG_H) $(SYST
> *** 2802,2808 ****
>   loop-invariant.o : loop-invariant.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) \
>      $(BASIC_BLOCK_H) hard-reg-set.h $(CFGLOOP_H) $(EXPR_H) $(RECOG_H) coretypes.h \
>      $(TM_H) $(TM_P_H) $(FUNCTION_H) $(FLAGS_H) $(DF_H) $(OBSTACK_H) output.h \
> !    $(HASHTAB_H) except.h $(PARAMS_H)
>   cfgloopmanip.o : cfgloopmanip.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) \
>      $(BASIC_BLOCK_H) hard-reg-set.h $(CFGLOOP_H) $(CFGLAYOUT_H) output.h \
>      coretypes.h $(TM_H) cfghooks.h $(OBSTACK_H) $(TREE_FLOW_H)
> --- 2803,2809 ----
>   loop-invariant.o : loop-invariant.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) \
>      $(BASIC_BLOCK_H) hard-reg-set.h $(CFGLOOP_H) $(EXPR_H) $(RECOG_H) coretypes.h \
>      $(TM_H) $(TM_P_H) $(FUNCTION_H) $(FLAGS_H) $(DF_H) $(OBSTACK_H) output.h \
> !    $(HASHTAB_H) $(EXCEPT_H) $(PARAMS_H)
>   cfgloopmanip.o : cfgloopmanip.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) \
>      $(BASIC_BLOCK_H) hard-reg-set.h $(CFGLOOP_H) $(CFGLAYOUT_H) output.h \
>      coretypes.h $(TM_H) cfghooks.h $(OBSTACK_H) $(TREE_FLOW_H)
> *************** reload.o : reload.c $(CONFIG_H) $(SYSTEM
> *** 2844,2874 ****
>   reload1.o : reload1.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(EXPR_H) $(OPTABS_H) reload.h $(REGS_H) hard-reg-set.h insn-config.h \
>      $(BASIC_BLOCK_H) $(RECOG_H) output.h $(FUNCTION_H) $(TOPLEV_H) $(TM_P_H) \
> !    addresses.h except.h $(TREE_H) $(REAL_H) $(FLAGS_H) $(MACHMODE_H) \
>      $(OBSTACK_H) $(DF_H) $(TARGET_H) $(EMIT_RTL_H) ira.h
>   rtlhooks.o :  rtlhooks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      rtlhooks-def.h $(EXPR_H) $(RECOG_H)
>   postreload.o : postreload.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) $(REAL_H) $(FLAGS_H) $(EXPR_H) $(OPTABS_H) reload.h $(REGS_H) \
>      hard-reg-set.h insn-config.h $(BASIC_BLOCK_H) $(RECOG_H) output.h \
> !    $(FUNCTION_H) $(TOPLEV_H) cselib.h $(TM_P_H) except.h $(TREE_H) $(MACHMODE_H) \
>      $(OBSTACK_H) $(TIMEVAR_H) tree-pass.h $(DF_H) $(DBGCNT_H)
>   postreload-gcse.o : postreload-gcse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
>      $(TM_H) $(RTL_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
>      $(RECOG_H) $(EXPR_H) $(BASIC_BLOCK_H) $(FUNCTION_H) output.h $(TOPLEV_H) \
> !    $(TM_P_H) except.h $(TREE_H) $(TARGET_H) $(HASHTAB_H) intl.h $(OBSTACK_H) \
>      $(PARAMS_H) $(TIMEVAR_H) tree-pass.h $(REAL_H) $(DBGCNT_H)
>   caller-save.o : caller-save.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(FLAGS_H) $(REGS_H) hard-reg-set.h insn-config.h $(BASIC_BLOCK_H) $(FUNCTION_H) \
>      addresses.h $(RECOG_H) reload.h $(EXPR_H) $(TOPLEV_H) $(TM_P_H) $(DF_H) \
>      output.h ira.h gt-caller-save.h $(GGC_H)
> ! bt-load.o : bt-load.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) except.h \
>      $(RTL_H) hard-reg-set.h $(REGS_H) $(TM_P_H) $(FIBHEAP_H) output.h $(EXPR_H) \
>      $(TARGET_H) $(FLAGS_H) $(INSN_ATTR_H) $(FUNCTION_H) tree-pass.h $(TOPLEV_H) \
>      $(DF_H) vecprim.h $(RECOG_H)
>   reorg.o : reorg.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      conditions.h hard-reg-set.h $(BASIC_BLOCK_H) $(REGS_H) insn-config.h \
> !    $(INSN_ATTR_H) except.h $(RECOG_H) $(FUNCTION_H) $(FLAGS_H) output.h \
>      $(EXPR_H) $(TOPLEV_H) $(PARAMS_H) $(TM_P_H) $(OBSTACK_H) $(RESOURCE_H) \
>      $(TIMEVAR_H) $(TARGET_H) tree-pass.h
>   alias.o : alias.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
> --- 2845,2875 ----
>   reload1.o : reload1.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(EXPR_H) $(OPTABS_H) reload.h $(REGS_H) hard-reg-set.h insn-config.h \
>      $(BASIC_BLOCK_H) $(RECOG_H) output.h $(FUNCTION_H) $(TOPLEV_H) $(TM_P_H) \
> !    addresses.h $(EXCEPT_H) $(TREE_H) $(REAL_H) $(FLAGS_H) $(MACHMODE_H) \
>      $(OBSTACK_H) $(DF_H) $(TARGET_H) $(EMIT_RTL_H) ira.h
>   rtlhooks.o :  rtlhooks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      rtlhooks-def.h $(EXPR_H) $(RECOG_H)
>   postreload.o : postreload.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) $(REAL_H) $(FLAGS_H) $(EXPR_H) $(OPTABS_H) reload.h $(REGS_H) \
>      hard-reg-set.h insn-config.h $(BASIC_BLOCK_H) $(RECOG_H) output.h \
> !    $(FUNCTION_H) $(TOPLEV_H) cselib.h $(TM_P_H) $(EXCEPT_H) $(TREE_H) $(MACHMODE_H) \
>      $(OBSTACK_H) $(TIMEVAR_H) tree-pass.h $(DF_H) $(DBGCNT_H)
>   postreload-gcse.o : postreload-gcse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
>      $(TM_H) $(RTL_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
>      $(RECOG_H) $(EXPR_H) $(BASIC_BLOCK_H) $(FUNCTION_H) output.h $(TOPLEV_H) \
> !    $(TM_P_H) $(EXCEPT_H) $(TREE_H) $(TARGET_H) $(HASHTAB_H) intl.h $(OBSTACK_H) \
>      $(PARAMS_H) $(TIMEVAR_H) tree-pass.h $(REAL_H) $(DBGCNT_H)
>   caller-save.o : caller-save.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(FLAGS_H) $(REGS_H) hard-reg-set.h insn-config.h $(BASIC_BLOCK_H) $(FUNCTION_H) \
>      addresses.h $(RECOG_H) reload.h $(EXPR_H) $(TOPLEV_H) $(TM_P_H) $(DF_H) \
>      output.h ira.h gt-caller-save.h $(GGC_H)
> ! bt-load.o : bt-load.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(EXCEPT_H) \
>      $(RTL_H) hard-reg-set.h $(REGS_H) $(TM_P_H) $(FIBHEAP_H) output.h $(EXPR_H) \
>      $(TARGET_H) $(FLAGS_H) $(INSN_ATTR_H) $(FUNCTION_H) tree-pass.h $(TOPLEV_H) \
>      $(DF_H) vecprim.h $(RECOG_H)
>   reorg.o : reorg.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      conditions.h hard-reg-set.h $(BASIC_BLOCK_H) $(REGS_H) insn-config.h \
> !    $(INSN_ATTR_H) $(EXCEPT_H) $(RECOG_H) $(FUNCTION_H) $(FLAGS_H) output.h \
>      $(EXPR_H) $(TOPLEV_H) $(PARAMS_H) $(TM_P_H) $(OBSTACK_H) $(RESOURCE_H) \
>      $(TIMEVAR_H) $(TARGET_H) tree-pass.h
>   alias.o : alias.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
> *************** ira-emit.o: ira-emit.c $(CONFIG_H) $(SYS
> *** 2904,2910 ****
>      $(EXPR_H) $(BASIC_BLOCK_H) $(TOPLEV_H) $(TM_P_H) $(PARAMS_H) \
>      $(IRA_INT_H)
>   ira-lives.o: ira-lives.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
> !    $(TARGET_H) $(RTL_H) $(REGS_H) except.h hard-reg-set.h $(FLAGS_H) \
>      insn-config.h $(RECOG_H) $(BASIC_BLOCK_H) $(TOPLEV_H) $(TM_P_H) $(PARAMS_H) \
>      $(DF_H) sparseset.h $(IRA_INT_H)
>   ira.o: ira.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
> --- 2905,2911 ----
>      $(EXPR_H) $(BASIC_BLOCK_H) $(TOPLEV_H) $(TM_P_H) $(PARAMS_H) \
>      $(IRA_INT_H)
>   ira-lives.o: ira-lives.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
> !    $(TARGET_H) $(RTL_H) $(REGS_H) $(EXCEPT_H) hard-reg-set.h $(FLAGS_H) \
>      insn-config.h $(RECOG_H) $(BASIC_BLOCK_H) $(TOPLEV_H) $(TM_P_H) $(PARAMS_H) \
>      $(DF_H) sparseset.h $(IRA_INT_H)
>   ira.o: ira.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
> *************** ira.o: ira.c $(CONFIG_H) $(SYSTEM_H) cor
> *** 2916,2977 ****
>   regmove.o : regmove.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      insn-config.h $(TIMEVAR_H) tree-pass.h $(DF_H)\
>      $(RECOG_H) output.h $(REGS_H) hard-reg-set.h $(FLAGS_H) $(FUNCTION_H) \
> !    $(EXPR_H) $(BASIC_BLOCK_H) $(TOPLEV_H) $(TM_P_H) except.h reload.h
>   combine-stack-adj.o : combine-stack-adj.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
>      $(TM_H) $(RTL_H) insn-config.h $(TIMEVAR_H) tree-pass.h \
>      $(RECOG_H) output.h $(REGS_H) hard-reg-set.h $(FLAGS_H) $(FUNCTION_H) \
> !    $(EXPR_H) $(BASIC_BLOCK_H) $(TOPLEV_H) $(TM_P_H) $(DF_H) except.h reload.h
>   ddg.o : ddg.c $(DDG_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TARGET_H) \
>      $(TOPLEV_H) $(RTL_H) $(TM_P_H) $(REGS_H) $(FUNCTION_H) \
> !    $(FLAGS_H) insn-config.h $(INSN_ATTR_H) except.h $(RECOG_H) \
>      $(SCHED_INT_H) $(CFGLAYOUT_H) $(CFGLOOP_H) $(EXPR_H) $(BITMAP_H) \
>      hard-reg-set.h sbitmap.h $(TM_H)
>   modulo-sched.o : modulo-sched.c $(DDG_H) $(CONFIG_H) $(CONFIG_H) $(SYSTEM_H) \
>      coretypes.h $(TARGET_H) $(TOPLEV_H) $(RTL_H) $(TM_P_H) $(REGS_H) $(FUNCTION_H) \
> !    $(FLAGS_H) insn-config.h $(INSN_ATTR_H) except.h $(RECOG_H) \
>      $(SCHED_INT_H) $(CFGLAYOUT_H) $(CFGLOOP_H) $(EXPR_H) $(PARAMS_H) \
>      cfghooks.h $(GCOV_IO_H) hard-reg-set.h $(TM_H) $(TIMEVAR_H) tree-pass.h \
>      $(DF_H) $(DBGCNT_H)
>   haifa-sched.o : haifa-sched.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(SCHED_INT_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h $(FUNCTION_H) \
> !    $(INSN_ATTR_H) $(TOPLEV_H) $(RECOG_H) except.h $(TM_P_H) $(TARGET_H) output.h \
>      $(PARAMS_H) $(DBGCNT_H)
>   sched-deps.o : sched-deps.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) $(SCHED_INT_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
> !    $(FUNCTION_H) $(INSN_ATTR_H) $(TOPLEV_H) $(RECOG_H) except.h cselib.h \
>      $(PARAMS_H) $(TM_P_H)
>   sched-rgn.o : sched-rgn.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) $(SCHED_INT_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
> !    $(FUNCTION_H) $(INSN_ATTR_H) $(TOPLEV_H) $(RECOG_H) except.h $(PARAMS_H) \
>      $(TM_P_H) $(TARGET_H) $(CFGLAYOUT_H) $(TIMEVAR_H) tree-pass.h  \
>      $(DBGCNT_H)
>   sched-ebb.o : sched-ebb.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) $(SCHED_INT_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
> !    $(FUNCTION_H) $(INSN_ATTR_H) $(TOPLEV_H) $(RECOG_H) except.h $(TM_P_H) \
>      $(PARAMS_H) $(CFGLAYOUT_H) $(TARGET_H) output.h
>   sched-vis.o : sched-vis.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) $(SCHED_INT_H) hard-reg-set.h $(BASIC_BLOCK_H) $(OBSTACK_H) \
>      $(REAL_H) tree-pass.h $(INSN_ATTR_H)
>   sel-sched.o : sel-sched.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
> !    $(FUNCTION_H) $(INSN_ATTR_H) toplev.h $(RECOG_H) except.h $(PARAMS_H) \
>      $(TM_P_H) $(TARGET_H) $(CFGLAYOUT_H) $(TIMEVAR_H) tree-pass.h  \
>      $(SCHED_INT_H) $(GGC_H) $(TREE_H) $(LANGHOOKS_DEF_H) \
>      $(SEL_SCHED_IR_H) $(SEL_SCHED_DUMP_H) sel-sched.h
>   sel-sched-dump.o : sel-sched-dump.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
> !    $(FUNCTION_H) $(INSN_ATTR_H) toplev.h $(RECOG_H) except.h $(PARAMS_H) \
>      $(TM_P_H) $(TARGET_H) $(CFGLAYOUT_H) $(TIMEVAR_H) tree-pass.h \
>      $(SEL_SCHED_DUMP_H) $(GGC_H) $(TREE_H) $(LANGHOOKS_DEF_H) $(SEL_SCHED_IR_H)
>   sel-sched-ir.o : sel-sched-ir.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
> !    $(FUNCTION_H) $(INSN_ATTR_H) toplev.h $(RECOG_H) except.h $(PARAMS_H) \
>      $(TM_P_H) $(TARGET_H) $(CFGLAYOUT_H) $(TIMEVAR_H) tree-pass.h \
>      $(SCHED_INT_H) $(GGC_H) $(TREE_H) $(LANGHOOKS_DEF_H) $(SEL_SCHED_IR_H)
>   final.o : final.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(TREE_H) $(FLAGS_H) intl.h $(REGS_H) $(RECOG_H) conditions.h \
>      insn-config.h $(INSN_ATTR_H) $(FUNCTION_H) output.h hard-reg-set.h \
> !    except.h debug.h xcoffout.h $(TOPLEV_H) reload.h dwarf2out.h tree-pass.h \
>      $(BASIC_BLOCK_H) $(TM_P_H) $(TARGET_H) $(EXPR_H) $(CFGLAYOUT_H) dbxout.h \
>      $(TIMEVAR_H) $(CGRAPH_H) $(COVERAGE_H) $(REAL_H) $(DF_H) vecprim.h $(GGC_H) \
>      $(CFGLOOP_H) $(PARAMS_H)
> --- 2917,2978 ----
>   regmove.o : regmove.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      insn-config.h $(TIMEVAR_H) tree-pass.h $(DF_H)\
>      $(RECOG_H) output.h $(REGS_H) hard-reg-set.h $(FLAGS_H) $(FUNCTION_H) \
> !    $(EXPR_H) $(BASIC_BLOCK_H) $(TOPLEV_H) $(TM_P_H) $(EXCEPT_H) reload.h
>   combine-stack-adj.o : combine-stack-adj.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
>      $(TM_H) $(RTL_H) insn-config.h $(TIMEVAR_H) tree-pass.h \
>      $(RECOG_H) output.h $(REGS_H) hard-reg-set.h $(FLAGS_H) $(FUNCTION_H) \
> !    $(EXPR_H) $(BASIC_BLOCK_H) $(TOPLEV_H) $(TM_P_H) $(DF_H) $(EXCEPT_H) reload.h
>   ddg.o : ddg.c $(DDG_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TARGET_H) \
>      $(TOPLEV_H) $(RTL_H) $(TM_P_H) $(REGS_H) $(FUNCTION_H) \
> !    $(FLAGS_H) insn-config.h $(INSN_ATTR_H) $(EXCEPT_H) $(RECOG_H) \
>      $(SCHED_INT_H) $(CFGLAYOUT_H) $(CFGLOOP_H) $(EXPR_H) $(BITMAP_H) \
>      hard-reg-set.h sbitmap.h $(TM_H)
>   modulo-sched.o : modulo-sched.c $(DDG_H) $(CONFIG_H) $(CONFIG_H) $(SYSTEM_H) \
>      coretypes.h $(TARGET_H) $(TOPLEV_H) $(RTL_H) $(TM_P_H) $(REGS_H) $(FUNCTION_H) \
> !    $(FLAGS_H) insn-config.h $(INSN_ATTR_H) $(EXCEPT_H) $(RECOG_H) \
>      $(SCHED_INT_H) $(CFGLAYOUT_H) $(CFGLOOP_H) $(EXPR_H) $(PARAMS_H) \
>      cfghooks.h $(GCOV_IO_H) hard-reg-set.h $(TM_H) $(TIMEVAR_H) tree-pass.h \
>      $(DF_H) $(DBGCNT_H)
>   haifa-sched.o : haifa-sched.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(SCHED_INT_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h $(FUNCTION_H) \
> !    $(INSN_ATTR_H) $(TOPLEV_H) $(RECOG_H) $(EXCEPT_H) $(TM_P_H) $(TARGET_H) output.h \
>      $(PARAMS_H) $(DBGCNT_H)
>   sched-deps.o : sched-deps.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) $(SCHED_INT_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
> !    $(FUNCTION_H) $(INSN_ATTR_H) $(TOPLEV_H) $(RECOG_H) $(EXCEPT_H) cselib.h \
>      $(PARAMS_H) $(TM_P_H)
>   sched-rgn.o : sched-rgn.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) $(SCHED_INT_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
> !    $(FUNCTION_H) $(INSN_ATTR_H) $(TOPLEV_H) $(RECOG_H) $(EXCEPT_H) $(PARAMS_H) \
>      $(TM_P_H) $(TARGET_H) $(CFGLAYOUT_H) $(TIMEVAR_H) tree-pass.h  \
>      $(DBGCNT_H)
>   sched-ebb.o : sched-ebb.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) $(SCHED_INT_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
> !    $(FUNCTION_H) $(INSN_ATTR_H) $(TOPLEV_H) $(RECOG_H) $(EXCEPT_H) $(TM_P_H) \
>      $(PARAMS_H) $(CFGLAYOUT_H) $(TARGET_H) output.h
>   sched-vis.o : sched-vis.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) $(SCHED_INT_H) hard-reg-set.h $(BASIC_BLOCK_H) $(OBSTACK_H) \
>      $(REAL_H) tree-pass.h $(INSN_ATTR_H)
>   sel-sched.o : sel-sched.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
> !    $(FUNCTION_H) $(INSN_ATTR_H) toplev.h $(RECOG_H) $(EXCEPT_H) $(PARAMS_H) \
>      $(TM_P_H) $(TARGET_H) $(CFGLAYOUT_H) $(TIMEVAR_H) tree-pass.h  \
>      $(SCHED_INT_H) $(GGC_H) $(TREE_H) $(LANGHOOKS_DEF_H) \
>      $(SEL_SCHED_IR_H) $(SEL_SCHED_DUMP_H) sel-sched.h
>   sel-sched-dump.o : sel-sched-dump.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
> !    $(FUNCTION_H) $(INSN_ATTR_H) toplev.h $(RECOG_H) $(EXCEPT_H) $(PARAMS_H) \
>      $(TM_P_H) $(TARGET_H) $(CFGLAYOUT_H) $(TIMEVAR_H) tree-pass.h \
>      $(SEL_SCHED_DUMP_H) $(GGC_H) $(TREE_H) $(LANGHOOKS_DEF_H) $(SEL_SCHED_IR_H)
>   sel-sched-ir.o : sel-sched-ir.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
>      $(RTL_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
> !    $(FUNCTION_H) $(INSN_ATTR_H) toplev.h $(RECOG_H) $(EXCEPT_H) $(PARAMS_H) \
>      $(TM_P_H) $(TARGET_H) $(CFGLAYOUT_H) $(TIMEVAR_H) tree-pass.h \
>      $(SCHED_INT_H) $(GGC_H) $(TREE_H) $(LANGHOOKS_DEF_H) $(SEL_SCHED_IR_H)
>   final.o : final.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(TREE_H) $(FLAGS_H) intl.h $(REGS_H) $(RECOG_H) conditions.h \
>      insn-config.h $(INSN_ATTR_H) $(FUNCTION_H) output.h hard-reg-set.h \
> !    $(EXCEPT_H) debug.h xcoffout.h $(TOPLEV_H) reload.h dwarf2out.h tree-pass.h \
>      $(BASIC_BLOCK_H) $(TM_P_H) $(TARGET_H) $(EXPR_H) $(CFGLAYOUT_H) dbxout.h \
>      $(TIMEVAR_H) $(CGRAPH_H) $(COVERAGE_H) $(REAL_H) $(DF_H) vecprim.h $(GGC_H) \
>      $(CFGLOOP_H) $(PARAMS_H)
> *************** reg-stack.o : reg-stack.c $(CONFIG_H) $(
> *** 2988,2994 ****
>   sreal.o: sreal.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) sreal.h
>   predict.o: predict.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(TREE_H) $(FLAGS_H) insn-config.h $(BASIC_BLOCK_H) $(REGS_H) \
> !    hard-reg-set.h output.h $(TOPLEV_H) $(RECOG_H) $(FUNCTION_H) except.h \
>      $(TM_P_H) $(PREDICT_H) sreal.h $(PARAMS_H) $(TARGET_H) $(CFGLOOP_H) \
>      $(COVERAGE_H) $(SCEV_H) $(GGC_H) predict.def $(TIMEVAR_H) $(TREE_DUMP_H) \
>      $(TREE_FLOW_H) tree-pass.h $(EXPR_H) pointer-set.h
> --- 2989,2995 ----
>   sreal.o: sreal.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) sreal.h
>   predict.o: predict.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(TREE_H) $(FLAGS_H) insn-config.h $(BASIC_BLOCK_H) $(REGS_H) \
> !    hard-reg-set.h output.h $(TOPLEV_H) $(RECOG_H) $(FUNCTION_H) $(EXCEPT_H) \
>      $(TM_P_H) $(PREDICT_H) sreal.h $(PARAMS_H) $(TARGET_H) $(CFGLOOP_H) \
>      $(COVERAGE_H) $(SCEV_H) $(GGC_H) predict.def $(TIMEVAR_H) $(TREE_DUMP_H) \
>      $(TREE_FLOW_H) tree-pass.h $(EXPR_H) pointer-set.h
> *************** regrename.o : regrename.c $(CONFIG_H) $(
> *** 3015,3021 ****
>      addresses.h reload.h $(TOPLEV_H) $(TIMEVAR_H) tree-pass.h $(DF_H)
>   ifcvt.o : ifcvt.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(REGS_H) $(TOPLEV_H) $(FLAGS_H) insn-config.h $(FUNCTION_H) $(RECOG_H) \
> !    $(TARGET_H) $(BASIC_BLOCK_H) $(EXPR_H) output.h except.h $(TM_P_H) \
>      $(REAL_H) $(OPTABS_H) $(CFGLOOP_H) hard-reg-set.h $(TIMEVAR_H) tree-pass.h \
>      $(DF_H) $(DBGCNT_H)
>   lambda-mat.o : lambda-mat.c $(LAMBDA_H) $(GGC_H) $(SYSTEM_H) $(CONFIG_H) \
> --- 3016,3022 ----
>      addresses.h reload.h $(TOPLEV_H) $(TIMEVAR_H) tree-pass.h $(DF_H)
>   ifcvt.o : ifcvt.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
>      $(REGS_H) $(TOPLEV_H) $(FLAGS_H) insn-config.h $(FUNCTION_H) $(RECOG_H) \
> !    $(TARGET_H) $(BASIC_BLOCK_H) $(EXPR_H) output.h $(EXCEPT_H) $(TM_P_H) \
>      $(REAL_H) $(OPTABS_H) $(CFGLOOP_H) hard-reg-set.h $(TIMEVAR_H) tree-pass.h \
>      $(DF_H) $(DBGCNT_H)
>   lambda-mat.o : lambda-mat.c $(LAMBDA_H) $(GGC_H) $(SYSTEM_H) $(CONFIG_H) \
> *************** dbgcnt.o: dbgcnt.c $(CONFIG_H) $(SYSTEM_
> *** 3038,3044 ****
>   lower-subreg.o : lower-subreg.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
>      $(MACHMODE_H) $(TM_H) $(RTL_H) $(TM_P_H) $(TIMEVAR_H) $(FLAGS_H) \
>      insn-config.h $(BASIC_BLOCK_H) $(RECOG_H) $(OBSTACK_H) $(BITMAP_H) \
> !    $(EXPR_H) except.h $(REGS_H) tree-pass.h $(DF_H)
>   
>   $(out_object_file): $(out_file) $(CONFIG_H) coretypes.h $(TM_H) $(TREE_H) \
>      $(RTL_H) $(REGS_H) hard-reg-set.h insn-config.h conditions.h \
> --- 3039,3045 ----
>   lower-subreg.o : lower-subreg.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
>      $(MACHMODE_H) $(TM_H) $(RTL_H) $(TM_P_H) $(TIMEVAR_H) $(FLAGS_H) \
>      insn-config.h $(BASIC_BLOCK_H) $(RECOG_H) $(OBSTACK_H) $(BITMAP_H) \
> !    $(EXPR_H) $(EXCEPT_H) $(REGS_H) tree-pass.h $(DF_H)
>   
>   $(out_object_file): $(out_file) $(CONFIG_H) coretypes.h $(TM_H) $(TREE_H) \
>      $(RTL_H) $(REGS_H) hard-reg-set.h insn-config.h conditions.h \
> *************** insn-output.o : insn-output.c $(CONFIG_H
> *** 3121,3127 ****
>     $(TARGET_H) tm-constrs.h
>   insn-peep.o : insn-peep.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H)	\
>     insn-config.h $(RTL_H) $(TM_P_H) $(REGS_H) output.h $(REAL_H)		\
> !   $(RECOG_H) except.h $(FUNCTION_H) $(TOPLEV_H) $(FLAGS_H) tm-constrs.h
>   insn-preds.o : insn-preds.c $(CONFIG_H) $(SYSTEM_H) coretypes.h		\
>     $(TM_H) $(RTL_H) $(TREE_H) insn-config.h $(RECOG_H) output.h		\
>     $(FLAGS_H) $(FUNCTION_H) hard-reg-set.h $(RESOURCE_H) $(TM_P_H)	\
> --- 3122,3128 ----
>     $(TARGET_H) tm-constrs.h
>   insn-peep.o : insn-peep.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H)	\
>     insn-config.h $(RTL_H) $(TM_P_H) $(REGS_H) output.h $(REAL_H)		\
> !   $(RECOG_H) $(EXCEPT_H) $(FUNCTION_H) $(TOPLEV_H) $(FLAGS_H) tm-constrs.h
>   insn-preds.o : insn-preds.c $(CONFIG_H) $(SYSTEM_H) coretypes.h		\
>     $(TM_H) $(RTL_H) $(TREE_H) insn-config.h $(RECOG_H) output.h		\
>     $(FLAGS_H) $(FUNCTION_H) hard-reg-set.h $(RESOURCE_H) $(TM_P_H)	\
> *************** build/vec.o : vec.c $(BCONFIG_H) $(SYSTE
> *** 3358,3364 ****
>   build/gencondmd.o : build/gencondmd.c $(BCONFIG_H) $(SYSTEM_H)		\
>     coretypes.h $(GTM_H) insn-constants.h $(RTL_H) $(TM_P_H)		\
>     $(FUNCTION_H) $(REGS_H) $(RECOG_H) $(REAL_H) output.h $(FLAGS_H)	\
> !   $(RESOURCE_H) $(TOPLEV_H) reload.h except.h tm-constrs.h
>   # This pulls in tm-pred.h which contains inline functions wrapping up
>   # predicates from the back-end so those functions must be discarded.
>   # No big deal since gencondmd.c is a dummy file for non-GCC compilers.
> --- 3359,3365 ----
>   build/gencondmd.o : build/gencondmd.c $(BCONFIG_H) $(SYSTEM_H)		\
>     coretypes.h $(GTM_H) insn-constants.h $(RTL_H) $(TM_P_H)		\
>     $(FUNCTION_H) $(REGS_H) $(RECOG_H) $(REAL_H) output.h $(FLAGS_H)	\
> !   $(RESOURCE_H) $(TOPLEV_H) reload.h $(EXCEPT_H) tm-constrs.h
>   # This pulls in tm-pred.h which contains inline functions wrapping up
>   # predicates from the back-end so those functions must be discarded.
>   # No big deal since gencondmd.c is a dummy file for non-GCC compilers.
> 
> 

-- 
Richard Guenther <rguenther@suse.de>
Novell / SUSE Labs
SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746 - GF: Markus Rex



More information about the Gcc-patches mailing list