-/* Masks for basic_block.flags. */
-#define BB_DIRTY 1
-#define BB_NEW 2
-#define BB_REACHABLE 4
-#define BB_VISITED 8
-#define BB_IRREDUCIBLE_LOOP 16
-#define BB_SUPERBLOCK 32
-#define BB_DISABLE_SCHEDULE 64
-
-#define BB_HOT_PARTITION 128
-#define BB_COLD_PARTITION 256
+/* Masks for basic_block.flags.
+
+ 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. */
+
+enum bb_flags
+{
+
+ /* Set if insns in BB have are modified. Used for updating liveness info. */
+ BB_DIRTY = 1,
+
+ /* Only set on blocks that have just been created by create_bb. */
+ BB_NEW = 2,
+
+ /* Set by find_unreachable_blocks. Do not rely on this being set in any
+ pass. */
+ BB_REACHABLE = 4,
+
+ /* Set for blocks in an irreducible loop by loop analysis. */
+ BB_IRREDUCIBLE_LOOP = 8,
+
+ /* Set on blocks that may actually not be single-entry single-exit block. */
+ BB_SUPERBLOCK = 16,
+
+ /* 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. */
+ BB_DISABLE_SCHEDULE = 32,
+
+ /* Set on blocks that should be put in a hot section. */
+ BB_HOT_PARTITION = 64,
+
+ /* Set on blocks that should be put in a cold section. */
+ BB_COLD_PARTITION = 128,
+
+ /* Set on block that was duplicated. */
+ BB_DUPLICATED = 256,
+
+ /* Set on blocks that are in RTL format. */
+ BB_RTL = 1024,
+
+ /* Set on blocks that are forwarder blocks.
+ Only used in cfgcleanup.c. */
+ BB_FORWARDER_BLOCK = 2048,
+
+ /* Set on blocks that cannot be threaded through.
+ Only used in cfgcleanup.c. */
+ BB_NONTHREADABLE_BLOCK = 4096
+};
+
+/* Dummy flag for convenience in the hot/cold partitioning code. */