summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>2007-08-18 20:53:02 +0000
committerpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>2007-08-18 20:53:02 +0000
commit28d4c44089cdb3bf95a746d9301052975dcb7a44 (patch)
tree7ae0a361840bc2824923927c3b59ff16ea8325e2
parent36ec4203224ef9bd797f0176cfc209aa872719db (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/tree-affine.c45
-rw-r--r--gcc/tree-affine.h4
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 *);