diff options
author | Zack Weinberg <zack@gcc.gnu.org> | 2004-08-24 16:46:32 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2004-08-24 16:46:32 +0000 |
commit | 076c7ab896de2d7f85e2b8b5771c599b7d01dea2 (patch) | |
tree | a8c706cf283c42d5d4e89608fbc473e943519e99 /gcc/basic-block.h | |
parent | ae51017be07799ddc5570cb7b8697539743b6763 (diff) | |
download | gcc-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.h | 45 |
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. */ |