On Tue, 2014-08-12 at 15:15 -0600, Jeff Law wrote:
> On 08/06/14 11:19, David Malcolm wrote:
> > This is an enabling patch, splitting existing macros in two, covering
> > the rvalue and lvalue uses separately.
> >
> > Followup patches will replace these with functions, and gradually convert
> > the types from rtx to rtx_insn *, but we need to do this separately for
> > the lvalue vs rvalue use-cases, hence this patch.
> >
> > The plan is to eventually eliminate the split in a further followup patch,
> > and convert them back to macros, where the underlying fields are of type
> > rtx_insn *.
> >
> > gcc/
> >     * 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.
> >
> > /
> >     * rtx-classes-status.txt (TODO): Add SET_BB_HEAD, SET_BB_END,
> >     SET_BB_HEADER, SET_BB_FOOTER
> OK.  For those watching at home, the scaffolding gets removed in patches 
> 170 and 178 and we return to using BB_HEAD, BB_END, etc without a 
> separate one for rvalues vs lvalues.
> 
> Obviously as the bits stage in there may be a window where folks will 
> have to deal with the split, but hopefully that window will be quite 
> short.  While I'd like to avoid that, I fear we'll have David spinning 
> his wheels to get the patch series to a point where it can all go in at 
> once.

Thanks; committed to trunk as r214121, having bootstrapped&regtested on
x86_64 Fedora 20 (together with patches 2-8 of the kit as per:
https://gcc.gnu.org/ml/gcc-patches/2014-08/msg01420.html )
and verified build of the patch by itself for targets
x86_64-unknown-linux-gnu, c6x-elf and ia64-elf.

Reply via email to