diff options
author | Jakub Jelinek <jakub@redhat.com> | 2008-12-09 23:47:20 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2008-12-09 23:47:20 +0100 |
commit | 218d1c24bb8bd00b49a4c9097b5777a2c25ba231 (patch) | |
tree | a57d35425a8ab0222bfcc0b9532a1d03d7650895 | |
parent | e2f08cac7b4445742cd679ceedf1016a6e05abc7 (diff) | |
download | gcc-218d1c24bb8bd00b49a4c9097b5777a2c25ba231.zip gcc-218d1c24bb8bd00b49a4c9097b5777a2c25ba231.tar.gz gcc-218d1c24bb8bd00b49a4c9097b5777a2c25ba231.tar.bz2 |
re PR tree-optimization/37416 (Failure to return number of loop iterations)
PR tree-optimization/37416
* tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle NOP_EXPR.
From-SVN: r142616
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree-scalar-evolution.c | 12 |
2 files changed, 17 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d9d9fd7..431a97a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2008-12-09 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/37416 + * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle NOP_EXPR. + 2008-12-09 Janis Johnson <janis187@us.ibm.com> * doc/sourcebuild.texi (Test Directives): Fix formatting. diff --git a/gcc/tree-scalar-evolution.c b/gcc/tree-scalar-evolution.c index 51bbd4b..e3d60e9 100644 --- a/gcc/tree-scalar-evolution.c +++ b/gcc/tree-scalar-evolution.c @@ -1229,6 +1229,18 @@ follow_ssa_edge_in_rhs (struct loop *loop, gimple stmt, case GIMPLE_SINGLE_RHS: return follow_ssa_edge_expr (loop, stmt, gimple_assign_rhs1 (stmt), halting_phi, evolution_of_loop, limit); + case GIMPLE_UNARY_RHS: + if (code == NOP_EXPR) + { + /* This assignment is under the form "a_1 = (cast) rhs. */ + t_bool res + = follow_ssa_edge_expr (loop, stmt, gimple_assign_rhs1 (stmt), + halting_phi, evolution_of_loop, limit); + *evolution_of_loop = chrec_convert (type, *evolution_of_loop, stmt); + return res; + } + /* FALLTHRU */ + default: return t_false; } |