diff options
author | Bin Cheng <bin.cheng@arm.com> | 2013-12-13 11:36:22 +0000 |
---|---|---|
committer | Bin Cheng <amker@gcc.gnu.org> | 2013-12-13 11:36:22 +0000 |
commit | b83b550780a6ee31c6e8b9da922c2a087f7bd44c (patch) | |
tree | 8a279853c02062aa9b7a75a2527c0964cd7b3e93 /gcc/tree-affine.h | |
parent | a005b5befd6bb3166b1d7c5269a2c791e4a4ee7c (diff) | |
download | gcc-b83b550780a6ee31c6e8b9da922c2a087f7bd44c.zip gcc-b83b550780a6ee31c6e8b9da922c2a087f7bd44c.tar.gz gcc-b83b550780a6ee31c6e8b9da922c2a087f7bd44c.tar.bz2 |
re PR tree-optimization/58296 (ivopts is unable to handle some loops altered by the loop header copying pass)
PR tree-optimization/58296
PR tree-optimization/41488
* tree-scalar-evolution.c: Include necessary header files.
(simplify_peeled_chrec): New function.
(analyze_evolution_in_loop): New static variable.
Call simplify_peeled_chrec.
* tree-ssa-loop-ivopts.c (mark_bivs): Don't mark peeled IV as biv.
(add_old_iv_candidates): Don't add candidate for peeled IV.
* tree-affine.h (aff_combination_zero_p): New function.
PR tree-optimization/58296
PR tree-optimization/41488
* gcc.dg/tree-ssa/scev-7.c: New test.
* gcc.dg/pr41488.c: New test.
* g++.dg/pr59445.C: New test.
From-SVN: r205959
Diffstat (limited to 'gcc/tree-affine.h')
-rw-r--r-- | gcc/tree-affine.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/tree-affine.h b/gcc/tree-affine.h index be64ede..731c04fc 100644 --- a/gcc/tree-affine.h +++ b/gcc/tree-affine.h @@ -80,3 +80,16 @@ bool aff_comb_cannot_overlap_p (aff_tree *, double_int, double_int); /* Debugging functions. */ void debug_aff (aff_tree *); + +/* Return true if AFF is actually ZERO. */ +static inline bool +aff_combination_zero_p (aff_tree *aff) +{ + if (!aff) + return true; + + if (aff->n == 0 && aff->offset.is_zero ()) + return true; + + return false; +} |