OSDN Git Service

* gcc.dg/graphite/block-3.c: Add dg-timeout-factor.
[pf3gnuchains/gcc-fork.git] / gcc / tree-affine.h
index 9bcfa5e..0abda96 100644 (file)
@@ -1,18 +1,18 @@
 /* Operations with affine combinations of trees.
-   Copyright (C) 2005, 2007 Free Software Foundation, Inc.
-   
+   Copyright (C) 2005, 2007, 2008 Free Software Foundation, Inc.
+
 This file is part of GCC.
-   
+
 GCC is free software; you can redistribute it and/or modify it
 under the terms of the GNU General Public License as published by the
 Free Software Foundation; either version 3, or (at your option) any
 later version.
-   
+
 GCC is distributed in the hope that it will be useful, but WITHOUT
 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
-   
+
 You should have received a copy of the GNU General Public License
 along with GCC; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
@@ -28,7 +28,7 @@ struct aff_comb_elt
 {
   /* The value of the element.  */
   tree val;
-  
+
   /* Its coefficient in the combination.  */
   double_int coef;
 };
@@ -47,13 +47,14 @@ typedef struct affine_tree_combination
   /* Elements and their coefficients.  Type of elements may be different from
      TYPE, but their sizes must be the same (STRIP_NOPS is applied to the
      elements).
-     
+
      The coefficients are always sign extended from the precision of TYPE
      (regardless of signedness of TYPE).  */
   struct aff_comb_elt elts[MAX_AFF_ELTS];
 
   /* Remainder of the expression.  Usually NULL, used only if there are more
-     than MAX_AFF_ELTS elements.  Type of REST must be TYPE.  */
+     than MAX_AFF_ELTS elements.  Type of REST will be either sizetype for
+     TYPE of POINTER_TYPEs or TYPE.  */
   tree rest;
 } aff_tree;
 
@@ -70,6 +71,12 @@ void tree_to_aff_combination (tree, tree, aff_tree *);
 tree aff_combination_to_tree (aff_tree *);
 void unshare_aff_combination (aff_tree *);
 bool aff_combination_constant_multiple_p (aff_tree *, aff_tree *, double_int *);
+void aff_combination_expand (aff_tree *, struct pointer_map_t **);
 void tree_to_aff_combination_expand (tree, tree, aff_tree *,
                                     struct pointer_map_t **);
+void get_inner_reference_aff (tree, aff_tree *, double_int *);
 void free_affine_expand_cache (struct pointer_map_t **);
+
+/* Debugging functions.  */
+void print_aff (FILE *, aff_tree *);
+void debug_aff (aff_tree *);