diff options
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"); } |