Commit Graph

132307 Commits

Author SHA1 Message Date
David Malcolm eb92d49a91 Tweak to dse.c
gcc/
2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* dse.c (dse_step6): Strengthen local "rinsn" from rtx to
	rtx_insn *.

From-SVN: r214549
2014-08-26 20:43:14 +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 f57aa6b04a Various scheduling strengthenings
gcc/
2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
	to rtx_insn *.
	(struct reg_use_data): Likewise for field "insn".
	(insn_cost): Likewise for param.
	(real_insn_for_shadow): Likewise for return type and param.
	(increase_insn_priority): Likewise for param 1.
	(debug_dependencies): Likewise for both params.

	* haifa-sched.c (insn_delay): Likewise for param "insn".
	(real_insn_for_shadow): Likewise for return type and param "insn".
	(update_insn_after_change): Likewise for param "insn".
	(recompute_todo_spec): Likewise for param "next" and locals "pro",
	"other".
	(insn_cost): Likewise for param "insn".
	(increase_insn_priority): Likewise.
	(calculate_reg_deaths): Likewise.
	(setup_insn_reg_pressure_info): Likewise.
	(model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
	(model_index): Strengthen param "insn" from rtx to rtx_insn *.
	(model_recompute): Likewise.
	(must_restore_pattern_p): Likewise for param "next".
	(model_excess_cost): Likewise for param "insn".
	(queue_remove): Likewise.
	(adjust_priority): Likewise for param "prev".
	(update_register_pressure): Likewise for param "insn".
	(setup_insn_max_reg_pressure): Likewise for local "insn".
	(update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
	(model_add_to_schedule): Likewise.
	(model_reset_queue_indices): Likewise for local "insn".
	(unschedule_insns_until): Strengthen local "recompute_vec" from
	auto_vec<rtx> to auto_vec<rtx_insn *>.  Strengthen locals "last",
	"con" from rtx to rtx_insn *.
	(restore_last_backtrack_point): Likewise for both locals "x". Add
	checked casts.
	(estimate_insn_tick): Likewise for param "insn".
	(commit_schedule): Likewise for params "prev_head", "tail" and
	local "x".
	(verify_shadows): Likewise for locals "i1", "i2".
	(dump_insn_stream): Likewise for params "head", "tail" and locals
	"next_tail", "insn".
	(schedule_block): Likewise for locals "insn", "x".  Add a checked
	cast.
	(fix_inter_tick): Likewise for params "head", "tail".
	(create_check_block_twin): Likewise for local "jump".
	(haifa_change_pattern): Likewise for param "insn".
	(haifa_speculate_insn): Likewise.
	(dump_new_block_header): Likewise for params "head", "tail".
	(fix_jump_move): Likewise for param "jump".
	(move_block_after_check): Likewise.
	(sched_init_insn_luid): Likewise for param "insn".
	(sched_init_luids): Likewise for local "insn".
	(insn_luid): Likewise for param "insn".
	(init_h_i_d): Likewise.
	(haifa_init_h_i_d): Likewise for local "insn".
	(haifa_init_insn): Likewise for param "insn".
	* sched-deps.c (add_dependence): Likewise for local "real_pro",
	"other".
	(create_insn_reg_use): Likewise for param "insn".
	(setup_insn_reg_uses): Likewise.  Add a checked cast.
	* sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
	"tail" from rtx to rtx_insn *.
	* sched-rgn.c (void debug_dependencies): Likewise, also for locals
	"insn", "next_tail".

From-SVN: r214547
2014-08-26 20:32:42 +00:00
David Malcolm 40a243d452 Use rtx_insn in more places in haifa-sched.c
gcc/
2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* haifa-sched.c (struct model_insn_info): Strengthen field "insn"
	from rtx to rtx_insn *.
	(model_add_to_schedule): Likewise for locals "start", "end",
	"iter".

From-SVN: r214545
2014-08-26 19:52:49 +00:00
David Malcolm 5d34b05026 duplicate_insn_chain accepts rtx_insn
gcc/
2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
	rtx_insn *.
	* cfgrtl.c (duplicate_insn_chain): Likewise for  params "from",
	"to" and locals "insn", "next", "copy".  Remove now-redundant
	checked cast.

From-SVN: r214544
2014-08-26 19:51:02 +00:00
Jason Merrill 71d64cd435 re PR middle-end/58624 (gcc internal compiler error: Segmentaion fault in insert_to_assembler_name_hash)
PR c++/58624
	* pt.c (tsubst_decl) [VAR_DECL]: Copy TLS model.
	(tsubst_copy_and_build) [VAR_DECL]: Use TLS wrapper.
	* semantics.c (finish_id_expression): Don't call TLS wrapper in a
	template.

From-SVN: r214543
2014-08-26 15:39:36 -04:00
David Malcolm 61aa0978e2 Various condition-handling calls
gcc/
2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
	rtx_insn * and param 4 from rtx * to rtx_insn **.
	(get_condition): Strengthen param 1 from rtx to rtx_insn * and
	param 2 from rtx * to rtx_insn **.

	* df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
	rtx_insn * and final param from rtx * to rtx_insn **.

	* cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
	from rtx to rtx_insn *.
	(try_head_merge_bb): Likewise for both locals named "move_upto".
	* df-problems.c (can_move_insns_across): Likewise for params
	"from", "to", "across_from", "across_to" and locals "insn",
	"next", "max_to".  Strengthen param "pmove_upto" from rtx * to
	rtx_insn **.
	* ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
	from rtx to rtx_insn *.
	(noce_get_alt_condition): Strengthen param "earliest" from rtx *
	to rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
	(noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
	rtx_insn *.
	(noce_try_abs): Likewise.
	(noce_get_condition): Likewise for param "jump".  Strengthen param
	"earliest" from rtx * to rtx_insn **.
	(noce_find_if_block): Strengthen local "cond_earliest" from rtx to
	rtx_insn *.
	(find_cond_trap): Likewise.
	(dead_or_predicable): Likewise for local "earliest".
	* loop-iv.c (check_simple_exit): Likewise for local "at".  Add
	checked cast.
	* rtlanal.c (canonicalize_condition): Likewise for param "insn"
	and local "prev".  Strengthen param "earliest" from rtx * to
	rtx_insn **.
	(get_condition): Strengthen param "jump" from rtx to rtx_insn *
	Strengthen param "earliest" from rtx * to rtx_insn **.

From-SVN: r214542
2014-08-26 19:38:42 +00:00
David Malcolm 51c7dd9868 Use rtx_insn in more places in fwprop.c
gcc/
2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* fwprop.c (local_ref_killed_between_p): Strengthen params "from",
	"to" and local "insn" from rtx to rtx_insn *.

From-SVN: r214541
2014-08-26 19:35:51 +00:00
David Malcolm 5a59b40881 Use rtx_insn in more places in sel-sched.c
gcc/
2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
	from rtx to rtx_insn *.
	(need_nop_to_preserve_insn_bb): Likewise for param "insn".
	(code_motion_path_driver): Likewise for local "last_insn".
	(simplify_changed_insns): Likewise for local "insn".

From-SVN: r214540
2014-08-26 19:33:56 +00:00
David Malcolm fee3e72cdf Strengthen various insn emission functions
gcc/
2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (push_to_sequence): Strengthen param from rtx to
	rtx_insn *.
	(push_to_sequence2): Likewise for both params.
	(delete_insns_since): Likewise for param.
	(reorder_insns_nobb): Likewise for all three params.
	(set_new_first_and_last_insn): Likewise for both params.

	* emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
	rtx_insn *.  Remove now-redundant cast.
	(set_last_insn): Likewise.

	* builtins.c (expand_builtin_return): Strengthen local
	"call_fusage" from rtx to rtx_insn *.
	* cfgrtl.c (create_basic_block_structure): Likewise for local
	"after".
	* emit-rtl.c (set_new_first_and_last_insn): Likewise for params
	"first", "last" and local "insn".
	(delete_insns_since): Likewise for param "from".
	(reorder_insns_nobb): Likewise for params "from", "to", "after"
	and local "x".
	(push_to_sequence): Likewise for param "first" and local "last".
	(push_to_sequence2): Likewise for params "first" and "last".
	* lra.c (emit_add3_insn): Likewise for local "last".
	(lra_emit_add): Likewise.
	* lra-constraints.c (base_to_reg): Likewise for locals "insn",
	"last_insn".
	(process_address_1): Likewise for locals "insn", last".
	* modulo-sched.c (ps_first_note): Likewise for return type.
	* optabs.c (expand_binop_directly): Likewise for param "last".

From-SVN: r214539
2014-08-26 19:31:29 +00:00
David Malcolm db76cf1e63 get_last_insn_anywhere returns an rtx_insn
gcc/
2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
	to rtx_insn*.
	* emit-rtl.c (get_last_insn_anywhere): Likewise.

From-SVN: r214538
2014-08-26 19:25:31 +00:00
David Malcolm 0926539cb1 Strengthen fields in struct sequence_stack and struct emit_status
gcc/
2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* function.h (struct sequence_stack): Strengthen fields "first"
	and "last" from rtx to rtx_insn *.
	(struct emit_status): Likewise for fields "x_first_insn" and
	"x_last_insn".

	* emit-rtl.h (get_insns): Remove now-redundant checked cast.
	(set_first_insn): Add checked cast.
	(get_last_insn): Remove now-redundant checked cast.
	(set_last_insn): Add checked cast.

	* config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
	"saved_first" and "saved_last" from rtx to rtx_insn *.

From-SVN: r214537
2014-08-26 19:20:16 +00:00
David Malcolm 9152e0aa1b Params of add_insn and unlink_insn_chain
gcc/
2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
	(unlink_insn_chain): Strengthen both params from rtx to
	rtx_insn *.

	* cfgrtl.c (cfg_layout_function_header): Likewise for this
	variable.
	(unlink_insn_chain): Likewise for params "first" and "last".
	Remove now-redundant checked cast.
	(record_effective_endpoints): Replace use of NULL_RTX with NULL.
	(fixup_reorder_chain): Strengthen local "insn" from rtx to
	rtx_insn *.
	* emit-rtl.c (link_insn_into_chain): Likewise for all three
	params.
	(add_insn): Likewise for param "insn" and local "prev".
	(add_insn_after_nobb): Likewise for both params and local "next".
	(add_insn_before_nobb): Likewise for both params and local "prev".
	(add_insn_after): Rename param "after" to "uncast_after",
	introducing local "after" with another checked cast.
	(add_insn_before): Rename params "insn" and "before", giving them
	"uncast_" prefixes, adding the old names back using checked casts.
	(emit_note_after): Likewise for param "after".
	(emit_note_before): Likewise for param "before".
	(emit_label): Add a checked cast.

From-SVN: r214536
2014-08-26 19:12:49 +00:00
David Malcolm 466659612b cselib_record_sets_hook takes an rtx_insn
gcc/
	* cselib.h (cselib_record_sets_hook):  Strengthen initial param
	"insn" from rtx to rtx_insn *.

	* cselib.c (cselib_record_sets_hook): Likewise.

	* var-tracking.c (add_with_sets): Likewise, renaming back from
	"uncast_insn" to "insn" and eliminating the checked cast from rtx
	to rtx_insn *.

From-SVN: r214535
2014-08-26 19:03:10 +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 e00022e971 Tighten up params of create_basic_block_structure
gcc/
	* basic-block.h (create_basic_block_structure): Strengthen params
	1 "head" and 2 "end" from rtx to rtx_insn *.
	* cfgrtl.c (create_basic_block_structure): Likewise.
	(rtl_create_basic_block): Update casts from void * to rtx to
	rtx_insn *, so that we can pass them as rtx_insn * to
	create_basic_block_structure.
	* sel-sched-ir.c (sel_create_basic_block): Likewise.

From-SVN: r214533
2014-08-26 18:34:34 +00:00
Thomas Koenig 6c7069d663 frontend_passes (expr_array): Replace by vec template.
2014-08-26  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* frontend_passes (expr_array):  Replace by vec template.
	(expr_size):  Remove.
	(expr_count):  Remove.
	(doloop_list):  Replace by vec template.
	(doloop_size):  Remove.
	(gfc_run_passes):  Adjust to use of vec template.
	(cfe_register_funcs):  Likewise.
	(cfe_expr_0):  Likewise.
	(doloop_code):  Likewise.

From-SVN: r214532
2014-08-26 18:25:49 +00:00
David Malcolm dd60a84ce0 cselib and incdec
gcc/
	* rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
	rtx_insn **.
	(check_for_inc_dec): Strengthen param "insn" from rtx to
	rtx_insn *.

	* cselib.h (cselib_process_insn): Likewise.

	* cselib.c (cselib_record_sets): Likewise.
	(cselib_process_insn): Likewise.

	* dse.c (struct insn_info): Likewise for field "insn".
	(check_for_inc_dec_1): Likewise for local "insn".
	(check_for_inc_dec): Likewise for param "insn".
	(scan_insn): Likewise.
	(dse_step1): Likewise for local "insn".

	* rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
	rtx_insn **.  Use for_each_rtx_in_insn rather than for_each_rtx.

From-SVN: r214531
2014-08-26 18:03:09 +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 de8ea9631c sel-sched-ir.h: Make ilist_t work on insn_t rather than rtx
gcc/
	* sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
	ilist_t, not _xlist_t;
	(ILIST_INSN): Define in terms of new union field "insn".
	(ILIST_NEXT): Define in terms of _LIST_NEXT rather than
	_XLIST_NEXT.
	(struct _list_node): Add new field "insn" to the union, of type
	insn_t.
	(ilist_add): Replace macro with an inline function, requiring an
	insn_t.
	(ilist_remove): Define this macro directly in terms of
	_list_remove, rather than indirectly via _xlist_remove.
	(ilist_clear): Likewise, in terms of _list_clear rather than
	_xlist_clear.
	(ilist_is_in_p): Replace macro with an inline function, requiring
	an insn_t.
	(_list_iter_cond_insn): New function.
	(ilist_iter_remove): Define this macro directly in terms of
	_list_iter_remove, rather than indirectly via _xlist_iter_remove.
	(ilist_iterator): Define directly in terms of _list_iterator
	rather than indirectly through _xlist_iterator.
	(FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
	than in terms of _FOR_EACH_X.
	(FOR_EACH_INSN_1): Likewise.

From-SVN: r214527
2014-08-26 17:38:23 +00:00
Joseph Myers c218f6e89d Fix ARM ICE for register var asm ("pc") (PR target/60606).
PR target/60606
	PR target/61330
	* varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
	DECL_HARD_REGISTER and return for invalid register specifications.
	* cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
	DECL_HARD_REGISTER, call expand_one_error_var.
	* config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
	CC_REGNUM with non-MODE_CC modes.
	(arm_regno_class): Return NO_REGS for PC_REGNUM.

testsuite:
	* gcc.dg/torture/pr60606-1.c, gcc.target/arm/pr60606-2.c,
	gcc.target/arm/pr60606-3.c, gcc.target/arm/pr60606-4.c: New tests.

From-SVN: r214526
2014-08-26 18:06:31 +01:00
H.J. Lu 43f4a446c2 Properly set gcc_build_dir for in-tree build
PR bootstrap/62260
	* Makefile.am (gcc_build_dir): Set to @gcc_build_dir@.
	* configure.ac (gcc_build_dir): Set and AC_SUBST according to
	$host_subdir.
	* Makefile.in: Regenerated.
	* configure: Likewise.

From-SVN: r214524
2014-08-26 07:47:15 -07:00
Marek Polacek 13dfd55471 re PR c/61271 (10 * possible coding error with logical not (!))
PR c/61271
	* sel-sched-ir.c (make_regions_from_the_rest): Fix condition.

From-SVN: r214523
2014-08-26 14:24:15 +00:00
Dominik Vogt d20cd50684 bessel_7.f90: Bump allowed precision to avoid failure on s390*-*-linux-gnu.
2014-08-26  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* gfortran.dg/bessel_7.f90: Bump allowed precision to avoid
	failure on s390*-*-linux-gnu.

From-SVN: r214520
2014-08-26 14:09:14 +00:00
Evandro Menezes 8d805e0295 aarch64.c (generic_addrcost_table): Delete qi cost; add di cost.
2014-08-26  Evandro Menezes <e.menezes@samsung.com>

	* config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
	qi cost; add di cost.
	(cortexa57_addrcost_table): Likewise.

From-SVN: r214503
2014-08-26 12:10:09 +00:00
Jonathan Wakely 7e51aabc29 Whitespace fixes in libstdc++-v3/ChangeLog
From-SVN: r214501
2014-08-26 12:44:39 +01:00
Marek Polacek 40de81283e re PR c/61271 (10 * possible coding error with logical not (!))
PR c/61271
	* expr.c (is_aligning_offset): Remove logical not.

From-SVN: r214496
2014-08-26 09:35:10 +00:00
Marek Polacek ccc089dca7 re PR c/61271 (10 * possible coding error with logical not (!))
PR c/61271
	* tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
	LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.

From-SVN: r214493
2014-08-26 09:21:18 +00:00
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