diff options
author | Tom de Vries <tom@codesourcery.com> | 2016-04-17 05:22:19 +0000 |
---|---|---|
committer | Tom de Vries <vries@gcc.gnu.org> | 2016-04-17 05:22:19 +0000 |
commit | c5e2d17df05391834d97d4ceaa1007af1d2fc038 (patch) | |
tree | 4080653010a4cc36867b96e8a8642620dbad4fc4 /gcc | |
parent | da152c9f7bee5cd40dfcbb4511d882bd65a3d2ae (diff) | |
download | gcc-c5e2d17df05391834d97d4ceaa1007af1d2fc038.zip gcc-c5e2d17df05391834d97d4ceaa1007af1d2fc038.tar.gz gcc-c5e2d17df05391834d97d4ceaa1007af1d2fc038.tar.bz2 |
Add debug_varinfo and debug_varmap
2016-04-17 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/70256
* tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
(debug_varmap): New function.
From-SVN: r235073
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/tree-ssa-structalias.c | 108 |
2 files changed, 114 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1dfae40..23f04c2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2016-04-17 Tom de Vries <tom@codesourcery.com> + PR tree-optimization/70256 + * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap) + (debug_varmap): New function. + +2016-04-17 Tom de Vries <tom@codesourcery.com> + PR other/70183 * passes.c (pass_manager::register_pass): Propagate pflags. diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c index bad1ea1..e88869f 100644 --- a/gcc/tree-ssa-structalias.c +++ b/gcc/tree-ssa-structalias.c @@ -682,6 +682,8 @@ void debug_constraints (void); void debug_constraint_graph (void); void debug_solution_for_var (unsigned int); void debug_sa_points_to_info (void); +void debug_varinfo (varinfo_t); +void debug_varmap (void); /* Print out constraint C to stderr. */ @@ -7496,6 +7498,112 @@ associate_varinfo_to_alias (struct cgraph_node *node, void *data) return false; } +/* Dump varinfo VI to FILE. */ + +static void +dump_varinfo (FILE *file, varinfo_t vi) +{ + if (vi == NULL) + return; + + fprintf (file, "%u: %s\n", vi->id, vi->name); + + const char *sep = " "; + if (vi->is_artificial_var) + fprintf (file, "%sartificial", sep); + if (vi->is_special_var) + fprintf (file, "%sspecial", sep); + if (vi->is_unknown_size_var) + fprintf (file, "%sunknown-size", sep); + if (vi->is_full_var) + fprintf (file, "%sfull", sep); + if (vi->is_heap_var) + fprintf (file, "%sheap", sep); + if (vi->may_have_pointers) + fprintf (file, "%smay-have-pointers", sep); + if (vi->only_restrict_pointers) + fprintf (file, "%sonly-restrict-pointers", sep); + if (vi->is_restrict_var) + fprintf (file, "%sis-restrict-var", sep); + if (vi->is_global_var) + fprintf (file, "%sglobal", sep); + if (vi->is_ipa_escape_point) + fprintf (file, "%sipa-escape-point", sep); + if (vi->is_fn_info) + fprintf (file, "%sfn-info", sep); + if (vi->ruid) + fprintf (file, "%srestrict-uid:%u", sep, vi->ruid); + if (vi->next) + fprintf (file, "%snext:%u", sep, vi->next); + if (vi->head != vi->id) + fprintf (file, "%shead:%u", sep, vi->head); + if (vi->offset) + fprintf (file, "%soffset:" HOST_WIDE_INT_PRINT_DEC, sep, vi->offset); + if (vi->size != ~(unsigned HOST_WIDE_INT)0) + fprintf (file, "%ssize:" HOST_WIDE_INT_PRINT_DEC, sep, vi->size); + if (vi->fullsize != ~(unsigned HOST_WIDE_INT)0 + && vi->fullsize != vi->size) + fprintf (file, "%sfullsize:" HOST_WIDE_INT_PRINT_DEC, sep, + vi->fullsize); + fprintf (file, "\n"); + + if (vi->solution && !bitmap_empty_p (vi->solution)) + { + bitmap_iterator bi; + unsigned i; + fprintf (file, " solution: {"); + EXECUTE_IF_SET_IN_BITMAP (vi->solution, 0, i, bi) + fprintf (file, " %u", i); + fprintf (file, " }\n"); + } + + if (vi->oldsolution && !bitmap_empty_p (vi->oldsolution) + && !bitmap_equal_p (vi->solution, vi->oldsolution)) + { + bitmap_iterator bi; + unsigned i; + fprintf (file, " oldsolution: {"); + EXECUTE_IF_SET_IN_BITMAP (vi->oldsolution, 0, i, bi) + fprintf (file, " %u", i); + fprintf (file, " }\n"); + } +} + +/* Dump varinfo VI to stderr. */ + +DEBUG_FUNCTION void +debug_varinfo (varinfo_t vi) +{ + dump_varinfo (stderr, vi); +} + +/* Dump varmap to FILE. */ + +static void +dump_varmap (FILE *file) +{ + if (varmap.length () == 0) + return; + + fprintf (file, "variables:\n"); + + for (unsigned int i = 0; i < varmap.length (); ++i) + { + varinfo_t vi = get_varinfo (i); + dump_varinfo (file, vi); + } + + fprintf (file, "\n"); +} + +/* Dump varmap to stderr. */ + +DEBUG_FUNCTION void +debug_varmap (void) +{ + dump_varmap (stderr); +} + /* Execute the driver for IPA PTA. */ static unsigned int ipa_pta_execute (void) |