Commit Graph

132427 Commits

Author SHA1 Message Date
Richard Biener
8b2282660d re PR c++/62175 (Internal compiler error in gimplify_modify_expr gimplify.c:4616)
2014-08-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/62175
	* tree-ssa-loop-niter.c (expand_simple_operations): Do not
	expand possibly trapping operations.

	* g++.dg/torture/pr62175.C: New testcase.

From-SVN: r214492
2014-08-26 08:03:32 +00:00
David Malcolm
94d64bbd61 Update rs6000.c's pass_analyze_swaps to use rtx_insn
gcc/
	* config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
	"insn" from rtx to rtx_insn *.
	(permute_load): Likewise for param "insn".
	(permute_store): Likewise.
	(handle_special_swappables): Likewise for local "insn".
	(replace_swap_with_copy): Likewise for locals "insn" and
	"new_insn".
	(rs6000_analyze_swaps): Likewise for local "insn".

From-SVN: r214489
2014-08-26 06:47:53 +00:00
Martin Liska
347990b7cb Add missing entry
From-SVN: r214488
2014-08-26 06:37:51 +00:00
Jason Merrill
991eeb4962 pt.c (check_explicit_specialization): Don't complain about non-template variable.
* pt.c (check_explicit_specialization): Don't complain about
	non-template variable.
	(template_for_substitution): Allow variable templates.
	(check_template_variable): Fix logic for member var template.
	* decl.c (start_decl): Don't complain about extra template header
	here.

From-SVN: r214487
2014-08-25 22:47:42 -04:00
GCC Administrator
f348033d1e Daily bump.
From-SVN: r214486
2014-08-26 00:16:42 +00:00
David Malcolm
186294fae5 du_chain.insn is an rtx_insn
gcc/
	* regrename.h (struct du_chain): Strengthen field "insn" from rtx
	to rtx_insn *.

