aboutsummaryrefslogtreecommitdiff
path: root/gcc/basic-block.h
diff options
context:
space:
mode:
authorSteven Bosscher <stevenb@suse.de>2005-01-17 22:02:28 +0000
committerSteven Bosscher <steven@gcc.gnu.org>2005-01-17 22:02:28 +0000
commit740ce53d8ae86887612273a219a3aa6fa97040a9 (patch)
tree9482053a02baa634992e1645e25ff362d2445b74 /gcc/basic-block.h
parent2184a1201e63dbd4798c041370f7fcbb711813fb (diff)
downloadgcc-740ce53d8ae86887612273a219a3aa6fa97040a9.zip
gcc-740ce53d8ae86887612273a219a3aa6fa97040a9.tar.gz
gcc-740ce53d8ae86887612273a219a3aa6fa97040a9.tar.bz2
basic-block.h: Document BB_* flags.
* basic-block.h: Document BB_* flags. * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED, use an sbitmap instead. * sched-rgn.c (compute_trg_info): Likewise. From-SVN: r93779
Diffstat (limited to 'gcc/basic-block.h')
-rw-r--r--gcc/basic-block.h34
1 files changed, 32 insertions, 2 deletions
diff --git a/gcc/basic-block.h b/gcc/basic-block.h
index bfeac26..d377fb6 100644
--- a/gcc/basic-block.h
+++ b/gcc/basic-block.h
@@ -285,17 +285,47 @@ typedef struct reorder_block_def
#define BB_FREQ_MAX 10000
-/* Masks for basic_block.flags. */
+/* Masks for basic_block.flags.
+
+ BB_VISITED should not be used by passes, it is used internally by
+ dfs_enumerate_from.
+
+ BB_HOT_PARTITION and BB_COLD_PARTITION should be preserved throughout
+ the compilation, so they are never cleared.
+
+ All other flags may be cleared by clear_bb_flags(). It is generally
+ a bad idea to rely on any flags being up-to-date. */
+
+/* Set if insns in BB have are modified. Used for updating liveness info. */
#define BB_DIRTY 1
+
+/* Only set on blocks that have just been created by create_bb. */
#define BB_NEW 2
+
+/* Set by find_unreachable_blocks. Do not rely on this being set in any
+ pass. */
#define BB_REACHABLE 4
+
+/* Used by dfs_enumerate_from to keep track of visited basic blocks. */
#define BB_VISITED 8
+
+/* Set for blocks in an irreducible loop by loop analysis. */
#define BB_IRREDUCIBLE_LOOP 16
+
+/* Set on blocks that may actually not be single-entry single-exit block. */
#define BB_SUPERBLOCK 32
-#define BB_DISABLE_SCHEDULE 64
+/* Set on basic blocks that the scheduler should not touch. This is used
+ by SMS to prevent other schedulers from messing with the loop schedule. */
+#define BB_DISABLE_SCHEDULE 64
+
+/* Set on blocks that should be put in a hot section. */
#define BB_HOT_PARTITION 128
+
+/* Set on blocks that should be put in a cold section. */
#define BB_COLD_PARTITION 256
+
+/* Dummy flag for convenience in the hot/cold partitioning code. */
#define BB_UNPARTITIONED 0
/* Partitions, to be used when partitioning hot and cold basic blocks into