summaryrefslogtreecommitdiff
path: root/gcc/tree-scalar-evolution.c
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2008-12-09 22:47:20 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2008-12-09 22:47:20 +0000
commitd7e5a0b1957182502b292d13c2374fe644d0c6c4 (patch)
treea57d35425a8ab0222bfcc0b9532a1d03d7650895 /gcc/tree-scalar-evolution.c
parent7f3898b34836a8495595b440d4746a4fe53e6ec5 (diff)
downloadgcc-d7e5a0b1957182502b292d13c2374fe644d0c6c4.tar.gz
PR tree-optimization/37416
* tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle NOP_EXPR. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@142616 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-scalar-evolution.c')
-rw-r--r--gcc/tree-scalar-evolution.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/tree-scalar-evolution.c b/gcc/tree-scalar-evolution.c
index 51bbd4bcdcb..e3d60e98b2e 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;
}