diff options
author | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-08-18 20:53:02 +0000 |
---|---|---|
committer | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-08-18 20:53:02 +0000 |
commit | 28d4c44089cdb3bf95a746d9301052975dcb7a44 (patch) | |
tree | 7ae0a361840bc2824923927c3b59ff16ea8325e2 | |
parent | 36ec4203224ef9bd797f0176cfc209aa872719db (diff) | |
download | gcc-28d4c44089cdb3bf95a746d9301052975dcb7a44.tar.gz |
2007-08-18 Andrew Pinski <pinskia@gmail.com>
* tree-affine.h (print_aff): New prototype.
(debug_aff): Likewise.
* tree-affine.c (print_aff): New function.
(debug_aff): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127615 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/tree-affine.c | 45 | ||||
-rw-r--r-- | gcc/tree-affine.h | 4 |
3 files changed, 56 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0af10bdebb7..2b1d5caa609 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2007-08-18 Andrew Pinski <pinskia@gmail.com> + + * tree-affine.h (print_aff): New prototype. + (debug_aff): Likewise. + * tree-affine.c (print_aff): New function. + (debug_aff): Likewise. + 2007-08-18 Paul Brook <paul@codesourcery.com> Joseph Myers <joseph@codesourcery.com> diff --git a/gcc/tree-affine.c b/gcc/tree-affine.c index 0f19587ef59..b6c47d60618 100644 --- a/gcc/tree-affine.c +++ b/gcc/tree-affine.c @@ -719,3 +719,48 @@ aff_combination_constant_multiple_p (aff_tree *val, aff_tree *div, gcc_assert (mult_set); return true; } + +/* Prints the affine VAL to the FILE. */ + +void +print_aff (FILE *file, aff_tree *val) +{ + unsigned i; + bool uns = TYPE_UNSIGNED (val->type); + if (POINTER_TYPE_P (val->type)) + uns = false; + fprintf (file, "{\n type = "); + print_generic_expr (file, val->type, TDF_VOPS|TDF_MEMSYMS); + fprintf (file, "\n offset = "); + dump_double_int (file, val->offset, uns); + if (val->n > 0) + { + fprintf (file, "\n elements = {\n"); + for (i = 0; i < val->n; i++) + { + fprintf (file, " [%d] = ", i); + print_generic_expr (file, val->elts[i].val, TDF_VOPS|TDF_MEMSYMS); + + fprintf (file, " * "); + dump_double_int (file, val->elts[i].coef, uns); + if (i != val->n - 1) + fprintf (file, ", \n"); + } + fprintf (file, "\n }"); + } + if (val->rest) + { + fprintf (file, "\n rest = "); + print_generic_expr (file, val->rest, TDF_VOPS|TDF_MEMSYMS); + } + fprintf (file, "\n}"); +} + +/* Prints the affine VAL to the standard error, used for debugging. */ + +void +debug_aff (aff_tree *val) +{ + print_aff (stderr, val); + fprintf (stderr, "\n"); +} diff --git a/gcc/tree-affine.h b/gcc/tree-affine.h index 5da34bead9a..c7dafab8f4e 100644 --- a/gcc/tree-affine.h +++ b/gcc/tree-affine.h @@ -74,3 +74,7 @@ bool aff_combination_constant_multiple_p (aff_tree *, aff_tree *, double_int *); void tree_to_aff_combination_expand (tree, tree, aff_tree *, struct pointer_map_t **); void free_affine_expand_cache (struct pointer_map_t **); + +/* Debugging functions. */ +void print_aff (FILE *, aff_tree *); +void debug_aff (aff_tree *); |