aboutsummaryrefslogtreecommitdiff
path: root/gcc/basic-block.h
diff options
context:
space:
mode:
authorZack Weinberg <zack@gcc.gnu.org>2004-08-24 16:46:32 +0000
committerZack Weinberg <zack@gcc.gnu.org>2004-08-24 16:46:32 +0000
commit076c7ab896de2d7f85e2b8b5771c599b7d01dea2 (patch)
treea8c706cf283c42d5d4e89608fbc473e943519e99 /gcc/basic-block.h
parentae51017be07799ddc5570cb7b8697539743b6763 (diff)
downloadgcc-076c7ab896de2d7f85e2b8b5771c599b7d01dea2.zip
gcc-076c7ab896de2d7f85e2b8b5771c599b7d01dea2.tar.gz
gcc-076c7ab896de2d7f85e2b8b5771c599b7d01dea2.tar.bz2
basic-block.h (struct basic_block_def): Reorder fields to eliminate interior padding.
* basic-block.h (struct basic_block_def): Reorder fields to eliminate interior padding. Remove 'partition' field. (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION) (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION) (BB_COPY_PARTITION): New macros. * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c Replace all references to the 'partition' field of a basic block with new macros. * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK. * final.c (final_scan_insn): Don't handle it. * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note. * sched-rgn.c (sched_is_disabled_for_current_region_p): Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note. From-SVN: r86495
Diffstat (limited to 'gcc/basic-block.h')
-rw-r--r--gcc/basic-block.h45
1 files changed, 24 insertions, 21 deletions
diff --git a/gcc/basic-block.h b/gcc/basic-block.h
index b5f045e..64dda04 100644
--- a/gcc/basic-block.h
+++ b/gcc/basic-block.h
@@ -249,39 +249,36 @@ struct basic_block_def GTY((chain_next ("%h.next_bb"), chain_prev ("%h.prev_bb")
/* Auxiliary info specific to a pass. */
PTR GTY ((skip (""))) aux;
- /* The index of this block. */
- int index;
+ /* Innermost loop containing the block. */
+ struct loop * GTY ((skip (""))) loop_father;
+
+ /* The dominance and postdominance information node. */
+ struct et_node * GTY ((skip (""))) dom[2];
/* Previous and next blocks in the chain. */
struct basic_block_def *prev_bb;
struct basic_block_def *next_bb;
- /* The loop depth of this block. */
- int loop_depth;
-
- /* Innermost loop containing the block. */
- struct loop * GTY ((skip (""))) loop_father;
+ /* The data used by basic block copying and reordering functions. */
+ struct reorder_block_def * GTY ((skip (""))) rbi;
- /* The dominance and postdominance information node. */
- struct et_node * GTY ((skip (""))) dom[2];
+ /* Annotations used at the tree level. */
+ struct bb_ann_d *tree_annotations;
/* Expected number of executions: calculated in profile.c. */
gcov_type count;
+ /* The index of this block. */
+ int index;
+
+ /* The loop depth of this block. */
+ int loop_depth;
+
/* Expected frequency. Normalized to be in range 0 to BB_FREQ_MAX. */
int frequency;
/* Various flags. See BB_* below. */
int flags;
-
- /* Which section block belongs in, when partitioning basic blocks. */
- int partition;
-
- /* The data used by basic block copying and reordering functions. */
- struct reorder_block_def * GTY ((skip (""))) rbi;
-
- /* Annotations used at the tree level. */
- struct bb_ann_d *tree_annotations;
};
typedef struct basic_block_def *basic_block;
@@ -312,12 +309,18 @@ typedef struct reorder_block_def
#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
+#define BB_UNPARTITIONED 0
/* Partitions, to be used when partitioning hot and cold basic blocks into
separate sections. */
-#define UNPARTITIONED 0
-#define HOT_PARTITION 1
-#define COLD_PARTITION 2
+#define BB_PARTITION(bb) ((bb)->flags & (BB_HOT_PARTITION|BB_COLD_PARTITION))
+#define BB_SET_PARTITION(bb, part) ((bb)->flags |= (part))
+#define BB_COPY_PARTITION(dstbb, srcbb) \
+ BB_SET_PARTITION (dstbb, BB_PARTITION (srcbb))
/* Number of basic blocks in the current function. */