From-SVN: r214483
2014-08-25 21:24: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
ce1ce33a03 Strengthen haifa_sched_info callbacks and 3 scheduler hooks
gcc/
	* target.def (reorder): Strengthen param "ready" of this DEFHOOK
	from rtx * to rtx_insn **.
	(reorder2): Likewise.
	(dependencies_evaluation_hook): Strengthen params "head", "tail"
	from rtx to rtx_insn *.

	* doc/tm.texi: Update mechanically for above change to target.def.

	* sched-int.h (note_list): Strengthen this variable from rtx to
	rtx_insn *.
	(remove_notes): Likewise for both params.
	(restore_other_notes): Likewise for return type and first param.
	(struct ready_list): Strengthen field "vec" from rtx * to
	rtx_insn **.
	(struct dep_replacement): Strenghten field "insn" from rtx to
	rtx_insn *.
	(struct deps_desc): Likewise for fields "last_debug_insn",
	"last_args_size".
	(struct haifa_sched_info): Likewise for callback field
	"can_schedule_ready_p"'s param, for first param of "new_ready"
	callback field, for both params of "rank" callback field, for
	first field of "print_insn" callback field (with a const), for
	both params of "contributes_to_priority" callback, for param
	of "insn_finishes_block_p" callback, for fields "prev_head",
	"next_tail", "head", "tail", for first param of "add_remove_insn"
	callback, for first param of "begin_schedule_ready" callback, for
	both params of "begin_move_insn" callback, and for second param
	of "advance_target_bb" callback.
	(add_dependence): Likewise for params 1 and 2.
	(sched_analyze): Likewise for params 2 and 3.
	(deps_analyze_insn): Likewise for param 2.
	(ready_element): Likewise for return type.
	(ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
	(try_ready): Strenghten param from rtx to rtx_insn *.
	(sched_emit_insn): Likewise for return type.
	(record_delay_slot_pair): Likewise for params 1 and 2.
	(add_delay_dependencies): Likewise for param.
	(contributes_to_priority): Likewise for both params.
	(find_modifiable_mems): Likewise.

	* config/arm/arm.c (cortexa7_sched_reorder):  Strengthen param
	"ready" from rtx * to rtx_insn **.  Strengthen locals "insn",
	"first_older_only_insn" from rtx to rtx_insn *.
	(arm_sched_reorder):  Strengthen param "ready"  from rtx * to
	rtx_insn **.

	* config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
	"last_scheduled_iter0" from rtx to rtx_insn *.
	(init_sched_state): Replace use of NULL_RTX with NULL for insn.
	(c6x_sched_reorder_1): Strengthen param "ready" and locals
	"e_ready", "insnp" from rtx * to rtx_insn **.  Strengthen local
	"insn" from rtx to rtx_insn *.
	(c6x_sched_reorder): Strengthen param "ready" from rtx * to
	rtx_insn **.
	(c6x_sched_reorder2): Strengthen param "ready" and locals
	"e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
	"insn" from rtx to rtx_insn *.
	(c6x_variable_issue):  Add a checked cast when assigning from insn
	to ss.last_scheduled_iter0.
	(split_delayed_branch): Strengthen param "insn" and local "i1"
	from rtx to rtx_insn *.
	(split_delayed_nonbranch): Likewise.
	(undo_split_delayed_nonbranch): Likewise for local "insn".
	(hwloop_optimize): Likewise for locals "seq", "insn", "prev",
	"entry_after", "end_packet", "head_insn", "tail_insn",
	"new_insns", "last_insn", "this_iter", "prev_stage_insn".
	Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
	to rtx_insn **.  Remove now-redundant checked cast on last_insn,
	but add a checked cast on loop->start_label.  Consolidate calls to
	avoid assigning result of gen_spkernel to "insn", now an
	rtx_insn *.

	* config/i386/i386.c (do_reorder_for_imul): Strengthen param
	"ready" from rtx * to rtx_insn **.  Strengthen local "insn" from
	rtx to rtx_insn *.
	(swap_top_of_ready_list): Strengthen param "ready" from rtx * to
	rtx_insn **.  Strengthen locals "top", "next" from rtx to
	rtx_insn *.
	(ix86_sched_reorder): Strengthen param "ready" from rtx * to
	rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
	(add_parameter_dependencies): Strengthen params "call", "head" and
	locals "insn", "last", "first_arg" from rtx to rtx_insn *.
	(avoid_func_arg_motion): Likewise for params "first_arg", "insn".
	(add_dependee_for_func_arg): Likewise for param "arg" and local
	"insn".
	(ix86_dependencies_evaluation_hook): Likewise for params "head",
	"tail" and locals "insn", "first_arg".

	* config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
	for params "head", "tail" and locals "insn", "next", "next_tail".
	(ia64_dfa_sched_reorder): Strengthen param "ready" and locals
	"e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
	"insn", "lowest", "highest" from rtx to rtx_insn *.
	(ia64_sched_reorder): Strengthen param "ready" from rtx * to
	rtx_insn **.
	(ia64_sched_reorder2): Likewise.

	* config/mep/mep.c (mep_find_ready_insn): Strengthen return type
	and local "insn" from rtx to rtx_insn *.  Strengthen param "ready"
	from rtx * to rtx_insn **.
	(mep_move_ready_insn): Strengthen param "ready" from rtx * to
	rtx_insn **.
	(mep_print_sched_insn): Strengthen param "insn" from rtx to
	rtx_insn *.
	(mep_sched_reorder): Strengthen param "ready" from rtx * to
	rtx_insn **.  Strengthen locals "core_insn", "cop_insn" from rtx
	to rtx_insn *.

	* config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
	from rtx * to rtx_insn **.  Strengthen local "new_head" from rtx
	to rtx_insn *.
	(mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
	rtx_insn **.  Strengthen local "temp" from rtx to rtx_insn *.
	(mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
	rtx_insn **.
	(vr4130_reorder): Likewise.
	(mips_74k_agen_reorder): Likewise.  Strengthen local "insn" from
	rtx to rtx_insn *.
	(mips_sched_reorder_1): Strengthen param "ready" from rtx * to
	rtx_insn **.
	(mips_sched_reorder): Likewise.
	(mips_sched_reorder2): Likewise.

	* config/picochip/picochip.c (picochip_sched_reorder): Likewise.

	* config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
	Strengthen local "tmp" from rtx to rtx_insn *.
	(rs6000_sched_reorder2): Likewise.

	* config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
	Likewise.  Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
	(s390_sched_reorder): Strengthen param "ready" from rtx * to
	rtx_insn **.  Strengthen local "tmp" from rtx to rtx_insn *.

	* config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
	"tmp2" from rtx to rtx_insn *.
	(swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
	Strengthen local "insn" from rtx to rtx_insn *.
	(ready_reorder): Strengthen param "ready" from rtx * to
	rtx_insn **.  Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
	(sh_reorder):  Strengthen param "ready" from rtx * to rtx_insn **.
	(sh_reorder2): Likewise.

	* config/spu/spu.c (spu_sched_reorder): Likewise.  Strengthen
	local "insn" from rtx to rtx_insn *.

	* haifa-sched.c (note_list): Strengthen this variable from rtx to
	rtx_insn *.
	(scheduled_insns): Strengthen this variable from vec<rtx> to
	vec<rtx_insn *>.
	(set_modulo_params): Likewise for locals "i1", "i2".
	(record_delay_slot_pair): Likewise for params "i1", "i2".
	(add_delay_dependencies): Likewise for param "insn".
	(cond_clobbered_p): Likewise.
	(recompute_todo_spec): Likewise for local "prev".
	(last_scheduled_insn): Likewise for this variable.
	(nonscheduled_insns_begin): Likewise.
	(model_set_excess_costs): Strengthen param "insns" from rtx * to
	rtx_insn **.
	(rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
	rtx_insn *.
	(swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
	Strengthen local "insn" from rtx to rtx_insn *.
	(queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
	(ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
	(ready_add): Strengthen param "insn" from rtx to rtx_insn *.
	(ready_remove_first): Likewise for return type and local "t".
	(ready_element): Likewise for return type.
	(ready_remove): Likewise for return type and local "t".
	(ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
	(check_clobbered_conditions): Strengthen local "x" from rtx to
	rtx_insn *, adding a checked cast.
	(schedule_insn): Likewise for param "insn".
	(remove_notes): Likewise for params "head", "tail" and locals
	"next_tail", "insn", "next".
	(struct haifa_saved_data): Likewise for fields
	"last_scheduled_insn", "nonscheduled_insns_begin".
	(save_backtrack_point): Update for change to field "vec" of
	struct ready_list.
	(toggle_cancelled_flags): Strengthen local "first" from rtx * to
	rtx_insn **.
	(restore_last_backtrack_point): Likewise.  Strengthen local "insn"
	from rtx to rtx_insn *
	(resolve_dependencies): Strengthen param "insn" from rtx to
	rtx_insn *
	(restore_other_notes): Likewise for return type, for param "head"
	and local "note_head".
	(undo_all_replacements): Likewise for local "insn".
	(first_nonscheduled_insn): Likewise for return type and local "insn".
	(queue_to_ready): Likewise for local "insn", adding checked casts.
	(early_queue_to_ready): Likewise for local "insn".
	(debug_ready_list_1): Strengthen local "p" from rtx * to
	rtx_insn **.
	(move_insn): Strengthen param "insn" and local "note" from rtx to
	rtx_insn *
	(insn_finishes_cycle_p): Likewise for param "insn".
	(max_issue): Likewise for local "insn".
	(choose_ready): Likewise.  Strengthen param "insn_ptr" from rtx *
	to rtx_insn **.
	(commit_schedule): Strengthen param "prev_head" and local "insn"
	from rtx to rtx_insn *
	(prune_ready_list): Likewise for local "insn".
	(schedule_block): Likewise for locals "prev_head", "head", "tail",
	"skip_insn", "insn", "failed_insn", "x", adding a checked cast.
	(set_priorities): Likewise for local "prev_head".
	(try_ready): Likewise for param "next".
	(fix_tick_ready): Likewise.
	(change_queue_index): Likewise.
	(sched_extend_ready_list): Update for change to field "vec" of
	struct ready_list.
	(generate_recovery_code): Strengthen param "insn" from rtx to
	rtx_insn *.
	(begin_speculative_block): Likewise.
	(create_check_block_twin): Likewise for param "insn" and locals
	"label", "check", "twin".  Introduce local "check_pat" to avoid
	"check" being used as a plain rtx before being used as an insn.
	(fix_recovery_deps): Add a checked cast to rtx_insn * when
	extracting elements from ready_list.
	(sched_remove_insn): Strengthen param "insn" from rtx to
	rtx_insn *.
	(sched_emit_insn): Likewise for return type.
	(ready_remove_first_dispatch): Likewise for return type and local
	"insn".

	* hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.

	* modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
	const rtx_insn *.

	* sched-deps.c (add_dependence): Strengthen params "con", "pro"
	from rtx to rtx_insn *.
	(add_dependence_list): Likewise for param "insn".  Add a checked
	cast.
	(add_dependence_list_and_free): Strengthen param "insn" from rtx
	to rtx_insn *.  Strengthen param "list_p" from rtx * to
	rtx_insn **.
	(chain_to_prev_insn): Strengthen param "insn" and locals
	"prec_nonnote", "i" from rtx to rtx_insn *.
	(flush_pending_lists): Likewise for param "insn".
	(cur_insn): Likewise for this variable.
	(haifa_start_insn): Add a checked cast.
	(note_dep): Strengthen param "e" from rtx to rtx_insn *.
	(sched_analyze_reg): Likewise for param "insn".
	(sched_analyze_1): Likewise.
	(sched_analyze_2): Likewise.  Add checked casts.
	(sched_analyze_insn): Likewise.  Also for local "prev".
	(deps_analyze_insn): Likewise for param "insn".
	(sched_analyze): Likewise for params "head", "tail" and local "insn".
	(add_dependence_1): Likewise for params "insn", "elem".
	(struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
	(parse_add_or_inc): Likewise for param "insn".
	(find_inc): Likewise for local "inc_cand".
	(find_modifiable_mems): Likewise for params "head", "tail" and
	locals "insn", "next_tail".

	* sched-ebb.c (init_ready_list): Likewise for local "insn".
	(begin_schedule_ready): Likewise for param "insn".
	(begin_move_insn): Likewise for params "insn" and "last".
	(ebb_print_insn): Strengthen param "insn" from const_rtx to
	const rtx_insn *.
	(rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
	(ebb_contributes_to_priority): Likewise for params "next", "insn".
	(ebb_add_remove_insn): Likewise for param "insn".
	(advance_target_bb): Likewise.

	* sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
	"insn".
	(check_live): Likewise for param "insn".
	(init_ready_list): Likewise for local "insn".
	(can_schedule_ready_p): Likewise for param "insn".
	(begin_schedule_ready): Likewise.
	(new_ready): Likewise for param "next".
	(rgn_print_insn): Likewise for param "insn".
	(rgn_rank): Likewise for params "insn1", "insn2".
	(contributes_to_priority): Likewise for params "next", "insn".
	(rgn_insn_finishes_block_p): Likewise for param "insn".
	(add_branch_dependences): Likewise for params "head", "tail" and
	locals "insn", "last".
	(rgn_add_remove_insn): Likewise for param "insn".
	(advance_target_bb): Likewise.

	* sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
	const_rtx to const rtx_insn *.

	* sel-sched-dump.h (sel_print_insn): Likewise.

	* sel-sched-ir.c (advance_deps_context): Add a checked cast.
	(deps_init_id): Likewise.

	* sel-sched.c (convert_vec_av_set_to_ready): Likewise.
	(invoke_reorder_hooks): Strengthen local "arr" from rtx * to
	rtx_insn **.

From-SVN: r214481
2014-08-25 21:19:23 +00:00
David Malcolm
f0cb8ae0d9 final_start_function takes an rtx_insn
gcc/
	* output.h (final_start_function): Strengthen param 1 from rtx to
	rtx_insn *.

	* final.c (final_start_function): Likewise, renaming back from
	"uncast_first" to "first", and dropping the checked cast from rtx
	to rtx_insn *.

From-SVN: r214480
2014-08-25 21:00:03 +00:00
David Malcolm
a943bf7a5b final accepts an rtx_insn
gcc/
	* output.h (final): Strengthen param 1 from rtx to rtx_insn *.
	* final.c (final): Likewise.  Rename param back from
	"uncast_first" to "first" and eliminate the checked cast from rtx
	to rtx_insn *.

From-SVN: r214479
2014-08-25 20:56:14 +00:00
David Malcolm
49922db8a0 shorten_branches takes an rtx_insn
gcc/
	* output.h (shorten_branches): Strengthen param from rtx to
	rtx_insn *.

	* final.c (shorten_branches): Likewise, renaming param back from
	"uncast_first" to "first", and dropping the checked cast from rtx
	to rtx_insn *.

	* genattr.c (gen_attr): Likewise when writing out the prototype of
	shorten_branches.

From-SVN: r214478
2014-08-25 20:53:38 +00:00
David Malcolm
0043f37de5 struct haifa_sched_info: prev_head and next_tail
gcc/
	* sched-int.h (struct haifa_sched_info): Strengthen fields
	"prev_head" and "next_tail" from rtx to rtx_insn *.

From-SVN: r214477
2014-08-25 20:49:19 +00:00
David Malcolm
95c43227c5 Add rtx_jump_table_data::get_labels method
gcc/
	* rtl.h (rtx_jump_table_data::get_labels): New method.
	* cfgbuild.c (make_edges): Replace hand-coded lookup of labels
	with use of the new rtx_jump_table_data::get_labels method.
	(purge_dead_tablejump_edges): Strengthen param "table" from rtx
	to rtx_jump_table_data *.  Simplify by using get_labels method.
	* cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
	a dyn_cast, introducing local "table", using it to replace
	label-lookup logic with a get_labels method call.
	(patch_jump_insn): Simplify using get_labels method.
	* dwarf2cfi.c (create_trace_edges): Likewise.
	* rtlanal.c (label_is_jump_target_p): Likewise.

From-SVN: r214476
2014-08-25 20:45:08 +00:00
David Malcolm
6bb9bf637a unshare_all_rtl_again takes an rtx_insn *
gcc/
	* rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
	to rtx_insn *.

	* emit-rtl.c (unshare_all_rtl_1): Likewise.
	(unshare_all_rtl_again): Likewise, also for local "p".

From-SVN: r214475
2014-08-25 20:40:19 +00:00
David Malcolm
373fc786c2 delete_insn_and_edges takes an rtx_insn *
gcc/
	* rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
	to rtx_insn *.
	* cfgrtl.c (delete_insn_and_edges): Likewise.

From-SVN: r214474
2014-08-25 20:36:57 +00:00
David Malcolm
ac9d2d2c35 reorder_insns requires rtx_insn *
gcc/
	* rtl.h (reorder_insns): Strengthen params "from", "to", "after"
	from rtx to rtx_insn *.

	* emit-rtl.c (reorder_insns): Likewise, also for local "insn".

From-SVN: r214473
2014-08-25 20:31:34 +00:00
David Malcolm
9c8348cf6b function.c and shrink-wrap.*: more rtx_insn
gcc/
	* function.c (thread_prologue_and_epilogue_insns): Likewise for
	locals "returnjump", "epilogue_end", "insn", "next".

	* shrink-wrap.h (get_unconverted_simple_return): Strengthen param
	"returnjump" from rtx * to rtx_insn **.
	* shrink-wrap.c (get_unconverted_simple_return): Likewise.

From-SVN: r214472
2014-08-25 20:27:46 +00:00
David Malcolm
3ffa95c25f Convert edge_def.insns.r to rtx_insn *
gcc/
	* basic-block.h (struct edge_def). Strengthen "r" within
	union edge_def_insns from rtx to rtx_insn *.

	* cfgexpand.c (pass_expand::execute): Remove now-redundant cast
	from rtx to rtx_insn *.  Strengthen local "insns" from rtx to
	rtx_insn *.
	* cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
	from rtx to rtx_insn *.
	* cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
	rtx_insn *.
	* postreload-gcse.c (reg_killed_on_edge): Likewise.
	(reg_used_on_edge): Likewise.
	* tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
	(gt_pch_nx): New overload for rtx_insn *&.
	* tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
	from rtx to rtx_insn *.

From-SVN: r214471
2014-08-25 20:15:36 +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
be7457df4d struct eh_landing_pad_d: field "landing_pad" is an rtx_code_label
gcc/
	* except.h (struct eh_landing_pad_d): Strengthen field
	"landing_pad" from rtx to rtx_code_label *.

	* except.c (sjlj_emit_dispatch_table): Likewise for param
	"dispatch_label"
	(sjlj_build_landing_pads): Likewise for local "dispatch_label".

From-SVN: r214469
2014-08-25 20:07: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
240a513f87 config/xtensa: Use rtx_insn and rtx_code_label
gcc/
	* config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
	first param from rtx to rtx_insn *.
	* config/xtensa/xtensa.c (struct machine_function): Likewise for
	field "set_frame_ptr_insn".
	(xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
	"csend" from rtx to rtx_code_label *.
	(xtensa_expand_atomic): Likewise for local "csloop".
	(xtensa_emit_loop_end): Strengthen param "insn" from rtx to
	rtx_insn *.
	(xtensa_call_tls_desc): Likewise for return type and locals
	"call_insn", "insns".
	(xtensa_legitimize_tls_address): Likewise for local "insns".
	(xtensa_expand_prologue): Likewise for locals "insn", "first".

From-SVN: r214467
2014-08-25 20:00:46 +00:00
David Malcolm
5dc2bb454a config/v850: Use rtx_insn
gcc/
	* config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
	first param from rtx to rtx_insn *.
	* config/v850/v850.c (v850_adjust_insn_length): Likewise for param
	"insn".

From-SVN: r214466
2014-08-25 19:54:37 +00:00
David Malcolm
e51f5c08d7 config/tilepro: Use rtx_insn
gcc/
	* config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
	Strengthen param 1 from rtx to rtx_insn *.
	(tilepro_output_cbranch): Likewise.
	(tilepro_adjust_insn_length): Likewise.
	(tilepro_final_prescan_insn): Likewise for sole param.

	* config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
	Likewise for local "last".
	(cbranch_predicted_p): Likewise for param "insn".
	(tilepro_output_simple_cbranch_with_opcode): Likewise.
	(tilepro_output_cbranch_with_opcode): Likewise.
	(tilepro_output_cbranch): Likewise.
	(frame_emit_load): Likewise for return type and locals "seq",
	"insn".
	(emit_sp_adjust): Likewise for return type and local "insn".
	(tilepro_expand_epilogue): Likewise for locals "last_insn",
	"insn".
	(tilepro_adjust_insn_length): Likewise for param "insn".
	(next_insn_to_bundle): Likewise for return type and params
	"r", "end".
	(tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
	(replace_pc_relative_symbol_ref): Likewise for param "insn" and
	local "new_insns".
	(match_addli_pcrel): Likewise for param "insn".
	(replace_addli_pcrel): Likewise.
	(match_auli_pcrel): Likewise.
	(replace_auli_pcrel): Likewise.
	(tilepro_fixup_pcrel_references): Likewise for locals "insn",
	"next_insn".
	(reorder_var_tracking_notes): Likewise for locals "insn", "next",
	"queue", "next_queue", "prev".
	(tilepro_asm_output_mi_thunk): Likewise for local "insn".
	(tilepro_final_prescan_insn): Likewise for param "insn".

From-SVN: r214465
2014-08-25 19:43:06 +00:00
David Malcolm
9c6ae65391 config/tilegx: Use rtx_insn
gcc/
	* config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
	Strengthen param 1 from rtx to rtx_insn *.
	(tilegx_output_cbranch): Likewise.
	(tilegx_adjust_insn_length): Likewise.
	(tilegx_final_prescan_insn): Likewise for sole param.

	* config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
	or local "last".
	(cbranch_predicted_p): Likewise for param "insn".
	(tilegx_output_simple_cbranch_with_opcode): Likewise.
	(tilegx_output_cbranch_with_opcode): Likewise.
	(tilegx_output_cbranch): Likewise.
	(frame_emit_load): Likewise for return type.
	(set_frame_related_p): Likewise for locals "seq", "insn".
	(emit_sp_adjust): Likewise for return type, and for local "insn".
	Introduce local "pat" for use in place of "insn" where the latter
	isn't an instruction.
	(tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
	from rtx to rtx_insn *.
	(tilegx_adjust_insn_length): Likewise for param "insn".
	(next_insn_to_bundle): Likewise for return type and params "r" and
	"end".
	(tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
	"end".
	(replace_insns): Likewise for params "old_insn", "new_insns".
	(replace_mov_pcrel_step1): Likewise for param "insn" and local
	"new_insns".
	(replace_mov_pcrel_step2): Likewise.
	(replace_mov_pcrel_step3): Likewise.
	(tilegx_fixup_pcrel_references): Likewise for locals "insn",
	"next_insn".
	(reorder_var_tracking_notes): Likewise for locals "insn", "next",
	"queue", "next_queue", "prev".
	(tilegx_output_mi_thunk): Likewise for local "insn".
	(tilegx_final_prescan_insn): Likewise for param "insn".

From-SVN: r214464
2014-08-25 19:38:41 +00:00
David Malcolm
23c39aaa85 config/spu/spu.c: Use rtx_insn
gcc/
	* config/spu/spu.c (frame_emit_store): Strengthen return type from
	rtx to rtx_insn *.
	(frame_emit_load): Likewise.
	(frame_emit_add_imm): Likewise, also for local "insn".
	(spu_expand_prologue): Likewise for local "insn".
	(struct spu_bb_info): Likewise for field "prop_jump".
	(emit_nop_for_insn): Likewise for param "insn" and local
	"new_insn".
	(pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
	"hbr_insn".
	(spu_emit_branch_hint): Likewise for params "before", "branch" and
	locals "hint", "insn".
	(get_branch_target): Likewise for param "branch".
	(insn_clobbers_hbr): Likewise for param "insn".
	(insert_hbrp_for_ilb_runout): Likewise for param "first" and
	locals "insn", "before_4", "before_16".
	(insert_hbrp): Likewise for local "insn".
	(spu_machine_dependent_reorg): Likewise for locals "branch",
	"insn", "next", "bbend".
	(uses_ls_unit): Likewise for param "insn".
	(get_pipe): Likewise.
	(spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
	introducing a checked cast.
	(spu_sched_adjust_cost): Likewise for params "insn" and
	"dep_insn".
	(ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
	(spu_sms_res_mii): Likewise.

From-SVN: r214463
2014-08-25 19:32:54 +00:00
David Malcolm
e1faf324d3 config/sparc: Use rtx_insn
gcc/
	* config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
	from rtx to rtx_insn *.
	(output_cbranch): Likewise for param 6.
	(output_return): Likewise for param 1.
	(output_sibcall): Likewise.
	(output_v8plus_shift): Likewise.
	(output_v8plus_mult): Likewise.
	(output_v9branch): Likewise for param 7.
	(output_cbcond):  Likewise for param 3.

	* config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
	for local "insn".
	(sparc_legitimize_pic_address): Likewise.
	(sparc_emit_call_insn): Likewise.
	(emit_save_or_restore_regs): Likewise.
	(emit_window_save): Likewise for return type and local "insn".
	(sparc_expand_prologue): Likewise for local "insn".
	(sparc_flat_expand_prologue): Likewise.
	(output_return): Likewise for param "insn".
	(output_sibcall): Likewise for param "insn" and local "delay".
	(output_ubranch): Likewise for param "insn".
	(output_cbranch): Likewise.
	(output_cbcond): Likewise.
	(output_v9branch): Likewise.
	(output_v8plus_shift): Likewise.
	(sparc_output_mi_thunk): Likewise for local "insn".
	(get_some_local_dynamic_name): Likewise.
	(output_v8plus_mult): Likewise for param "insn".

From-SVN: r214462
2014-08-25 19:27:55 +00:00
David Malcolm
6cb7eb4173 config/sh: Use rtx_insn and rtx_code_label
gcc/
	* config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
	from rtx to rtx_insn *.
	(output_branchy_insn): Likewise for param 3.
	(output_far_jump): Likewise for param 1.
	(final_prescan_insn): Likewise.
	(sh_insn_length_adjustment): Likewise for sole param.

	* config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
	(expand_cbranchdi4): Strengthen local "skip_label" from rtx to
	rtx_code_label *.
	(sh_emit_compare_and_set): Likewise for local "lab".
	(output_far_jump): Strengthen param "insn" and local "prev" from
	rtx to rtx_insn *.
	(output_branchy_insn): Likewise for param "insn" and local
	"next_insn".
	(output_ieee_ccmpeq): Likewise for param "insn".
	(struct label_ref_list_d): Strengthen field "label" from rtx to
	rtx_code_label *.
	(pool_node): Likewise.
	(pool_window_label): Likewise for this global.
	(add_constant): Likewise for return type and locals "lab", "new_rtx".
	(dump_table): Strengthen params "start", "barrier" and local
	"scan" from rtx to rtx_insn *.
	(broken_move): Likewise for param "insn".
	(untangle_mova): Likewise for params "first_mova" and "new_mova".
	Strengthen param "first_mova" from rtx * to rtx_insn **.
	(mova_p): Likewise for param "insn".
	(fixup_mova): Likewise for param "mova".
	(find_barrier): Likewise for return type, params "mova" and
	"from", and locals "barrier_before_mova", "found_barrier",
	"good_barrier", "orig", "last_symoff", "next".  Strengthen local
	"label" from rtx to rtx_code_label *.
	(sh_loop_align): Strengthen locals "first", "insn", "mova" from
	rtx to rtx_insn *.
	(sh_reorg): Likewise for locals "link", "scan", "barrier".
	(split_branches): Likewise for param "first" and local "insn".
	(final_prescan_insn): Likewise for param "insn".
	(sequence_insn_p): Likewise for locals "prev", "next".
	(sh_insn_length_adjustment): Likewise for param "insn".
	(sh_can_redirect_branch): Likewise for local "insn".
	(find_r0_life_regions): Likewise for locals "end", "insn".
	(sh_output_mi_thunk): Likewise for local "insns".

From-SVN: r214459
2014-08-25 19:22:04 +00:00
David Malcolm
6bf8c00c6a config/score/score.c: Use rtx_insn
gcc/
	* config/score/score.c (score_output_mi_thunk): Strengthen local
	"insn" from rtx to rtx_insn *.
	(score_prologue): Likewise.

From-SVN: r214457
2014-08-25 19:17:13 +00:00
David Malcolm
775c43d37f config/s390: Use rtx_insn and rtx_code_label
gcc/
	* config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
	1 from rtx to rtx_insn *.
	(s390_emit_jump): Likewise for return type.
	(s390_emit_call): Likewise.
	(s390_load_got): Likewise.

	* config/s390/s390.c (last_scheduled_insn): Likewise for this
	variable.
	(s390_match_ccmode): Likewise for param "insn".
	(s390_emit_jump): Likewise for return type.
	(s390_split_branches): Likewise for local "label".
	(struct constant): Strengthen field "label" from rtx to
	rtx_code_label *.
	(struct constant_pool): Likewise for field "label".  Strengthen
	fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
	rtx_insn *.
	(s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
	insns.
	(s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
	(s390_end_pool): Likewise.
	(s390_dump_pool): Likewise for local "insn".
	(s390_mainpool_start): Likewise.
	(s390_chunkify_start): Likewise.
	(s390_chunkify_start): Replace NULL_RTX with NULL when dealing
	with insns.  Strengthen locals "label", "jump", "barrier", "next",
	"prev", "vec_insn", "insn" from rtx to rtx_insn *.
	(s390_chunkify_finish): Strengthen local "insn" from rtx to
	rtx_insn *.
	(s390_chunkify_cancel): Likewise for locals "insn", "barrier",
	"jump", "label", "next_insn".
	(s390_regs_ever_clobbered): Likewise for local "cur_insn".
	(s390_optimize_nonescaping_tx): Likewise for locals "insn",
	"tbegin_insn".
	(s390_load_got): Likewise for return type and local "insns".
	(s390_save_gprs_to_fprs): Likewise for local "insn".
	(s390_restore_gprs_from_fprs): Likewise.
	(pass_s390_early_mach::execute): Likewise.
	(s390_emit_prologue): Likewise for local "insns".
	(s390_expand_tbegin): Strengthen local "leave_label" from rtx to
	rtx_code_label *.
	(s390_emit_call): Strengthen return type and local "insn" from
	rtx to rtx_insn *.
	(s390_emit_tpf_eh_return): Likewise for local "insn".
	(s390_optimize_prologue): Likewise for locals "insn", "new_insn",
	"next_insn", introducing locals "s_pat", "rpat" to allow this.
	(s390_fix_long_loop_prediction): Likewise for param "insn" and
	local "cur_insn".
	(s390_non_addr_reg_read_p): Likewise for param "insn".
	(find_cond_jump): Likewise for return type and param "insn".
	(s390_swap_cmp): Likewise for param "insn".
	(s390_z10_optimize_cmp): Likewise for param "insn" and locals
	"prev_insn", "next_insn".
	(s390_reorg): Likewise for locals "insn", "target".
	(s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
	(s390_sched_variable_issue): For now, rename param "insn" to
	"uncast_insn", introducing a checked cast.
	(s390_sched_init): Replace NULL_RTX with NULL when dealing with
	insn.
	(s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
	rtx_insn *.  Use for_each_rtx_in_insn rather than for_each_rtx.

From-SVN: r214456
2014-08-25 19:06:00 +00:00
David Malcolm
3df4ecc207 config/rx: Use rtx_insn
gcc/
	* config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
	param from rtx to rtx_insn *.
	* config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".

From-SVN: r214455
2014-08-25 18:56:29 +00:00
David Malcolm
e64e631b13 config/rs6000: Use rtx_insn
gcc/
	* config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
	4 from rtx to rtx_insn *.
	(rs6000_final_prescan_insn): Likewise for first param.
	* config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
	local "insn".
	(rs6000_get_some_local_dynamic_name): Likewise.
	(output_cbranch): Likewise for param "insn".
	(spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
	(rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
	(rs6000_emit_allocate_stack): Likewise for local "insn".
	(load_cr_save): Likewise.
	(restore_saved_cr): Likewise.
	(restore_saved_lr): Likewise.
	(emit_cfa_restores): Likewise.
	(rs6000_output_function_epilogue): Likewise for locals "insn" and
	"deleted_debug_label".
	(rs6000_output_mi_thunk): Likewise for local "insn".
	(rs6000_final_prescan_insn): Likewise for param "insn".

From-SVN: r214454
2014-08-25 18:49:28 +00:00
David Malcolm
bd7de269f3 config/picochip: Use rtx_insn
gcc/
	* config/picochip/picochip-protos.h (picochip_final_prescan_insn):
	Strengthen param "insn" from rtx to rtx_insn *.
	* config/picochip/picochip.c (picochip_current_prescan_insn):
	Likewise for this variable.
	(picochip_final_prescan_insn): Likewise for param "insn".

From-SVN: r214453
2014-08-25 18:43:33 +00:00
David Malcolm
432d483ae9 config/pa: Use rtx_insn
gcc/
	* config/pa/pa-protos.h (pa_output_call): Strengthen first param
	from rtx to rtx_insn *.
	(pa_output_indirect_call): Likewise.
	(pa_adjust_insn_length): Likewise.
	(pa_attr_length_millicode_call): Likewise.
	(pa_attr_length_call): Likewise.
	(pa_attr_length_indirect_call): Likewise.

	* config/pa/pa.c (pa_adjust_insn_length): Likewise for param
	"insn".
	(pa_attr_length_millicode_call): Likewise.
	(pa_attr_length_call): Likewise.
	(pa_output_call): Likewise.
	(pa_attr_length_indirect_call): Likewise.
	(pa_output_indirect_call): Likewise.

From-SVN: r214452
2014-08-25 18:35:56 +00:00
David Malcolm
ca009aee77 config/nds32: Use rtx_insn
gcc/
	* config/nds32/nds32-protos.h (nds32_adjust_insn_length):
	Strengthen first param from rtx to rtx_insn *.
	* config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
	param "insn".

From-SVN: r214451
2014-08-25 18:29:41 +00:00
David Malcolm
c6f971f453 config/mips: Use rtx_insn and rtx_code_label
gcc/
	* config/mips/mips-protos.h (mips_emit_move): Strengthen return
	type from rtx to rtx_insn *.
	(mips_expand_call): Likewise.
	(mips_adjust_insn_length): Likewise for first param.
	(mips_output_conditional_branch): Likewise.
	(mips_output_order_conditional_branch): Likewise.
	(mips_final_prescan_insn): Likewise.

	* config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
	rtx_insn * for the SEQUENCE case.
	(SEQ_END): Likewise.
	(mips_emit_move): Strengthen return type from rtx to rtx_insn *.
	(mips_emit_call_insn): Likewise, also for local "insn".
	(mips16_gp_pseudo_reg): Likewise for local "scan".
	(mips16_build_call_stub): Likewise for return type and for local
	"insn".  Introduce a new local "pattern" so that "insn" can indeed
	be an insn.
	(mips_expand_call): Strengthen return type and local "insn" from
	rtx to rtx_insn *.
	(mips_block_move_loop): Strengthen local "label" from rtx to
	rtx_code_label *.
	(mips_expand_synci_loop): Likewise for locals "label",
	"end_label".
	(mips_set_frame_expr): Strengthen local "insn" from rtx to
	rtx_insn *.
	(mips16e_collect_argument_saves): Likewise for locals "insn",
	"next".
	(mips_find_gp_ref): Likewise for param of callback for "pred"
	param, and for local "insn".
	(mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
	(mips_insn_has_flexible_gp_ref_p): Likewise.
	(mips_epilogue_emit_cfa_restores): Likewise for return type and
	local "insn".
	(mips_epilogue_set_cfa): Likewise for local "insn".
	(mips_expand_epilogue): Likewise.
	(mips_adjust_insn_length): Likewise for param "insn".
	(mips_output_conditional_branch): Likewise.
	(mips_output_order_conditional_branch): Likewise.
	(struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
	"alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
	"falu2_turn_enabled_insn".
	(mips_builtin_branch_and_move): Strengthen locals "true_label",
	"done_label" from rtx to rtx_code_label *.
	(struct mips16_constant): Likewise for field "label".
	(mips16_add_constant): Likewise for return type.
	(mips16_emit_constants_1): Strengthen return type and param "insn"
	from rtx to rtx_insn *.
	(mips16_emit_constants): Likewise for param "insn".
	(mips16_insn_length): Likewise.
	(mips16_rewrite_pool_constant): Strengthen local "label" from rtx
	to rtx_code_label *.
	(struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
	from rtx to rtx_insn *.
	(mips16_lay_out_constants): Likewise for locals "insn", "barrier",
	"jump".  Strengthen local "label" from rtx to rtx_code_label *.
	(r10k_simplify_address): Strengthen param "insn" and local
	"def_insn" from rtx to rtx_insn *.
	(r10k_safe_address_p): Strengthen param "insn" from rtx to
	rtx_insn *.
	(r10k_needs_protection_p_1): Update target type of cast of data
	from to rtx to rtx_insn *.
	(r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
	rtx * to rtx_insn **.
	(r10k_needs_protection_p): Strengthen param "insn" from rtx to
	rtx_insn *.
	(r10k_insert_cache_barriers): Likewise for locals "insn", "end".
	(mips_call_expr_from_insn): Likewise for param "insn".
	(mips_pic_call_symbol_from_set): Likewise for local "def_insn".
	(mips_find_pic_call_symbol): Likewise for param "insn".
	(mips_annotate_pic_calls): Likewise for local "insn".
	(mips_sim_insn): Likewise for this variable.
	(struct mips_sim): Likewise for field "insn" within elements of
	last_set array.
	(mips_sim_wait_reg): Likewise for param "insn".
	(mips_sim_wait_regs): Likewise.
	(mips_sim_wait_units): Likewise.
	(mips_sim_wait_insn): Likewise.
	(mips_sim_issue_insn): Likewise.
	(mips_sim_finish_insn): Likewise.
	(mips_seq_time): Likewise for param "seq" and local "insn".
	(vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
	locals "first", "second".
	(vr4130_align_insns): Likewise for locals "insn", "subinsn",
	"last", "last2", "next".
	(mips_avoid_hazard): Likewise for params "after", "insn".
	(mips_reorg_process_insns): Likewise for locals "insn",
	"last_insn", "subinsn", "next_insn".
	(mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
	(mips16_split_long_branches): Likewise for locals "insn" "jump",
	"jump_sequence".
	(mips_output_mi_thunk): Likewise for local "insn".
	(mips_final_prescan_insn): Likewise for param "insn".

From-SVN: r214450
2014-08-25 18:18:01 +00:00
David Malcolm
04f4b24c8d config/microblaze/microblaze.c: Use rtx_insn and rtx_code_label
gcc/
	* config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
	Strengthen return type and local "insns" from rtx to rtx_insn *.
	(microblaze_legitimize_tls_address): Likewise for local "insns".
	(microblaze_block_move_loop): Strengthen local "label" from rtx
	to rtx_code_label *.
	(microblaze_expand_prologue): Strengthen two locals named "insn"
	from rtx to rtx_insn *.
	(microblaze_asm_output_mi_thunk): Likewise for local "insn".
	(microblaze_expand_divide): Likewise for locals "jump", "cjump",
	"insn".  Strengthen locals "div_label", "div_end_label" from rtx
	to rtx_code_label *.

From-SVN: r214449
2014-08-25 18:11:38 +00:00
David Malcolm
aa4a0061bb config/mep: Use rtx_insn and rtx_code_label
gcc/
	* config/mep/mep-protos.h (mep_mulr_source): Strengthen first
	param from rtx to rtx_insn *.
	(mep_reuse_lo): Likewise for third param.
	(mep_use_post_modify_p): Likewise for first param.
	(mep_core_address_length): Likewise.
	(mep_cop_address_length): Likewise.
	(mep_final_prescan_insn): Likewise.
	(mep_store_data_bypass_p): Likewise for both params.
	(mep_mul_hilo_bypass_p): Likewise.
	(mep_ipipe_ldc_p): Likewise for param.

	* config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
	(mep_rewrite_mult): Likewise.
	(mep_rewrite_mulsi3): Likewise.
	(mep_rewrite_maddsi3): Likewise.
	(mep_reuse_lo_p_1): Likewise.
	(mep_reuse_lo_p): Likewise.
	(mep_frame_expr): Likewise.
	(mep_make_parallel): Likewise for both params.
	(mep_use_post_modify_p_1): Likewise for param "set_insn" and
	local "insn".
	(mep_use_post_modify_p): Likewise for param "insn".
	(mep_core_address_length): Likewise.
	(mep_cop_address_length): Likewise.
	(mep_reg_set_in_function): Likewise for local "insn".
	(mep_asm_without_operands_p): Likewise.
	(F): Likewise for return type and param "x".
	(add_constant): Likewise for local "insn".
	(maybe_dead_move): Likewise for return type and local "insn".
	(mep_expand_prologue): Likewise for local "insn".
	(mep_final_prescan_insn): Likewise for param "insn".
	(mep_reorg_regmove): Likewise for param "insns" and locals "insn",
	"next", "follow", "x".
	(mep_insert_repeat_label_last): Likewise for return type, param
	"last_insn", and locals "next", "prev".  Strengthen param "label"
	from rtx to rtx_code_label *.
	(struct mep_doloop_begin): Strengthen field "insn" from rtx to
	rtx_insn *.
	(struct mep_doloop_end): Likewise for fields "insn" and
	"fallthrough".
	(mep_reorg_repeat): Likewise for param "insns" and local "insn".
	Strengthen local "repeat_label" from rtx to rtx_code_label *.
	(mep_invertable_branch_p): Strengthen param "insn" from rtx to
	rtx_insn *.
	(mep_invert_branch): Likewise for params "insn" and "after".
	(mep_reorg_erepeat): Likewise for param "insns" and locals
	"insn", "prev", "new_last", "barrier", "user".  Strengthen local
	"l" from rtx to rtx_code_label *.
	(mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
	from rtx to rtx_insn *.
	(mep_reorg_addcombine): Likewise for param "insns" and locals
	"i", "n".
	(add_sp_insn_p): Likewise for param "insn".
	(mep_reorg_noframe): Likewise for param "insns" and locals
	"start_frame_insn", "end_frame_insn", "next".
	(mep_reorg): Likewise for local "insns".
	(mep_store_data_bypass_1): Likewise for param "prev".  Add checked
	cast.
	(mep_store_data_bypass_p): Likewise for params "prev", "insn".
	(mep_mul_hilo_bypass_p): Likewise.
	(mep_ipipe_ldc_p): Likewise for param "insn".
	(mep_make_bundle): Likewise for return type, param "cop" and local
	"insn", splitting out the latter into a new local "seq" for when it
	is a SEQUENCE rather than an insn.
	(core_insn_p): Likewise for param "insn".
	(mep_bundle_insns): Likewise for param "insns" and locals "insn",
	"last", "first", "note", "prev", "core_insn".

From-SVN: r214448
2014-08-25 18:05:57 +00:00
David Malcolm
c85e862afc config/m68k: Use rtx_insn
gcc/
	* config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
	rtx to rtx_insn *.
	(strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
	(m68k_final_prescan_insn): Likewise for first param.

	* config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
	(m68k_set_frame_related): Likewise for param "insn".
	(output_btst): Likewise for param "insn".
	(m68k_final_prescan_insn): Likewise.
	(m68k_move_to_reg): Likewise for local "insn".
	(m68k_call_tls_get_addr): Likewise for local "insns".
	(m68k_call_m68k_read_tp): Likewise.
	(strict_low_part_peephole_ok): Likewise for param "first_insn".
	(m68k_output_mi_thunk): Likewise for local "insn".

From-SVN: r214447
2014-08-25 17:59:24 +00:00
David Malcolm
6ae94a0bb7 config/iq2000: Use rtx_insn
gcc/
	* config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
	first param from rtx to rtx_insn *.
	(iq2000_adjust_insn_length): Likewise.
	(iq2000_output_conditional_branch): Likewise.
	* config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
	"insn" and local "nop_insn".
	(iq2000_annotate_frame_insn): Likewise for param "insn".
	(iq2000_expand_prologue): Likewise for both locals "insn".
	(iq2000_adjust_insn_length): Likewise for param "insn".
	(iq2000_output_conditional_branch): Likewise.

From-SVN: r214446
2014-08-25 17:51:31 +00:00
David Malcolm
dd3d2b3567 config/ia64/ia64.c: Use rtx_insn
gcc/
	* config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
	"insns" from rtx to rtx_insn *.
	(ia64_emit_cond_move): Likewise for locals "insn", "first".
	(struct spill_fill_data): Likewise for field "init_after" and for
	elements of array field "prev_insn".
	(spill_restore_mem): Likewise for locals "insn", "first".
	(do_spill): Likewise for local "insn".
	(do_restore): Likewise.
	(ia64_expand_prologue): Likewise.
	(ia64_expand_epilogue): Likewise.
	(emit_insn_group_barriers): Likewise for locals "insn",
	"last_label".
	(emit_all_insn_group_barriers): Likewise for locals "insn",
	"last".
	(dfa_stop_insn): Likewise for this global.
	(dfa_pre_cycle_insn): Likewise.
	(ia64_nop): Likewise.
	(final_emit_insn_group_barriers): Likewise for locals "insn",
	"last".
	(emit_predicate_relation_info): Likewise for locals "head", "n",
	"insn", "b", "a".
	(ia64_reorg): Likewise for local "insn".
	(ia64_output_mi_thunk): Likewise.
	(expand_vec_perm_interleave_2): Likewise for local "seq".

From-SVN: r214445
2014-08-25 17:43:41 +00:00
David Malcolm
612b40cfab config/i386/i386: Use rtx_insn
gcc/
	* config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
	param 1 "insn" from rtx to rtx_insn *.
	(ix86_use_lea_for_mov): Likewise.
	(ix86_avoid_lea_for_addr): Likewise.
	(ix86_split_lea_for_addr): Likewise.
	(ix86_lea_for_add_ok): Likewise.
	(ix86_output_call_insn): Likewise.

	* config/i386/i386.c (ix86_va_start): Likewise for local "seq".
	(ix86_get_drap_rtx): Likewise for locals "seq", "insn".
	(ix86_output_function_epilogue): Likewise for locals "insn",
	"deleted_debug_label".
	(legitimize_tls_address): Likewise for local "insn".
	(get_some_local_dynamic_name): Likewise.
	(increase_distance): Likewise for params "prev", "next".
	(distance_non_agu_define_in_bb): Likewise for params "insn",
	"start" and locals "prev", "next".
	(distance_non_agu_define): Likewise for param "insn".
	(distance_agu_use_in_bb): Likewise for params "insn", "start" and
	locals "next", "prev".
	(distance_agu_use): Likewise for param "insn".
	(ix86_lea_outperforms): Likewise.
	(ix86_ok_to_clobber_flags): Likewise.
	(ix86_avoid_lea_for_add): Likewise.
	(ix86_use_lea_for_mov): Likewise.
	(ix86_avoid_lea_for_addr): Likewise.
	(find_nearest_reg_def): Likewise, also for locals "prev", "start".
	(ix86_split_lea_for_addr): Likewise for param "insn".
	(ix86_lea_for_add_ok): Likewise for param "insn".
	(ix86_expand_carry_flag_compare): Likewise for local
	"compare_seq".
	(ix86_expand_int_movcc): Likewise.
	(ix86_output_call_insn): Likewise for param "insn".
	(ix86_output_call_insn): Likewise for local "i".
	(x86_output_mi_thunk): Introduce local "insn", using it in place
	of "tmp" when dealing with insns.
	(ix86_avoid_jump_mispredicts): Likewise for locals "insn",
	"start".
	(ix86_pad_returns): Likewise for locals "ret", "prev".
	(ix86_count_insn_bb): Likewise for local "insn".
	(ix86_pad_short_function): Likewise for locals "ret", "insn".
	(ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
	(ix86_vector_duplicate_value): Likewise for local "insn", "seq".
	(expand_vec_perm_interleave2): Likewise for local "seq".
	(expand_vec_perm_vperm2f128_vblend): Likewise.
	(ix86_loop_unroll_adjust): Likewise for local "insn".  Convert
	call to for_each_rtx with for_each_rtx_in_insn.

From-SVN: r214444
2014-08-25 17:34:45 +00:00
David Malcolm
aefef06abc config/i386/i386.c: Use rtx_code_label
gcc/
	* config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
	"label" from rtx to rtx_code_label *.
	(ix86_expand_prologue): Likewise.
	(ix86_expand_split_stack_prologue): Likewise for locals "label",
	"varargs_label".
	(ix86_split_idivmod): Likewise for locals "end_label" and
	"qimode_label".
	(ix86_expand_branch): Likewise for local "label2".
	(ix86_expand_aligntest): Likewise for return type and local "label".
	(expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
	"top_label".
	(expand_movmem_epilogue): Likewise for the various locals named
	"label".
	(expand_setmem_epilogue): Likewise.
	(expand_small_movmem_or_setmem): Likewise for local "label".
	(expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
	Strengthen param "done_label" from rtx * to rtx_code_label **.
	Strengthen locals "loop_label" and "label" from rtx to
	rtx_code_label *.
	(expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
	Likewise for locals "loop_label", "label".
	(ix86_expand_set_or_movmem): Likewise for locals "label",
	"jump_around_label", "hot_label".
	(ix86_expand_strlensi_unroll_1): Likewise for locals
	"align_2_label", align_3_label", "align_4_label", "end_0_label",
	"end_2_label".
	(x86_emit_floatuns): Likewise for locals "neglab", "donelab".
	(void ix86_emit_i387_log1p): Likewise for locals "label1",
	"label2", "jump_label".
	(ix86_expand_sse_compare_and_jump): Likewise for return type and
	local "label".
	(ix86_expand_lfloorceil): Likewise for local "label".
	(ix86_expand_rint): Likewise.
	(ix86_expand_floorceildf_32): Likewise.
	(ix86_expand_floorceil): Likewise.
	(ix86_expand_rounddf_32): Likewise.
	(ix86_expand_trunc): Likewise.
	(ix86_expand_truncdf_32): Likewise.
	(ix86_expand_round): Likewise.

From-SVN: r214443
2014-08-25 17:32:12 +00:00
David Malcolm
e7041fccb2 config/h8300: Use rtx_insn
gcc/
	* config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
	first param from rtx to rtx_insn *.
	(h8300_insn_length_from_table): Likewise.
	* config/h8300/h8300.c (F): Likewise for return type and param
	"x".
	(Fpa): Add a checked cast to rtx_insn *.
	(h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
	rtx_insn *.
	(final_prescan_insn): Likewise for param "insn".
	(h8300_binary_length): Likewise.
	(h8300_insn_length_from_table): Likewise.

From-SVN: r214442
2014-08-25 17:23:42 +00:00
David Malcolm
bcfba653d9 config/epiphany: Use rtx_insn
gcc/
	* config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
	Strengthen first param "insn" from rtx to rtx_insn *.

	* config/epiphany/epiphany.c (epiphany_final_prescan_insn):
	Likewise.
	(frame_insn): Likewise for return type.  Introduce local "insn"
	for use in place of local "x" for use as an rtx_insn *.
	(frame_move_insn): Strengthen return type from rtx to rtx_insn *.
	(epiphany_expand_prologue): Likewise for local "insn".
	* config/epiphany/mode-switch-use.c (insert_uses): Likewise.
	* config/epiphany/resolve-sw-modes.c
	(pass_resolve_sw_modes::execute): Likewise for locals "insn" and
	"seq".

From-SVN: r214441
2014-08-25 17:16:51 +00:00
David Malcolm
aa4e645e76 config/c6x: Use rtx_insn
gcc/
	* config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
	param from rtx to rtx_insn *.
	(c6x_final_prescan_insn): Likewise for first param.

	* config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
	(c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
	(c6x_expand_compare): Strengthen local "insns" from rtx to
	rtx_insn *.
	(c6x_get_unit_specifier): Likewise for param "insn".
	(c6x_print_unit_specifier_field): Likewise.
	(c6x_final_prescan_insn): Likewise.
	(emit_add_sp_const): Likewise for local "insn".
	(c6x_expand_prologue): Likewise.

From-SVN: r214440
2014-08-25 17:10:21 +00:00
David Malcolm
bd96e53ce7 config/bfin: Use rtx_insn
gcc/
	* config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
	param 1 from rtx to rtx_insn *.
	* config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
	the various locals named "insn".
	(expand_epilogue_reg_restore): Likewise.
	(frame_related_constant_load): Likewise.
	(add_to_reg): Likewise.
	(emit_link_insn): Likewise.
	(do_link): Likewise.
	(expand_interrupt_handler_prologue): Likewise.
	(branch_dest): Likewise for param "branch".
	(asm_conditional_branch): Likewise for param "insn".
	(gen_one_bundle): Likewise for elements of param "slot" and local
	"t".
	(bfin_gen_bundles): Likewise for locals "insn", "next" and
	elements of local "slot".
	(reorder_var_tracking_notes): Likewise for locals "insn", "next",
	"queue", "next_queue", "prev".
	(workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
	(add_sched_insns_for_speculation): Likewise for local "insn".

From-SVN: r214439
2014-08-25 17:04:31 +00:00
David Malcolm
98024b4e44 config/avr: Use rtx_insn
gcc/
	* config/avr/avr-protos.h (output_movqi): Strengthen first param
	from rtx to rtx_insn *.
	(output_movhi): Likewise.
	(output_movsisf): Likewise.
	(avr_out_tstsi): Likewise.
	(avr_out_tsthi): Likewise.
	(avr_out_tstpsi): Likewise.
	(avr_out_compare): Likewise.
	(avr_out_compare64): Likewise.
	(avr_out_movpsi): Likewise.
	(ashlqi3_out): Likewise.
	(ashlhi3_out): Likewise.
	(ashlsi3_out): Likewise.
	(ashrqi3_out): Likewise.
	(ashrhi3_out): Likewise.
	(ashrsi3_out): Likewise.
	(lshrqi3_out): Likewise.
	(lshrhi3_out): Likewise.
	(lshrsi3_out): Likewise.
	(avr_out_ashlpsi3): Likewise.
	(avr_out_ashrpsi3): Likewise.
	(avr_out_lshrpsi3): Likewise.
	(avr_out_fract): Likewise.
	(avr_out_sbxx_branch): Likewise.
	(avr_out_round): Likewise.
	(avr_out_xload): Likewise.
	(avr_out_movmem): Likewise.
	(adjust_insn_length): Likewise.
	(avr_out_lpm): Likewise.
	(reg_unused_after): Likewise.
	(_reg_unused_after): Likewise.
	(avr_jump_mode): Likewise for second param.
	(jump_over_one_insn): Likewise for first param.
	(avr_final_prescan_insn): Likewise.
	(out_shift_with_cnt): Likewise for second param.

	* config/avr/avr.c (get_sequence_length): Likewise for param
	"insns" and local "insn".
	(emit_push_byte): Likewise for local "insn".
	(emit_push_sfr): Likewise.
	(avr_prologue_setup_frame): Likewise for locals "insn",
	"fp_plus_insns", "sp_plus_insns".
	(avr_expand_epilogue): Likewise for local "fp_plus_insns",
	"sp_plus_insns".
	(avr_jump_mode): Likewise for param "insn".
	(avr_final_prescan_insn): Likewise.
	(avr_find_unused_d_reg): Likewise.
	(avr_out_lpm_no_lpmx): Likewise.
	(avr_out_lpm): Likewise.
	(avr_out_xload): Likewise.
	(output_movqi): Likewise.
	(output_movhi): Likewise.
	(out_movqi_r_mr): Likewise.
	(out_movhi_r_mr): Likewise.
	(out_movsi_r_mr): Likewise.
	(out_movsi_mr_r): Likewise.
	(output_movsisf): Likewise.
	(avr_out_load_psi): Likewise.
	(avr_out_store_psi): Likewise.
	(avr_out_movpsi): Likewise.
	(out_movqi_mr_r): Likewise.
	(avr_out_movhi_mr_r_xmega): Likewise.
	(out_movhi_mr_r): Likewise.
	(compare_condition): Likewise for param "insn" and local "next".
	(compare_sign_p): Likewise for param "insn".
	(compare_diff_p): Likewise.
	(compare_eq_p): Likewise.
	(avr_out_compare): Likewise.
	(avr_out_compare64): Likewise.
	(avr_out_tsthi): Likewise.
	(avr_out_tstpsi): Likewise.
	(avr_out_tstsi): Likewise.
	(out_shift_with_cnt): Likewise.
	(ashlqi3_out): Likewise.
	(ashlhi3_out): Likewise.
	(avr_out_ashlpsi3): Likewise.
	(ashlsi3_out): Likewise.
	(ashrqi3_out): Likewise.
	(ashrhi3_out): Likewise.
	(avr_out_ashrpsi3): Likewise.
	(ashrsi3_out): Likewise.
	(lshrqi3_out): Likewise.
	(lshrhi3_out): Likewise.
	(avr_out_lshrpsi3): Likewise.
	(lshrsi3_out): Likewise.
	(avr_out_fract): Likewise.
	(avr_out_round): Likewise.
	(avr_adjust_insn_length): Likewise.
	(reg_unused_after): Likewise.
	(_reg_unused_after): Likewise.
	(avr_compare_pattern): Likewise.
	(avr_reorg_remove_redundant_compare): Likewise for param "insn1"
	and locals "branch1", "branch2", "insn2", "jump".
	(avr_reorg): Likewise for local "insn".
	(avr_2word_insn_p): Likewise for param "insn".
	(jump_over_one_insn_p): Likewise.
	(avr_out_sbxx_branch): Likewise.
	(avr_out_movmem): Likewise.

From-SVN: r214438
2014-08-25 16:58:24 +00:00
David Malcolm
81e3f921e4 config/arm: Use rtx_insn and rtx_code_label
gcc/
	* config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
	param from rtx to rtx_insn *.
	(thumb1_final_prescan_insn): Likewise.
	(thumb2_final_prescan_insn): Likewise.

	* config/arm/arm.c (emit_set_insn): Strengthen return type from
	rtx to rtx_insn *.
	(struct minipool_node): Likewise for field "insn".
	(dump_minipool): Likewise for param "scan".
	(create_fix_barrier): Likewise for local "from".  Strengthen local
	"label" from rtx to rtx_code_label *.
	(push_minipool_barrier): Strengthen param "insn" from rtx to
	rtx_insn *.
	(push_minipool_fix): Likewise.
	(note_invalid_constants): Likewise.
	(thumb2_reorg): Likewise for local "insn".
	(arm_reorg): Likewise.
	(thumb2_final_prescan_insn): Likewise for param
	"insn" and local "first_insn".
	(arm_final_prescan_insn): Likewise for param "insn" and locals
	"start_insn", "this_insn".
	(arm_debugger_arg_offset): Likewise for param "insn".
	(thumb1_emit_multi_reg_push): Likewise for return type and local
	"insn".
	(thumb1_final_prescan_insn): Likewise for param "insn".
	(thumb_far_jump_used_p): Likewise for local "insn".
	(thumb1_expand_prologue): Likewise.
	(arm_expand_epilogue_apcs_frame): Likewise.
	(arm_expand_epilogue): Likewise for locals "insn", "tmp".
	(arm_split_compare_and_swap): Strengthen locals "label1", "label2"
	from rtx to rtx_code_label *.
	(arm_split_atomic_op): Likewise for local "label".
	(arm_emit_coreregs_64bit_shift): Likewise for local "done_label".

From-SVN: r214437
2014-08-25 16:41:29 +00:00
David Malcolm
b3458f6117 config/arc: Use rtx_insn
gcc/
	* config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
	first param from rtx to rtx_insn *.
	(arc_verify_short): Likewise.
	(arc_short_long): Likewise.
	(arc_need_delay): Likewise.

	* config/arc/arc.c (struct arc_ccfsm): Likewise for field
	"target_insn".
	(arc_ccfsm_advance): Likewise for param "insn" and locals
	"start_insn", "this_insn".
	(arc_ccfsm_record_condition): Likewise for local "seq_insn".
	(arc_ccfsm_post_advance): Likewise for param "insn".
	(arc_next_active_insn): Likewise for return type and param "insn".
	Convert NULL_RTX to NULL as appropriate.  Add a checked cast.
	(arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
	(output_short_suffix): Likewise for local "insn".
	(arc_final_prescan_insn): Likewise for param "insn".  Remove
	now-redundant checked cast.
	(arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
	"lp_simple", "next", "mov", "scan", "link_insn" from rtx to
	rtx_insn *.  Add a checked cast.  Introduce local "lc_set_insn"
	for use where lc_set became an insn.
	(arc_adjust_insn_length): Strengthen locals "prev", "succ" from
	rtx to rtx_insn *.
	(arc_get_insn_variants): Likewise for local "prev".
	(arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
	"next".
	(arc_predicate_delay_insns): Likewise for local "insn".
	(arc_pad_return): Likewise for local "prev".  For now, add a
	checked cast when extracting the insn from "final_sequence".
	(arc_short_long): Likewise for param "insn".
	(arc_need_delay): Likewise for param "insn" and local "next".
	(arc_label_align): Likewise for locals "prev", "next".

From-SVN: r214436
2014-08-25 16:36:54 +00:00