diff options
author | Richard Guenther <rguenther@suse.de> | 2009-05-25 13:35:10 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2009-05-25 13:35:10 +0000 |
commit | 6b8ed1452b9f79918ba9324edda6642ed7d08114 (patch) | |
tree | a5df148001356e742a58dc38bfe38aa26e706766 /gcc/tree-ssa-alias.c | |
parent | 0d38b677037f13b7b83d1024a5156be9b41e17b9 (diff) | |
download | gcc-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.c | 59 |
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"); } |