diff options
author | Michael Matz <matz@suse.de> | 2012-05-08 15:54:13 +0000 |
---|---|---|
committer | Michael Matz <matz@gcc.gnu.org> | 2012-05-08 15:54:13 +0000 |
commit | bcc708fcdc60c6b4485b1796ac1ba61c5f56b0b3 (patch) | |
tree | 6c299e917ec2a3f887c9fedcefdf3a151c51eebb /gcc/basic-block.h | |
parent | 88231ff68197c2c22f33e1a8ba251bc0b02b1f2d (diff) | |
download | gcc-bcc708fcdc60c6b4485b1796ac1ba61c5f56b0b3.zip gcc-bcc708fcdc60c6b4485b1796ac1ba61c5f56b0b3.tar.gz gcc-bcc708fcdc60c6b4485b1796ac1ba61c5f56b0b3.tar.bz2 |
basic-block.h (struct rtl_bb_info): Remove visited member and move head_ member to ...
* basic-block.h (struct rtl_bb_info): Remove visited member and
move head_ member to ...
(struct basic_block_def.basic_block_il_dependent): ... the new
member x, replacing but containing old member rtl.
(enum bb_flags): New BB_VISITED flag.
(BB_HEADER, BB_FOOTER): New macros.
* jump.c (mark_all_labels): Adjust.
* cfgcleanup.c (try_optimize_cfg): Adjust.
* cfglayout.c (record_effective_endpoints): Adjust.
(relink_block_chain): Ditto (and don't fiddle with visited).
(fixup_reorder_chain): Adjust.
(fixup_fallthru_exit_predecessor): Ditto.
(cfg_layout_duplicate_bb): Ditto.
* combine.c (update_cfg_for_uncondjump): Adjust.
* bb-reorder.c (struct bbro_basic_block_data_def): Add visited
member.
(bb_visited_trace): New accessor.
(mark_bb_visited): Move in front.
(rotate_loop): Use bb_visited_trace.
(find_traces_1_round): Ditto.
(emit_barrier_after): Ditto.
(copy_bb): Ditto, and initialize visited on resize.
(reorder_basic_blocks): Initize visited member.
(duplicate_computed_gotos): Clear bb flags at start, use
BB_VISITED flags.
* cfgrtl.c (try_redirect_by_replacing_jump): Adjust.
(rtl_verify_flow_info_1): Ditto.
(cfg_layout_split_block): Ditto.
(cfg_layout_delete_block): Ditto.
(cfg_layout_merge_blocks): Ditto.
(init_rtl_bb_info): Adjust and initialize il.x.head_ member.
From-SVN: r187288
Diffstat (limited to 'gcc/basic-block.h')
-rw-r--r-- | gcc/basic-block.h | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/gcc/basic-block.h b/gcc/basic-block.h index 99df4d8..f0eeba7 100644 --- a/gcc/basic-block.h +++ b/gcc/basic-block.h @@ -102,17 +102,14 @@ extern const struct gcov_ctr_summary *profile_info; struct loop; struct GTY(()) rtl_bb_info { - /* The first and last insns of the block. */ - rtx head_; + /* The first insn of the block is embedded into bb->il.x. */ + /* The last insn of the block. */ rtx end_; /* In CFGlayout mode points to insn notes/jumptables to be placed just before and after the block. */ - rtx header; - rtx footer; - - /* This field is used by the bb-reorder pass. */ - int visited; + rtx header_; + rtx footer_; }; struct GTY(()) gimple_bb_info { @@ -169,7 +166,10 @@ struct GTY((chain_next ("%h.next_bb"), chain_prev ("%h.prev_bb"))) basic_block_d union basic_block_il_dependent { struct gimple_bb_info GTY ((tag ("0"))) gimple; - struct rtl_bb_info * GTY ((tag ("1"))) rtl; + struct { + rtx head_; + struct rtl_bb_info * rtl; + } GTY ((tag ("1"))) x; } GTY ((desc ("((%1.flags & BB_RTL) != 0)"))) il; /* Expected number of executions: calculated in profile.c. */ @@ -260,7 +260,10 @@ enum bb_flags df_set_bb_dirty, but not cleared by df_analyze, so it can be used to test whether a block has been modified prior to a df_analyze call. */ - BB_MODIFIED = 1 << 12 + BB_MODIFIED = 1 << 12, + + /* A general visited flag for passes to use. */ + BB_VISITED = 1 << 13 }; /* Dummy flag for convenience in the hot/cold partitioning code. */ @@ -415,8 +418,10 @@ struct GTY(()) control_flow_graph { /* Stuff for recording basic block info. */ -#define BB_HEAD(B) (B)->il.rtl->head_ -#define BB_END(B) (B)->il.rtl->end_ +#define BB_HEAD(B) (B)->il.x.head_ +#define BB_END(B) (B)->il.x.rtl->end_ +#define BB_HEADER(B) (B)->il.x.rtl->header_ +#define BB_FOOTER(B) (B)->il.x.rtl->footer_ /* Special block numbers [markers] for entry and exit. Neither of them is supposed to hold actual statements. */ |