[PATCH 010/236] Split NEXT_INSN/PREV_INSN into lvalue and rvalue forms

David Malcolm dmalcolm@redhat.com
Tue Aug 19 00:56:00 GMT 2014


On Tue, 2014-08-12 at 15:17 -0600, Jeff Law wrote:
> On 08/06/14 11:19, David Malcolm wrote:
> > gcc/
> > 	* rtl.h (PREV_INSN): Split macro in two: the existing one,
> > 	for rvalues, and...
> > 	(SET_PREV_INSN): New macro, for use as an lvalue.
> > 	(NEXT_INSN, SET_NEXT_INSN): Likewise.
> >
> > 	* caller-save.c (save_call_clobbered_regs): Convert lvalue use of
> > 	PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
> > 	* cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
> > 	(fixup_abnormal_edges): Likewise.
> > 	(unlink_insn_chain): Likewise.
> > 	(fixup_reorder_chain): Likewise.
> > 	(cfg_layout_delete_block): Likewise.
> > 	(cfg_layout_merge_blocks): Likewise.
> > 	* combine.c (update_cfg_for_uncondjump): Likewise.
> > 	* emit-rtl.c (link_insn_into_chain): Likewise.
> > 	(remove_insn): Likewise.
> > 	(delete_insns_since): Likewise.
> > 	(reorder_insns_nobb): Likewise.
> > 	(emit_insn_after_1): Likewise.
> > 	* final.c (rest_of_clean_state): Likewise.
> > 	(final_scan_insn): Likewise.
> > 	* gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
> > 	* haifa-sched.c (concat_note_lists): Likewise.
> > 	(remove_notes): Likewise.
> > 	(restore_other_notes): Likewise.
> > 	(move_insn): Likewise.
> > 	(unlink_bb_notes): Likewise.
> > 	(restore_bb_notes): Likewise.
> > 	* jump.c (delete_for_peephole): Likewise.
> > 	* optabs.c (emit_libcall_block_1): Likewise.
> > 	* reorg.c (emit_delay_sequence): Likewise.
> > 	(fill_simple_delay_slots): Likewise.
> > 	* sel-sched-ir.c (sel_move_insn): Likewise.
> > 	(sel_remove_insn): Likewise.
> > 	(get_bb_note_from_pool): Likewise.
> > 	* sel-sched.c (move_nop_to_previous_block): Likewise.
> >
> > 	* config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
> > 	* config/c6x/c6x.c (gen_one_bundle): Likewise.
> > 	(c6x_gen_bundles): Likewise.
> > 	(hwloop_optimize): Likewise.
> > 	* config/frv/frv.c (frv_function_prologue): Likewise.
> > 	(frv_register_nop): Likewise.
> > 	* config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
> > 	(ia64_reorg): Likewise.
> > 	* config/mep/mep.c (mep_reorg_addcombine): Likewise.
> > 	(mep_make_bundle): Likewise.
> > 	(mep_bundle_insns): Likewise.
> > 	* config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
> > 	* config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
> > 	* config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
> OK.

Thanks; committed to trunk as r214128, having bootstrapped&regrtested on
x86_64-unknown-linux-gnu (Fedora 20) albeit in combination with patches
9-29 [1], and verified that it builds standalone with the following
targets:
* x86_64-unknown-linux-gnu (Fedora 20)
* bfin-elf
* c6x-elf
* ia64-elf
* mep-elf
* picochip-elf
* tilegx-linux-gnu
* tilepro-linux-gnu

I was also able to verify the build of the touched file frv.c with
frv-elf, and that fully builds apart from what appears to be a
pre-existing issue in ifcvt.c:
../../src/gcc/ifcvt.c: In function ‘int
cond_exec_process_insns(ce_if_block*, rtx, rtx, rtx, int, int)’:
../../src/gcc/config/frv/frv.h:1964:58: error: ‘frv_ifcvt_modify_insn’
was not declared in this scope
 (PATTERN) = frv_ifcvt_modify_insn (CE_INFO, PATTERN, INSN)
                                                          ^
../../src/gcc/ifcvt.c:408:7: note: in expansion of macro
‘IFCVT_MODIFY_INSN’
       IFCVT_MODIFY_INSN (ce_info, pattern, insn);





More information about the Gcc-patches mailing list