diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree-scalar-evolution.c | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 21599f4..620cefa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-11-11 Sebastian Pop <pop@cri.ensmp.fr> + + * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi): + Give up as soon as the evolution is known not computable. + 2004-11-11 Nathan Sidwell <nathan@codesourcery.com> PR target/16457 diff --git a/gcc/tree-scalar-evolution.c b/gcc/tree-scalar-evolution.c index 7d97d92..e26f1da 100644 --- a/gcc/tree-scalar-evolution.c +++ b/gcc/tree-scalar-evolution.c @@ -1398,6 +1398,11 @@ follow_ssa_edge_in_condition_phi (struct loop *loop, for (i = 1; i < PHI_NUM_ARGS (condition_phi); i++) { + /* Quickly give up when the evolution of one of the branches is + not known. */ + if (*evolution_of_loop == chrec_dont_know) + return true; + if (!follow_ssa_edge_in_condition_phi_branch (i, loop, condition_phi, halting_phi, &evolution_of_branch, |