diff gcc/tree-chrec.h @ 55:77e2b8dfacca gcc-4.4.5

update it from 4.4.3 to 4.5.0
author ryoma <e075725@ie.u-ryukyu.ac.jp>
date Fri, 12 Feb 2010 23:39:51 +0900
parents 58ad6c70ea60
children f6334be47118
line wrap: on
line diff
--- a/gcc/tree-chrec.h	Sun Feb 07 18:28:00 2010 +0900
+++ b/gcc/tree-chrec.h	Fri Feb 12 23:39:51 2010 +0900
@@ -22,8 +22,8 @@
 #ifndef GCC_TREE_CHREC_H
 #define GCC_TREE_CHREC_H
 
-/* The following trees are unique elements.  Thus the comparison of another 
-   element to these elements should be done on the pointer to these trees, 
+/* The following trees are unique elements.  Thus the comparison of another
+   element to these elements should be done on the pointer to these trees,
    and not on their value.  */
 
 extern tree chrec_not_analyzed_yet;
@@ -86,34 +86,36 @@
 extern unsigned nb_vars_in_chrec (tree);
 extern bool evolution_function_is_invariant_p (tree, int);
 extern bool scev_is_linear_expression (tree);
+extern bool evolution_function_right_is_integer_cst (const_tree);
 
 /* Determines whether CHREC is equal to zero.  */
 
-static inline bool 
+static inline bool
 chrec_zerop (const_tree chrec)
 {
   if (chrec == NULL_TREE)
     return false;
-  
+
   if (TREE_CODE (chrec) == INTEGER_CST)
     return integer_zerop (chrec);
-  
+
   return false;
 }
 
-/* Determines whether CHREC is a loop invariant with respect to LOOP_NUM.  
+/* Determines whether CHREC is a loop invariant with respect to LOOP_NUM.
    Set the result in RES and return true when the property can be computed.  */
 
 static inline bool
 no_evolution_in_loop_p (tree chrec, unsigned loop_num, bool *res)
 {
   tree scev;
-  
+
   if (chrec == chrec_not_analyzed_yet
       || chrec == chrec_dont_know
       || chrec_contains_symbols_defined_in_loop (chrec, loop_num))
     return false;
 
+  STRIP_NOPS (chrec);
   scev = hide_evolution_in_other_loops_than_loop (chrec, loop_num);
   *res = !tree_is_chrec (scev);
   return true;
@@ -121,9 +123,9 @@
 
 /* Build a polynomial chain of recurrence.  */
 
-static inline tree 
-build_polynomial_chrec (unsigned loop_num, 
-			tree left, 
+static inline tree
+build_polynomial_chrec (unsigned loop_num,
+			tree left,
 			tree right)
 {
   bool val;
@@ -149,13 +151,13 @@
   if (chrec_zerop (right))
     return left;
 
-  return build3 (POLYNOMIAL_CHREC, TREE_TYPE (left), 
+  return build3 (POLYNOMIAL_CHREC, TREE_TYPE (left),
 		 build_int_cst (NULL_TREE, loop_num), left, right);
 }
 
 /* Determines whether the expression CHREC is a constant.  */
 
-static inline bool 
+static inline bool
 evolution_function_is_constant_p (const_tree chrec)
 {
   if (chrec == NULL_TREE)
@@ -166,7 +168,7 @@
     case INTEGER_CST:
     case REAL_CST:
       return true;
-      
+
     default:
       return false;
     }
@@ -174,12 +176,12 @@
 
 /* Determine whether CHREC is an affine evolution function in LOOPNUM.  */
 
-static inline bool 
+static inline bool
 evolution_function_is_affine_in_loop (const_tree chrec, int loopnum)
 {
   if (chrec == NULL_TREE)
     return false;
-  
+
   switch (TREE_CODE (chrec))
     {
     case POLYNOMIAL_CHREC:
@@ -188,7 +190,7 @@
 	return true;
       else
 	return false;
-      
+
     default:
       return false;
     }
@@ -196,12 +198,12 @@
 
 /* Determine whether CHREC is an affine evolution function or not.  */
 
-static inline bool 
+static inline bool
 evolution_function_is_affine_p (const_tree chrec)
 {
   if (chrec == NULL_TREE)
     return false;
-  
+
   switch (TREE_CODE (chrec))
     {
     case POLYNOMIAL_CHREC:
@@ -212,7 +214,7 @@
 	return true;
       else
 	return false;
-      
+
     default:
       return false;
     }