This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 1/5] Get rid off old external tree-sra.c stuff


On Tue, 28 Apr 2009, Martin Jambor wrote:

> This  patch gets  rid off  all extermal  things in  the  old tree-sra.
> sra_insert_before,       sra_insert_after      sra_init_cache      and
> sra_type_can_be_decomposed_p  are not actually  used anywhere  so they
> are made  static. insert_edge_copies_seq is  used in mudflap and  so I
> copid the function there and made it static too.  The original one had
> to be moved  upwards in the file do that  tree-sra compiles.  Yes, ths
> patch duplicates the  function but the origial copy  is nuked with the
> rest of the file by the next patch.
> 
> Thanks,
> 
> Martin

This is ok.

Thanks,
Richard.

> 
> 2009-04-27  Martin Jambor  <mjambor@suse.cz>
> 
> 	* tree-flow.h (insert_edge_copies_seq): Undeclare.
> 	(sra_insert_before): Likewise.
> 	(sra_insert_after): Likewise.
> 	(sra_init_cache): Likewise.
> 	(sra_type_can_be_decomposed_p): Likewise.
> 
> 	* tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
> 
> 	* tree-sra.c (sra_type_can_be_decomposed_p): Made static.
> 	(sra_insert_before): Likewise.
> 	(sra_insert_after): Likewise.
> 	(sra_init_cache): Likewise.
> 	(insert_edge_copies_seq): Made static and moved upwards.
> 
> 
> Index: mine/gcc/tree-flow.h
> ===================================================================
> --- mine.orig/gcc/tree-flow.h
> +++ mine/gcc/tree-flow.h
> @@ -873,13 +873,6 @@ tree vn_lookup_with_vuses (tree, VEC (tr
>  /* In tree-ssa-sink.c  */
>  bool is_hidden_global_store (gimple);
>  
> -/* In tree-sra.c  */
> -void insert_edge_copies_seq (gimple_seq, basic_block);
> -void sra_insert_before (gimple_stmt_iterator *, gimple_seq);
> -void sra_insert_after (gimple_stmt_iterator *, gimple_seq);
> -void sra_init_cache (void);
> -bool sra_type_can_be_decomposed_p (tree);
> -
>  /* In tree-loop-linear.c  */
>  extern void linear_transform_loops (void);
>  extern unsigned perfect_loop_nest_depth (struct loop *);
> Index: mine/gcc/tree-mudflap.c
> ===================================================================
> --- mine.orig/gcc/tree-mudflap.c
> +++ mine/gcc/tree-mudflap.c
> @@ -447,6 +447,26 @@ execute_mudflap_function_ops (void)
>    return 0;
>  }
>  
> +/* Insert a gimple_seq SEQ on all the outgoing edges out of BB.  Note that
> +   if BB has more than one edge, STMT will be replicated for each edge.
> +   Also, abnormal edges will be ignored.  */
> +
> +static void
> +insert_edge_copies_seq (gimple_seq seq, basic_block bb)
> +{
> +  edge e;
> +  edge_iterator ei;
> +  unsigned n_copies = -1;
> +
> +  FOR_EACH_EDGE (e, ei, bb->succs)
> +    if (!(e->flags & EDGE_ABNORMAL))
> +      n_copies++;
> +
> +  FOR_EACH_EDGE (e, ei, bb->succs)
> +    if (!(e->flags & EDGE_ABNORMAL))
> +      gsi_insert_seq_on_edge (e, n_copies-- > 0 ? gimple_seq_copy (seq) : seq);
> +}
> +
>  /* Create and initialize local shadow variables for the lookup cache
>     globals.  Put their decls in the *_l globals for use by
>     mf_build_check_statement_for.  */
> Index: mine/gcc/tree-sra.c
> ===================================================================
> --- mine.orig/gcc/tree-sra.c
> +++ mine/gcc/tree-sra.c
> @@ -236,7 +236,7 @@ is_sra_scalar_type (tree type)
>     instantiated, just that if we decide to break up the type into
>     separate pieces that it can be done.  */
>  
> -bool
> +static bool
>  sra_type_can_be_decomposed_p (tree type)
>  {
>    unsigned int cache = TYPE_UID (TYPE_MAIN_VARIANT (type)) * 2;
> @@ -1263,6 +1263,26 @@ build_element_name (struct sra_elt *elt)
>    return XOBFINISH (&sra_obstack, char *);
>  }
>  
> +/* Insert a gimple_seq SEQ on all the outgoing edges out of BB.  Note that
> +   if BB has more than one edge, STMT will be replicated for each edge.
> +   Also, abnormal edges will be ignored.  */
> +
> +static void
> +insert_edge_copies_seq (gimple_seq seq, basic_block bb)
> +{
> +  edge e;
> +  edge_iterator ei;
> +  unsigned n_copies = -1;
> +
> +  FOR_EACH_EDGE (e, ei, bb->succs)
> +    if (!(e->flags & EDGE_ABNORMAL))
> +      n_copies++;
> +
> +  FOR_EACH_EDGE (e, ei, bb->succs)
> +    if (!(e->flags & EDGE_ABNORMAL))
> +      gsi_insert_seq_on_edge (e, n_copies-- > 0 ? gimple_seq_copy (seq) : seq);
> +}
> +
>  /* Instantiate an element as an independent variable.  */
>  
>  static void
> @@ -2785,29 +2805,9 @@ generate_element_init (struct sra_elt *e
>    return ret;
>  }
>  
> -/* Insert a gimple_seq SEQ on all the outgoing edges out of BB.  Note that
> -   if BB has more than one edge, STMT will be replicated for each edge.
> -   Also, abnormal edges will be ignored.  */
> -
> -void
> -insert_edge_copies_seq (gimple_seq seq, basic_block bb)
> -{
> -  edge e;
> -  edge_iterator ei;
> -  unsigned n_copies = -1;
> -
> -  FOR_EACH_EDGE (e, ei, bb->succs)
> -    if (!(e->flags & EDGE_ABNORMAL)) 
> -      n_copies++;
> -
> -  FOR_EACH_EDGE (e, ei, bb->succs)
> -    if (!(e->flags & EDGE_ABNORMAL)) 
> -      gsi_insert_seq_on_edge (e, n_copies-- > 0 ? gimple_seq_copy (seq) : seq);
> -}
> -
>  /* Helper function to insert LIST before GSI, and set up line number info.  */
>  
> -void
> +static void
>  sra_insert_before (gimple_stmt_iterator *gsi, gimple_seq seq)
>  {
>    gimple stmt = gsi_stmt (*gsi);
> @@ -2819,7 +2819,7 @@ sra_insert_before (gimple_stmt_iterator
>  
>  /* Similarly, but insert after GSI.  Handles insertion onto edges as well.  */
>  
> -void
> +static void
>  sra_insert_after (gimple_stmt_iterator *gsi, gimple_seq seq)
>  {
>    gimple stmt = gsi_stmt (*gsi);
> @@ -3597,7 +3597,7 @@ debug_sra_elt_name (struct sra_elt *elt)
>    fputc ('\n', stderr);
>  }
>  
> -void 
> +static void
>  sra_init_cache (void)
>  {
>    if (sra_type_decomp_cache)
> 
> 

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]