diff options
author | Roger Sayle <roger@eyesopen.com> | 2007-01-28 05:04:48 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2007-01-28 05:04:48 +0000 |
commit | b73a6056563470e5b99e79a0dc769c351e906e6e (patch) | |
tree | d5119687bedfd7a7f56d6218696508ae430f8416 /gcc/tree-data-ref.c | |
parent | 74890d7bbdacf14edfcd1e50bac0e5053a2bdf53 (diff) | |
download | gcc-b73a6056563470e5b99e79a0dc769c351e906e6e.zip gcc-b73a6056563470e5b99e79a0dc769c351e906e6e.tar.gz gcc-b73a6056563470e5b99e79a0dc769c351e906e6e.tar.bz2 |
tree.c (tree_fold_gcd): Delete.
* tree.c (tree_fold_gcd): Delete.
* tree.h (tree_fold_gcd): Remove prototype.
* tree-data-ref.c (tree_fold_divides_p): Don't use tree_fold_gcd to
test whether one constant integer is a multiple of another. Instead
call int_const_binop with TRUNC_MOD_EXPR and test for a zero result.
* fold-const.c (multiple_of_p): We've determined both TOP and
BOTTOM are integer constants so we can call int_const_binop directly
instead of the more generic const_binop.
From-SVN: r121253
Diffstat (limited to 'gcc/tree-data-ref.c')
-rw-r--r-- | gcc/tree-data-ref.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/tree-data-ref.c b/gcc/tree-data-ref.c index 2da59db..d6201b6 100644 --- a/gcc/tree-data-ref.c +++ b/gcc/tree-data-ref.c @@ -561,11 +561,11 @@ base_addr_differ_p (struct data_reference *dra, /* Returns true iff A divides B. */ static inline bool -tree_fold_divides_p (tree a, - tree b) +tree_fold_divides_p (tree a, tree b) { - /* Determines whether (A == gcd (A, B)). */ - return tree_int_cst_equal (a, tree_fold_gcd (a, b)); + gcc_assert (TREE_CODE (a) == INTEGER_CST); + gcc_assert (TREE_CODE (b) == INTEGER_CST); + return integer_zerop (int_const_binop (TRUNC_MOD_EXPR, b, a, 0)); } /* Returns true iff A divides B. */ |