Commit Graph

20 Commits

Author SHA1 Message Date
David Malcolm d7ac0a6aa6 PHASE 6: Use extra rtx_def subclasses
/
2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt: Phase 5 (additional rtx_def subclasses)
	is done; begin phase 6 (use extra rtx_def subclasses).

From-SVN: r214606
2014-08-27 20:42:06 +00:00
David Malcolm 9daaca3673 PHASE 5: Additional rtx subclasses
2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt: Phase 4 (removal of "scaffolding") is
	done; begin phase 5 (additional rtx_def subclasses).

From-SVN: r214588
2014-08-27 19:46:46 +00:00
David Malcolm b2908ba6db Remove DF_REF_INSN scaffolding
gcc/
2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* df.h (df_dump_insn_problem_function): Strengthen first param of
	this callback from const_rtx to const rtx_insn *.
	(struct df_insn_info): Strengthen field "insn" from rtx to
	rtx_insn *.
	(DF_REF_INSN): Eliminate this function, reinstating the older
	macro definition.
	(df_find_def): Strengthen param 1 from rtx to rtx_insn *.
	(df_reg_defined): Likewise.
	(df_find_use): Likewise.
	(df_reg_used): Likewise.
	(df_dump_insn_top): Strengthen param 1 from const_rtx to
	const rtx_insn *.
	(df_dump_insn_bottom): Likewise.
	(df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
	(df_insn_debug_regno): Likewise.
	(debug_df_insn): Likewise.
	(df_rd_simulate_one_insn): Likewise for param 2.
	(df_word_lr_simulate_defs): Likewise for param 1.
	(df_word_lr_simulate_uses): Likewise.
	(df_md_simulate_one_insn): Likewise for param 2.
	(df_simulate_find_noclobber_defs): Likewise for param 1.
	(df_simulate_find_defs): Likewise.
	(df_simulate_defs): Likewise.
	(df_simulate_uses): Likewise.
	(df_simulate_one_insn_backwards): Likewise for param 2.
	(df_simulate_one_insn_forwards): Likewise.
	(df_uses_create): Likewise for param 2.
	(df_insn_create_insn_record): Likewise for param 1.
	(df_insn_delete): Likewise.
	(df_insn_rescan): Likewise.
	(df_insn_rescan_debug_internal): Likewise.
	(df_insn_change_bb): Likewise.
	(df_notes_rescan): Likewise.
	* rtl.h (remove_death): Likewise for param 2.
	(print_rtl_with_bb): Strengthen param 2 from const_rtx to
	const rtx_insn *.
	* sched-int.h (reemit_notes): Strengthen param from rtx to
	rtx_insn *.
	* valtrack.h (propagate_for_debug): Likewise for param 1.

	* cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
	local "tmp_rtx" from const_rtx to const rtx_insn *.
	* combine.c (remove_death): Strengthen param "insn" from rtx to
	rtx_insn *.
	(move_deaths): Likewise for local "where_dead".
	* cse.c (delete_trivially_dead_insns): Introduce local
	"bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
	* df-core.c (df_find_def): Strengthen param "insn" from rtx to
	rtx_insn *.
	(df_reg_defined): Likewise.
	(df_find_use): Likewise.
	(df_reg_used): Likewise.
	(df_dump_insn_problem_data): Strengthen param "insn" from
	const_rtx to const rtx_insn *.
	(df_dump_insn_top): Likewise.
	(df_dump_insn_bottom): Likewise.
	(df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
	(df_insn_debug_regno): Likewise.
	(debug_df_insn): Likewise.
	(DF_REF_INSN): Delete.
	* df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
	from rtx to rtx_insn *.
	(df_chain_insn_top_dump): Strengthen param "insn" from
	const_rtx to const rtx_insn *.
	(df_chain_insn_bottom_dump): Likewise.
	(df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
	rtx_insn *.
	(df_word_lr_simulate_uses): Likewise.
	(df_print_note): Likewise.
	(df_remove_dead_and_unused_notes): Likewise.
	(df_set_unused_notes_for_mw): Likewise.
	(df_set_dead_notes_for_mw): Likewise.
	(df_create_unused_note): Likewise.
	(df_simulate_find_defs): Likewise.
	(df_simulate_find_uses): Likewise.
	(df_simulate_find_noclobber_defs): Likewise.
	(df_simulate_defs): Likewise.
	(df_simulate_uses): Likewise.
	(df_simulate_one_insn_backwards): Likewise.
	(df_simulate_one_insn_forwards): Likewise.
	(df_md_simulate_one_insn): Likewise.
	* df-scan.c (df_uses_create): Likewise.
	(df_insn_create_insn_record): Likewise.
	(df_insn_delete): Likewise.
	(df_insn_rescan): Likewise.
	(df_insn_rescan_debug_internal): Likewise.
	(df_insn_change_bb): Likewise.
	(df_notes_rescan): Likewise.
	(df_refs_add_to_chains): Likewise.
	(df_insn_refs_verify): Likewise.
	* emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
	when invoking df_insn_delete.
	(reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
	(set_unique_reg_note): Add checked cast.
	* final.c (cleanup_subreg_operands): Likewise.
	* gcse.c (update_ld_motion_stores): Likewise, strengthening local
	"insn" from rtx to rtx_insn *.
	* haifa-sched.c (reemit_notes): Strengthen param "insn" and local
	"last" from rtx to rtx_insn *.
	* ira-emit.c (change_regs_in_insn): New function.
	(change_loop): Strengthen local "insn" from rtx to rtx_insn *.
	Invoke change_regs_in_insn rather than change_regs.
	* ira.c (update_equiv_regs): Strengthen locals "insn",
	"init_insn", "new_insn" from rtx to rtx_insn *.  Invoke
	for_each_rtx_in_insn rather than for_each_rtx.
	* recog.c (confirm_change_group): Add checked casts.
	(peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
	Add checked cast.
	(peep2_fill_buffer): Add checked cast.
	* rtlanal.c (remove_note): Likewise.
	* valtrack.c (propagate_for_debug): Strengthen param "insn" and
	locals "next" "end" from rtx to rtx_insn *.

/
2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt (TODO): DF_REF_INSN is done.

From-SVN: r214548
2014-08-26 20:39:42 +00:00
David Malcolm 1130d5e3e3 Remove BB_HEAD, BB_END, BB_HEADER scaffolding
gcc/
	* basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
	and "header_" from rtx to rtx_insn *.
	(struct basic_block_d): Likewise for field "head_" within "x"
	field of union basic_block_il_dependent.
	(BB_HEAD): Drop function...
	(SET_BB_HEAD): ...and this function in favor of...
	(BB_HEAD): ...reinstate macro.
	(BB_END): Drop function...
	(SET_BB_END): ...and this function in favor of...
	(BB_END): ...reinstate macro.
	(BB_HEADER): Drop function...
	(SET_BB_HEADER): ...and this function in favor of...
	(BB_HEADER): ...reinstate macro.

	* bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
	(fix_crossing_unconditional_branches): Likewise.
	* caller-save.c (save_call_clobbered_regs): Likewise.
	(insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
	* cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
	* cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
	(merge_blocks_move_successor_nojumps): Likewise.
	(outgoing_edges_match): Update use of for_each_rtx to
	for_each_rtx_in_insn.
	* cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
	(expand_gimple_cond): Likewise.
	(expand_gimple_tailcall): Likewise.
	(expand_gimple_basic_block): Drop use of SET_BB_HEAD and
	SET_BB_END.
	(construct_exit_block): Drop use of SET_BB_END.
	* cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
	rtx_insn *.
	(delete_insn): Rename param "insn" to "uncast_insn", introducing
	a new local "insn" with a checked cast to rtx_insn *.  Drop use of
	SET_BB_HEAD and SET_BB_END.
	(create_basic_block_structure): Drop use of SET_BB_HEAD and
	SET_BB_END.
	(rtl_delete_block): Drop use of SET_BB_HEAD.
	(rtl_split_block): Drop use of SET_BB_END.
	(emit_nop_for_unique_locus_between): Likewise.
	(rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
	(block_label): Drop use of SET_BB_HEAD.
	(fixup_abnormal_edges): Drop use of SET_BB_END.
	(record_effective_endpoints): Drop use of SET_BB_HEADER.
	(relink_block_chain): Likewise.
	(fixup_reorder_chain): Drop use of SET_BB_END.
	(cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
	(cfg_layout_delete_block): Strengthen local "to" from rtx * to
	rtx_insn **.  Drop use of SET_BB_HEADER.
	(cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
	SET_BB_HEAD.
	(BB_HEAD): Delete this function.
	(SET_BB_HEAD): Likewise.
	(BB_END): Likewise.
	(SET_BB_END): Likewise.
	(BB_HEADER): Likewise.
	(SET_BB_HEADER): Likewise.
	* emit-rtl.c (add_insn_after):  Rename param "insn" to
	"uncast_insn", adding a new local "insn" and a checked cast to
	rtx_insn *.  Drop use of SET_BB_END.
	(remove_insn): Strengthen locals "next" and "prev" from rtx to
	rtx_insn *.  Drop use of SET_BB_HEAD and SET_BB_END.
	(reorder_insns): Drop use of SET_BB_END.
	(emit_insn_after_1): Strengthen param "first" and locals "last",
	"after_after" from rtx to rtx_insn *.  Drop use of SET_BB_END.
	(emit_pattern_after_noloc): Add checked cast.
	* haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
	(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): Drop use of SET_BB_HEAD.
	* reg-stack.c (change_stack): Drop use of SET_BB_END.
	* sel-sched-ir.c (sel_move_insn): Likewise.
	* sel-sched.c (move_nop_to_previous_block): Likewise.

	* config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
	SET_BB_END.
	* config/ia64/ia64.c (emit_predicate_relation_info): Likewise.

/
	* rtx-classes-status.txt (TODO): SET_BB_HEAD, SET_BB_END,
	SET_BB_HEADER are done.

From-SVN: r214534
2014-08-26 18:56:58 +00:00
David Malcolm 0e0ce50de6 Remove DEP_PRO/CON scaffolding
gcc/
	* sched-int.h (struct _dep): Strengthen fields "pro" and "con"
	from rtx to rtx_insn *.
	(DEP_PRO): Delete this function and...
	(SET_DEP_PRO): ...this function in favor of...
	(DEP_PRO): ...reinstate this macro.
	(DEP_CON): Delete this function and...
	(SET_DEP_CON): ...this function in favor of...
	(DEP_CON): ...reinstate this old macro.
	(init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
	(init_dep): Likewise.
	(set_priorities): Likewise for both params.
	(sd_copy_back_deps): Likewise for params 1 and 2.

	* haifa-sched.c (priority): Likewise for param "insn" and local
	"next".
	(set_priorities): Likewise for params "head" and "tail" and local
	"insn".
	(process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
	local "consumer".
	(add_to_speculative_block): Add a checked cast.
	(create_check_block_twin): Drop use of SET_DEP_CON.
	(add_jump_dependencies): Strengthen params "insn" and "jump" from
	rtx to rtx_insn *.

	* sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
	Drop use of SET_DEP_PRO
	(init_dep): Strengthen params "pro" and "con" from rtx to
	rtx_insn *.
	(sd_copy_back_deps): Likewise for params "to" and "from".  Drop
	use of SET_DEP_CON.
	(DEP_PRO): Delete.
	(DEP_CON): Delete.
	(SET_DEP_PRO): Delete.
	(SET_DEP_CON): Delete.

/
	* rtx-classes-status.txt (TODO): SET_DEP_PRO and SET_DEP_CON are
	done.

From-SVN: r214530
2014-08-26 17:55:26 +00:00
David Malcolm 3d30f4e815 Remove VINSN_INSN_RTX scaffolding
gcc/
	* sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
	from rtx to rtx_insn *.
        (VINSN_INSN_RTX): Eliminate rvalue function and...
	(SET_VINSN_INSN): ...lvalue function in favor of...
	(VINSN_INSN_RTX): reinstate this old macro.

	* sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
	in favor of VINSN_INSN_RTX.
	(VINSN_INSN_RTX): Delete this function.
	(SET_VINSN_INSN_RTX): Likewise.

/
	* rtx-classes-status.txt (TODO): Remove SET_VINSN_INSN_RTX.

From-SVN: r214529
2014-08-26 17:45:50 +00:00
David Malcolm 6144a8363c insn_t becomes an rtx_insn *
gcc/
	* sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
	(BND_TO): Delete this function and...
	(SET_BND_TO): ...this functions in favor of...
	(BND_TO): ...reinstating this macro.
	(struct _fence): Strengthen field "executing_insns" from
	vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.  Strengthen fields
	"last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
	(_succ_iter_cond): Update param "succp" from rtx * to insn_t *
	and param "insn" from rtx to insn_t.
	(create_vinsn_from_insn_rtx): Strengthen first param from rtx to
	rtx_insn *.

	* sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
	vec<rtx_insn *> .
	(rtx_vec_t): Likewise.
	(struct sched_deps_info_def): Strengthen param of "start_insn"
	callback from rtx to rtx_insn *.  Likewise for param "insn2" of
	"note_mem_dep" callback and first param of "note_dep" callback.

	* haifa-sched.c (add_to_speculative_block): Strengthen param
	"insn" from rtx to rtx_insn *.
	(clear_priorities): Likewise.
	(calc_priorities): Likewise for local "insn".

	* sched-deps.c (haifa_start_insn): Likewise for param "insn".
	Remove redundant checked cast.
	(haifa_note_mem_dep): Likewise for param "pending_insn".
	(haifa_note_dep): Likewise for param "elem".
	(note_mem_dep): Likewise for param "e".
	(sched_analyze_1): Add checked casts.
	(sched_analyze_2): Likewise.

	* sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
	from rtx to rtx_insn *.
	(debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
	from vec<rtx> * to vec<rtx_insn *> *.

	* sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
	scaffolding.
	(flist_add): Strengthen param "executing_insns" from
	vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
	(advance_deps_context): Remove now-redundant checked cast.
	(init_fences): Replace uses of NULL_RTX with NULL.
	(merge_fences): Strengthen params "last_scheduled_insn" and
	"sched_next" from rtx to rtx_insn * and "executing_insns" from
	vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
	(add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
	(get_nop_from_pool): Add local "nop_pat" so that "nop" can be
	an instruction, rather than doing double-duty as a pattern.
	(return_nop_to_pool): Update for change of insn_t.
	(deps_init_id): Remove now-redundant checked cast.
	(struct sched_scan_info_def): Strengthen param of "init_insn"
	callback from rtx to insn_t.
	(sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
	(init_global_and_expr_for_insn): Replace uses of NULL_RTX with
	NULL.
	(get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
	"end" from rtx to rtx_insn *.
	(create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
	(rtx insn_rtx, bool force_unique_p)
	(BND_TO): Delete function.
	(SET_BND_TO): Delete function.

	* sel-sched.c (advance_one_cycle): Strengthen local "insn" from
	rtx to rtx_insn *.
	(extract_new_fences_from): Replace uses of NULL_RTX with NULL.
	(replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
	rtx to rtx_insn *.
	(undo_transformations): Likewise for param "insn".
	(update_liveness_on_insn): Likewise.
	(compute_live_below_insn): Likewise for param "insn" and local
	"succ".
	(update_data_sets): Likewise for param "insn".
	(fill_vec_av_set): Replace uses of NULL_RTX with NULL.
	(convert_vec_av_set_to_ready): Drop now-redundant checked cast.
	(invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
	rtx_insn *.
	(move_cond_jump): Likewise for param "insn".
	(move_cond_jump): Drop use of SET_BND_TO.
	(compute_av_set_on_boundaries): Likewise.
	(update_fence_and_insn): Replace uses of NULL_RTX with NULL.
	(update_and_record_unavailable_insns): Strengthen local "bb_end"
	from rtx to rtx_insn *.
	(maybe_emit_renaming_copy): Likewise for param "insn".
	(maybe_emit_speculative_check): Likewise.
	(handle_emitting_transformations): Likewise.
	(remove_insn_from_stream): Likewise.
	(code_motion_process_successors): Strengthen local "succ" from rtx
	to insn_t.

/
	* rtx-classes-status.txt (TODO): Remove SET_BND_TO.

From-SVN: r214528
2014-08-26 17:42:13 +00:00
David Malcolm b311fd0f70 Eliminate BB_NOTE_LIST scaffolding
gcc/
	* sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
	"note_list" from rtx to rtx_insn *.
	(BB_NOTE_LIST): Replace this function and...
	(SET_BB_NOTE_LIST): ...this function with...
	(BB_NOTE_LIST): ...the former macro implementation.

	* sched-int.h (concat_note_lists): Strengthen param "from_end" and
	local "from_start" from rtx to rtx_insn *.  Strengthen param
	"to_endp" from rtx * to rtx_insn **.

	* haifa-sched.c (concat_note_lists): Likewise.
	* sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
	BB_NOTE_LIST.
	(sel_restore_notes): Likewise.
	(move_bb_info): Likewise.
	(BB_NOTE_LIST): Delete this function.
	(SET_BB_NOTE_LIST): Delete this function.
	* sel-sched.c (create_block_for_bookkeeping): Eliminate
	SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.

/
	* rtx-classes-status.txt (TODO): Remove SET_BB_NOTE_LIST.

From-SVN: r214482
2014-08-25 21:22:02 +00:00
David Malcolm d8ce2eae84 Remove BB_FOOTER scaffolding
gcc/
	* basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
	from rtx to rtx_insn *.
	(BB_FOOTER): Replace function with access macro.
	(SET_BB_FOOTER): Delete.

	* cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
	with BB_FOOTER.
	* cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
	(emit_barrier_after_bb): Likewise.
	(record_effective_endpoints): Likewise.
	(relink_block_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.
	(BB_FOOTER): Delete function.
	(SET_BB_FOOTER): Delete function.
	* combine.c (update_cfg_for_uncondjump): Replace uses of
	SET_BB_FOOTER with BB_FOOTER.

/
	* rtx-classes-status.txt (TODO): Remove SET_BB_FOOTER.

From-SVN: r214470
2014-08-25 20:13:26 +00:00
David Malcolm 1455e88c11 PHASE 4: Removal of scaffolding
/
2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt: Phase 3 (per-file commits within
	"config" subdirs) is done; begin phase 4 (removal of
	"scaffolding").

From-SVN: r214468
2014-08-25 20:04:07 +00:00
David Malcolm 76c531d3ae PHASE 3: Per-config subdir commits
/
2014-08-23  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt: Phase 2 (per-file commits in main source
	dir) is done; begin phase 3 (per-file commits within "config"
	subdirs).

From-SVN: r214394
2014-08-23 01:02:46 +00:00
David Malcolm 00550b3dc7 PHASE 2: Per-file commits in main source directory
/
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt: Phase 1 ("scaffolding") is done; begin
	phase 2 (per-file commits in main source dir).

From-SVN: r214276
2014-08-21 15:08:47 +00:00
David Malcolm c1286e0b87 BND_TO scaffolding
gcc/
2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* sel-sched-ir.h (BND_TO): insn_t will eventually be an
	rtx_insn *.  To help with transition, for now, convert from an
	access macro into a pair of functions: BND_TO, returning an
	rtx_insn *, and...
	(SET_BND_TO): New function, for use where BND_TO is used as an
	lvalue.

	* sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
	SET_BND_TO.
	(BND_TO): New function, adding a checked cast.
	(SET_BND_TO): New function.

	* sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
	SET_BND_TO.
	(compute_av_set_on_boundaries): Likewise.

/
2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt (TODO): Add SET_BND_TO

From-SVN: r214170
2014-08-19 16:39:52 +00:00
David Malcolm c2fc1aee96 BB_NOTE_LIST scaffolding
gcc/
2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
	"note_list" field will eventually be an rtx_insn *.  To help with
	transition, for now, convert from an access macro into a pair of
	functions: BB_NOTE_LIST, returning an rtx_insn *, and...
	(SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
	used as an lvalue.

	* sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
	of BB_NOTE_LIST to SET_BB_NOTE_LIST.

	* sel-sched-ir.c (init_bb): Likewise.
	(sel_restore_notes): Likewise.
	(move_bb_info): Likewise.
	(BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
	(SET_BB_NOTE_LIST): New function.

/
2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt (TODO): Add SET_BB_NOTE_LIST.

From-SVN: r214167
2014-08-19 16:00:59 +00:00
David Malcolm 689756831c VINSN_INSN_RTX scaffolding
gcc/
2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
	field will eventually be an rtx_insn *.  To help with transition,
	for now, convert from an access macro into a pair of functions:
	VINSN_INSN_RTX, returning an rtx_insn *, and...
	(SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
	is used as an lvalue.

	* sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
	SET_VINSN_INSN_RTX where it's used as an lvalue.
	(VINSN_INSN_RTX): New function.
	(SET_VINSN_INSN_RTX): New function.

/
2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt (TODO): Add SET_VINSN_INSN_RTX.

From-SVN: r214165
2014-08-19 15:42:24 +00:00
David Malcolm d914bc6b3a DEP_PRO/DEP_CON scaffolding
gcc/
2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
	eventually be rtx_insn *, but to help with transition, for now,
	convert from an access macro into a pair of functions: DEP_PRO
	returning an rtx_insn * and...
	(SET_DEP_PRO): New function, for use where DEP_PRO is used as an
	lvalue, returning an rtx&.
	(DEP_CON): Analogous changes to DEP_PRO above.
	(SET_DEP_CON): Likewise.

	* haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
	an lvalue to SET_DEP_CON.
	* sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
	(sd_copy_back_deps): Likewise for DEP_CON.
	(DEP_PRO): New function, adding a checked cast for now.
	(DEP_CON): Likewise.
	(SET_DEP_PRO): New function.
	(SET_DEP_CON): Likewise.

/
2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt (TODO): Add SET_DEP_PRO, SET_DEP_CON.

From-SVN: r214164
2014-08-19 15:31:23 +00:00
David Malcolm 8020a4d5c5 Convert DF_REF_INSN to a function for now
gcc/
2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* df-core.c (DF_REF_INSN): New, using a checked cast for now.
	* df.h (DF_REF_INSN): Convert from a macro to a function, so
	that we can return an rtx_insn *.

/
2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt (TODO): Add DF_REF_INSN.

From-SVN: r214160
2014-08-19 15:18:42 +00:00
David Malcolm 0f82e5c9fb Split NEXT_INSN/PREV_INSN into lvalue and rvalue forms
/
2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* rtx-classes-status.txt: Add SET_NEXT_INSN, SET_PREV_INSN.

gcc/
2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* 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.

From-SVN: r214128
2014-08-19 00:54:22 +00:00
David Malcolm 190bea879f 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

From-SVN: r214121
2014-08-18 20:48:17 +00:00
David Malcolm c41b94cef2 Add rtx-classes-status.txt
2014-08-18  David Malcolm  <dmalcolm@redhat.com>

        * rtx-classes-status.txt: New file

From-SVN: r214116
2014-08-18 19:37:45 +00:00