aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-sra.c
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2009-05-20 12:18:10 +0200
committerMartin Jambor <jamborm@gcc.gnu.org>2009-05-20 12:18:10 +0200
commit7ec492570b77735583dceb28b091b4fa71ea1320 (patch)
treec7a89b4084761b0c88e079e93dac65e6158c5343 /gcc/tree-sra.c
parent3f6f0eb2e4a89be2eed80ad57bf003c3fc0aa210 (diff)
downloadgcc-7ec492570b77735583dceb28b091b4fa71ea1320.zip
gcc-7ec492570b77735583dceb28b091b4fa71ea1320.tar.gz
gcc-7ec492570b77735583dceb28b091b4fa71ea1320.tar.bz2
tree-flow.h (insert_edge_copies_seq): Undeclare.
2009-05-20 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. * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch case. * tree-flow-inline.h (contains_view_convert_expr_p): New function. * ipa-prop.c (get_ssa_def_if_simple_copy): New function. (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip simple copies. From-SVN: r147733
Diffstat (limited to 'gcc/tree-sra.c')
-rw-r--r--gcc/tree-sra.c48
1 files changed, 24 insertions, 24 deletions
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index 626a253..0f68941 100644
--- a/gcc/tree-sra.c
+++ b/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;
@@ -1267,6 +1267,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
@@ -2789,29 +2809,9 @@ generate_element_init (struct sra_elt *elt, tree init, gimple_seq *seq_p)
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);
@@ -2823,7 +2823,7 @@ sra_insert_before (gimple_stmt_iterator *gsi, gimple_seq seq)
/* 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);
@@ -3601,7 +3601,7 @@ debug_sra_elt_name (struct sra_elt *elt)
fputc ('\n', stderr);
}
-void
+static void
sra_init_cache (void)
{
if (sra_type_decomp_cache)