Mercurial > hg > CbC > CbC_gcc
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; }