diff options
author | dmalcolm <dmalcolm@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-08-18 20:48:17 +0000 |
---|---|---|
committer | dmalcolm <dmalcolm@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-08-18 20:48:17 +0000 |
commit | a684cb043a394d7a57a65738413e75e5a102dc29 (patch) | |
tree | b4356fbacb07e1edc905225a3dabc568905187a7 /gcc/basic-block.h | |
parent | 904c3df207c0c8eeb9e5f4e09ee56fe838dd13d1 (diff) | |
download | gcc-a684cb043a394d7a57a65738413e75e5a102dc29.tar.gz |
Split BB_HEAD et al into BB_HEAD/SET_BB_HEAD variants
gcc/
2014-08-18 David Malcolm <dmalcolm@redhat.com>
* basic-block.h (BB_HEAD): Split macro in two: the existing one,
for rvalues, and...
(SET_BB_HEAD): New macro, for use as a lvalue.
(BB_END, SET_BB_END): Likewise.
(BB_HEADER, SET_BB_HEADER): Likewise.
(BB_FOOTER, SET_BB_FOOTER): Likewise.
* bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
of BB_* macros into SET_BB_* macros.
(fix_crossing_unconditional_branches): Likewise.
* caller-save.c (save_call_clobbered_regs): Likewise.
(insert_one_insn): Likewise.
* cfgbuild.c (find_bb_boundaries): Likewise.
* cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
(outgoing_edges_match): Likewise.
(try_optimize_cfg): Likewise.
* cfgexpand.c (expand_gimple_cond): Likewise.
(expand_gimple_tailcall): Likewise.
(expand_gimple_basic_block): Likewise.
(construct_exit_block): Likewise.
* cfgrtl.c (delete_insn): Likewise.
(create_basic_block_structure): Likewise.
(rtl_delete_block): Likewise.
(rtl_split_block): Likewise.
(emit_nop_for_unique_locus_between): Likewise.
(rtl_merge_blocks): Likewise.
(block_label): Likewise.
(try_redirect_by_replacing_jump): Likewise.
(emit_barrier_after_bb): Likewise.
(fixup_abnormal_edges): Likewise.
(record_effective_endpoints): Likewise.
(relink_block_chain): Likewise.
(fixup_reorder_chain): Likewise.
(fixup_fallthru_exit_predecessor): Likewise.
(cfg_layout_duplicate_bb): Likewise.
(cfg_layout_split_block): Likewise.
(cfg_layout_delete_block): Likewise.
(cfg_layout_merge_blocks): Likewise.
* combine.c (update_cfg_for_uncondjump): Likewise.
* emit-rtl.c (add_insn_after): Likewise.
(remove_insn): Likewise.
(reorder_insns): Likewise.
(emit_insn_after_1): Likewise.
* haifa-sched.c (get_ebb_head_tail): Likewise.
(restore_other_notes): Likewise.
(move_insn): Likewise.
(sched_extend_bb): Likewise.
(fix_jump_move): Likewise.
* ifcvt.c (noce_process_if_block): Likewise.
(dead_or_predicable): Likewise.
* ira.c (update_equiv_regs): Likewise.
* reg-stack.c (change_stack): Likewise.
* sel-sched-ir.c (sel_move_insn): Likewise.
* sel-sched.c (move_nop_to_previous_block): Likewise.
* config/c6x/c6x.c (hwloop_optimize): Likewise.
* config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
/
2014-08-18 David Malcolm <dmalcolm@redhat.com>
* rtx-classes-status.txt (TODO): Add SET_BB_HEAD, SET_BB_END,
SET_BB_HEADER, SET_BB_FOOTER
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214121 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/basic-block.h')
-rw-r--r-- | gcc/basic-block.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/gcc/basic-block.h b/gcc/basic-block.h index f417b34a873..98cb00c8d24 100644 --- a/gcc/basic-block.h +++ b/gcc/basic-block.h @@ -368,10 +368,17 @@ struct GTY(()) control_flow_graph { /* Stuff for recording basic block info. */ -#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_ +/* These macros are currently split into two: + one suitable for reading, and for writing. + These will become functions in a follow-up patch. */ +#define BB_HEAD(B) (((const_basic_block)B)->il.x.head_) +#define SET_BB_HEAD(B) (B)->il.x.head_ +#define BB_END(B) (((const rtl_bb_info *)(B)->il.x.rtl)->end_) +#define SET_BB_END(B) (B)->il.x.rtl->end_ +#define BB_HEADER(B) (((const rtl_bb_info *)(B)->il.x.rtl)->header_) +#define SET_BB_HEADER(B) (B)->il.x.rtl->header_ +#define BB_FOOTER(B) (((const rtl_bb_info *)(B)->il.x.rtl)->footer_) +#define SET_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. */ |