diff options
| author | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-25 07:25:06 +0000 |
|---|---|---|
| committer | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-25 07:25:06 +0000 |
| commit | 91ef7ecbf2d033bdb7157dd184c98a67f90d83f0 (patch) | |
| tree | 8f400171281f1971daae0f4f3bac980e43bf1e0e | |
| parent | d36998eecf9b89a152d653af2652ba8cb4349485 (diff) | |
| download | ppe42-gcc-91ef7ecbf2d033bdb7157dd184c98a67f90d83f0.tar.gz ppe42-gcc-91ef7ecbf2d033bdb7157dd184c98a67f90d83f0.zip | |
* basic-block.h (BB_SET_PARTITION): Clear old value first.
* cfg.c (clear_bb_flags): Don't clear partition setting.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86537 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/basic-block.h | 7 | ||||
| -rw-r--r-- | gcc/cfg.c | 3 |
3 files changed, 13 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 979fb11a284..12e36f5b370 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/basic-block.h b/gcc/basic-block.h index 64dda040443..19ed577fe55 100644 --- a/gcc/basic-block.h +++ b/gcc/basic-block.h @@ -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)) diff --git a/gcc/cfg.c b/gcc/cfg.c index d195b10cd4e..003d09e05ff 100644 --- a/gcc/cfg.c +++ b/gcc/cfg.c @@ -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 |

