diff options
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/cfganal.c | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 41aa221..f5ec63a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2006-09-13 Jan Hubicka <jh@suse.cz> + + * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic. + 2006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr> PR rtl-optimization/28243 diff --git a/gcc/cfganal.c b/gcc/cfganal.c index 835703f..467c399 100644 --- a/gcc/cfganal.c +++ b/gcc/cfganal.c @@ -1054,6 +1054,8 @@ compute_dominance_frontiers_1 (bitmap *frontiers) domsb = get_immediate_dominator (CDI_DOMINATORS, b); while (runner != domsb) { + if (bitmap_bit_p (frontiers[runner->index], b->index)) + break; bitmap_set_bit (frontiers[runner->index], b->index); runner = get_immediate_dominator (CDI_DOMINATORS, |
