aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-alias.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2009-05-25 13:35:10 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2009-05-25 13:35:10 +0000
commit6b8ed1452b9f79918ba9324edda6642ed7d08114 (patch)
treea5df148001356e742a58dc38bfe38aa26e706766 /gcc/tree-ssa-alias.c
parent0d38b677037f13b7b83d1024a5156be9b41e17b9 (diff)
downloadgcc-6b8ed1452b9f79918ba9324edda6642ed7d08114.zip
gcc-6b8ed1452b9f79918ba9324edda6642ed7d08114.tar.gz
gcc-6b8ed1452b9f79918ba9324edda6642ed7d08114.tar.bz2
tree-ssa-alias.h (dump_points_to_solution): Declare.
2009-05-25 Richard Guenther <rguenther@suse.de> * tree-ssa-alias.h (dump_points_to_solution): Declare. * tree-inline.c (expand_call_inline): Reset the escaped and callused solutions. * tree-ssa-structalias.c (pass_build_ealias): New. * tree-pass.h (pass_build_ealias): Declare. * passes.c (init_optimization_passes): Add PTA during early optimizations. * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED and CALLUSED solutions. (dump_points_to_solution): New function, split out from ... (dump_points_to_info_for): ... here. * tree-parloops.c (parallelize_loops): Reset the escaped and callused solutions. * gcc.dg/tree-ssa/ssa-fre-14.c: Adjust. * gcc.dg/tree-ssa/ssa-fre-15.c: Likewise. From-SVN: r147848
Diffstat (limited to 'gcc/tree-ssa-alias.c')
-rw-r--r--gcc/tree-ssa-alias.c59
1 files changed, 37 insertions, 22 deletions
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c
index ef360ea..5be39f0 100644
--- a/gcc/tree-ssa-alias.c
+++ b/gcc/tree-ssa-alias.c
@@ -330,7 +330,14 @@ dump_alias_info (FILE *file)
dump_variable (file, var);
}
- fprintf (file, "\n\nFlow-insensitive points-to information for %s\n\n", funcname);
+ fprintf (file, "\nCall clobber information\n");
+
+ fprintf (file, "\nESCAPED");
+ dump_points_to_solution (file, &cfun->gimple_df->escaped);
+ fprintf (file, "\nCALLUSED");
+ dump_points_to_solution (file, &cfun->gimple_df->callused);
+
+ fprintf (file, "\n\nFlow-insensitive points-to information\n\n");
for (i = 1; i < num_ssa_names; i++)
{
@@ -380,37 +387,45 @@ get_ptr_info (tree t)
return pi;
}
-/* Dump points-to information for SSA_NAME PTR into FILE. */
+/* Dump the points-to set *PT into FILE. */
void
-dump_points_to_info_for (FILE *file, tree ptr)
+dump_points_to_solution (FILE *file, struct pt_solution *pt)
{
- struct ptr_info_def *pi = SSA_NAME_PTR_INFO (ptr);
+ if (pt->anything)
+ fprintf (file, ", points-to anything");
- print_generic_expr (file, ptr, dump_flags);
+ if (pt->nonlocal)
+ fprintf (file, ", points-to non-local");
- if (pi)
+ if (pt->escaped)
+ fprintf (file, ", points-to escaped");
+
+ if (pt->null)
+ fprintf (file, ", points-to NULL");
+
+ if (pt->vars)
{
- if (pi->pt.anything)
- fprintf (file, ", points-to anything");
+ fprintf (file, ", points-to vars: ");
+ dump_decl_set (file, pt->vars);
+ if (pt->vars_contains_global)
+ fprintf (file, " (includes global vars)");
+ }
+}
- if (pi->pt.nonlocal)
- fprintf (file, ", points-to non-local");
+/* Dump points-to information for SSA_NAME PTR into FILE. */
- if (pi->pt.escaped)
- fprintf (file, ", points-to escaped");
+void
+dump_points_to_info_for (FILE *file, tree ptr)
+{
+ struct ptr_info_def *pi = SSA_NAME_PTR_INFO (ptr);
- if (pi->pt.null)
- fprintf (file, ", points-to NULL");
+ print_generic_expr (file, ptr, dump_flags);
- if (pi->pt.vars)
- {
- fprintf (file, ", points-to vars: ");
- dump_decl_set (file, pi->pt.vars);
- if (pi->pt.vars_contains_global)
- fprintf (file, " (includes global vars)");
- }
- }
+ if (pi)
+ dump_points_to_solution (file, &pi->pt);
+ else
+ fprintf (file, ", points-to anything");
fprintf (file, "\n");
}