basic-block.h (BB_SET_PARTITION): Clear old value first.

* basic-block.h (BB_SET_PARTITION): Clear old value first.
	* cfg.c (clear_bb_flags): Don't clear partition setting.

From-SVN: r86537
This commit is contained in:
Zack Weinberg 2004-08-25 07:25:06 +00:00 committed by Zack Weinberg
parent 4c5f37d568
commit 51a904c9e6
3 changed files with 13 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2004-08-25 Zack Weinberg <zack@codesourcery.com>
* basic-block.h (BB_SET_PARTITION): Clear old value first.
* cfg.c (clear_bb_flags): Don't clear partition setting.
2004-08-25 Alan Modra <amodra@bigpond.net.au>
PR target/17052

View File

@ -318,7 +318,12 @@ typedef struct reorder_block_def
/* Partitions, to be used when partitioning hot and cold basic blocks into
separate sections. */
#define BB_PARTITION(bb) ((bb)->flags & (BB_HOT_PARTITION|BB_COLD_PARTITION))
#define BB_SET_PARTITION(bb, part) ((bb)->flags |= (part))
#define BB_SET_PARTITION(bb, part) do { \
basic_block bb_ = (bb); \
bb_->flags = ((bb_->flags & ~(BB_HOT_PARTITION|BB_COLD_PARTITION)) \
| (part)); \
} while (0)
#define BB_COPY_PARTITION(dstbb, srcbb) \
BB_SET_PARTITION (dstbb, BB_PARTITION (srcbb))

View File

@ -462,13 +462,14 @@ redirect_edge_pred (edge e, basic_block new_pred)
e->src = new_pred;
}
/* Clear all basic block flags, with the exception of partitioning. */
void
clear_bb_flags (void)
{
basic_block bb;
FOR_BB_BETWEEN (bb, ENTRY_BLOCK_PTR, NULL, next_bb)
bb->flags = 0;
bb->flags = BB_PARTITION (bb);
}
/* Check the consistency of profile information. We can't do that