aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/predict.c22
2 files changed, 14 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9c60546..7e1c1a1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
2004-11-04 Nathan Sidwell <nathan@codesourcery.com>
+ * predict.c (propagate_freq): Make bitno unsigned. Move
+ npredecessors update out of loop.
+
* bitmap.h (bitmap_iterator): Remove word_bit and bit
fields. Rename others.
(bmp_iter_common_next_1, bmp_iter_single_next_1,
diff --git a/gcc/predict.c b/gcc/predict.c
index 9500b2b..7be6b90 100644
--- a/gcc/predict.c
+++ b/gcc/predict.c
@@ -1557,7 +1557,7 @@ propagate_freq (struct loop *loop, bitmap tovisit)
basic_block head = loop->header;
basic_block bb;
basic_block last;
- int i;
+ unsigned i;
edge e;
basic_block nextbb;
bitmap_iterator bi;
@@ -1569,15 +1569,15 @@ propagate_freq (struct loop *loop, bitmap tovisit)
edge_iterator ei;
int count = 0;
- /* The outermost "loop" includes the exit block, which we can not
- look up via BASIC_BLOCK. Detect this and use EXIT_BLOCK_PTR
- directly. Do the same for the entry block just to be safe. */
- if (i == ENTRY_BLOCK)
- bb = ENTRY_BLOCK_PTR;
- else if (i == EXIT_BLOCK)
- bb = EXIT_BLOCK_PTR;
- else
- bb = BASIC_BLOCK (i);
+ /* The outermost "loop" includes the exit block, which we can not
+ look up via BASIC_BLOCK. Detect this and use EXIT_BLOCK_PTR
+ directly. Do the same for the entry block. */
+ if (i == (unsigned)ENTRY_BLOCK)
+ bb = ENTRY_BLOCK_PTR;
+ else if (i == (unsigned)EXIT_BLOCK)
+ bb = EXIT_BLOCK_PTR;
+ else
+ bb = BASIC_BLOCK (i);
FOR_EACH_EDGE (e, ei, bb->preds)
{
@@ -1589,8 +1589,8 @@ propagate_freq (struct loop *loop, bitmap tovisit)
fprintf (dump_file,
"Irreducible region hit, ignoring edge to %i->%i\n",
e->src->index, bb->index);
- BLOCK_INFO (bb)->npredecessors = count;
}
+ BLOCK_INFO (bb)->npredecessors = count;
}
memcpy (&BLOCK_INFO (head)->frequency, &real_one, sizeof (real_one));