Commit Graph

132374 Commits

Author SHA1 Message Date
David Malcolm
f90af2e020 postreload.c: Use rtx_insn (also touches rtl.h and cprop.c)
gcc/
	* rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
	rtx_insn *.

	* cprop.c (fis_get_condition): Likewise.

	* postreload.c (reload_cse_regs): Likewise for param "first".
	(reload_cse_simplify): Likewise for param "insn".
	(reload_cse_regs_1): Likewise for local "insn".
	(reload_cse_simplify_set): Likewise for param "insn".
	(reload_cse_simplify_operands): Likewise.
	(struct reg_use): Likewise for field "insn".
	(reload_combine_purge_insn_uses): Likewise for param "insn".
	(fixup_debug_insns): Likewise for params "from", "to" and local
	"insn".
	(try_replace_in_use): Likewise for local "use_insn".
	(reload_combine_recognize_const_pattern): Likewise for param
	"insn" and locals "add_moved_after_insn", "use_insn".
	(reload_combine_recognize_pattern): Likewise for param "insn" and
	local "prev".
	(reload_combine): Likewise for locals "insn", "prev".
	(reload_combine_note_use): Likewise for param "insn".
	(move2add_use_add2_insn): Likewise.
	(move2add_use_add3_insn): Likewise.
	(reload_cse_move2add): Likewise, also for local "next".
	(move2add_note_store): Likewise for local "insn".

From-SVN: r214358
2014-08-22 19:38:50 +00:00
Manuel López-Ibáñez
b65eff4679 re PR c++/57709 (-Wshadow is too strict / has false positives)
gcc/cp/ChangeLog:

2014-08-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/57709
	* name-lookup.c (pushdecl_maybe_friend_1): Do not warn if a
	declaration shadows a function declaration, unless the former
	declares a function, pointer to function or pointer to member
	function, because this is a common and valid case in real-world
	code.
	* cp-tree.h (TYPE_PTRFN_P,TYPE_REFFN_P,TYPE_PTRMEMFUNC_P):
	Improve description.

gcc/testsuite/ChangeLog:

2014-08-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/57709
	* g++.dg/Wshadow.C: New test.

From-SVN: r214357
2014-08-22 19:12:46 +00:00
David Malcolm
6c6d76bec5 postreload-gcse.c: Use rtx_insn in various places
gcc/
	* postreload-gcse.c (struct occr): Strengthen field "insn" from
	rtx to rtx_insn *.
	(struct unoccr): Likewise.
	(struct modifies_mem): Likewise.
	(alloc_mem): Likewise for local "insn".
	(insert_expr_in_table): Likewise for param "insn".
	(dump_expr_hash_table_entry): Likewise for local "insn".
	(oprs_unchanged_p): Likewise for param "insn".
	(load_killed_in_block_p): Likewise for local "setter".
	(record_last_reg_set_info): Likewise for param "insn".
	(record_last_reg_set_info_regno): Likewise.
	(record_last_mem_set_info): Likewise.
	(record_last_set_info): Likewise for local "last_set_insn".
	(record_opr_changes): Likewise for param "insn".
	(hash_scan_set): Likewise.
	(compute_hash_table): Likewise for local "insn".
	(get_avail_load_store_reg): Likewise for param "insn".
	(eliminate_partially_redundant_load): Likewise, also for locals
	"avail_insn", "next_pred_bb_end".  Replace use of NULL_RTX with
	RTX for insns.
	(eliminate_partially_redundant_loads): Likewise for local "insn".

From-SVN: r214356
2014-08-22 19:05:50 +00:00
David Malcolm
38295e01e2 optabs.c: Use rtx_insn and rtx_code_label
gcc/
	* optabs.c (expand_doubleword_shift): Strengthen local "insn" from
	rtx to rtx_insn *.
	(expand_binop): Likewise for locals "entry_last", "last", "insns"
	(expand_twoval_unop): Likewise for locals entry_last", "last".
	(expand_twoval_binop): Likewise.
	(expand_twoval_binop_libfunc): Likewise for local "insns".
	(widen_leading): Likewise for local "last".
	(expand_doubleword_clz): Likewise for local "seq".  Strengthen
	locals "hi0_label", "after_label" from rtx to rtx_code_label *.
	(widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
	(expand_parity): Likewise for locals "last" and "seq".
	(expand_ffs): Likewise for local "seq".  Strengthen local
	"nonzero_label" from rtx to rtx_code_label *.
	(expand_absneg_bit): Strengthen local "insns" from rtx to
	rtx_insn *.
	(expand_unop_direct): Likewise for local "last".
	(expand_unop): Likewise for locals "last", "insns".
	(expand_abs_nojump): Likewise for local "last".
	(expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
	(expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
	rtx_insn *.
	(expand_copysign_absneg): Strengthen local "label" from rtx to
	rtx_code_label *.
	(expand_copysign_bit): Strengthen local "insns" from rtx to
	rtx_insn *.
	(struct no_conflict_data): Likewise for fields "first", "insn".
	(emit_libcall_block_1): Likewise for param "insns" and locals
	"next", "last", "insn".
	(emit_libcall_block): For now, add a checked cast to rtx_insn *
	on "insns" when invoking emit_libcall_block_1.  Ultimately we
	want to strengthen insns itself.
	(prepare_cmp_insn): Strengthen local "last" from rtx to
	rtx_insn *.
	(emit_cmp_and_jump_insn_1): Likewise for local "insn".
	(prepare_float_lib_cmp): Likewise for local "insns".
	(emit_conditional_move): Likewise for local "last".
	(emit_conditional_add): Likewise.
	(have_sub2_insn): Likewise for local "seq".
	(expand_float): Likewise for local "insns".  Strengthen locals
	"label", "neglabel" from rtx to rtx_code_label *.
	(expand_fix): Likewise for locals "last", "insn", "insns" (to
	rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
	(expand_fixed_convert): Likewise for local "insns" (to
	rtx_insn *).
	(expand_sfix_optab): Likewise for local "last".
	(expand_compare_and_swap_loop): Strengthen local "label" from rtx
	to rtx_code_label *.
	(maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
	from rtx to rtx_insn *.
	(expand_atomic_fetch_op): Likewise for local "insn".
	(maybe_legitimize_operand_same_code): Likewise for local "last".
	(maybe_legitimize_operands): Likewise.

From-SVN: r214355
2014-08-22 19:03:32 +00:00
David Malcolm
6210ec61d9 modulo-sched.c: Use rtx_insn in various places
gcc/
	* modulo-sched.c (struct ps_reg_move_info): Strengthen field
	"insn" from rtx to rtx_insn *.
	(ps_rtl_insn): Likewise for return type.
	(doloop_register_get): Likewise for params "head", "tail" and
	locals "insn", "first_insn_not_to_check".
	(schedule_reg_move): Likewise for local "this_insn".
	(schedule_reg_moves): Add a checked cast to rtx_insn * to result
	of gen_move_insn for now.
	(reset_sched_times): Strengthen local "insn" from rtx to
	rtx_insn *.
	(permute_partial_schedule): Likewise.
	(duplicate_insns_of_cycles): Likewise for local "u_insn".
	(dump_insn_location): Likewise for param "insn".
	(loop_canon_p): Likewise for local "insn".
	(sms_schedule): Likewise.
	(print_partial_schedule): Likewise.
	(ps_has_conflicts): Likewise.

From-SVN: r214354
2014-08-22 19:00:05 +00:00
Jason Merrill
cea83a3ac8 re PR c++/62129 (internal compiler error: in output_constant, at varasm.c:4755)
PR c++/62129
	* class.c (outermost_open_class): Fix logic.
	* decl.c (complete_vars): Fix logic.

From-SVN: r214353
2014-08-22 14:49:18 -04:00
David Malcolm
52d251b522 get_ebb_head_tail works with rtx_insn
gcc/
	* sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
	"tailp" from rtx * to rtx_insn **.

	* ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
	from rtx to rtx_insn *.
	* haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
	"tailp" from rtx * to rtx_insn **.  Strengthen locals "beg_head",
	"beg_tail", "end_head", "end_tail", "note", "next", "prev" from
	rtx to rtx_insn *.
	* modulo-sched.c (const_iteration_count): Strengthen return type
	and locals "insn", "head", "tail" from rtx to rtx_insn *.  Replace
	use of NULL_RTX with NULL when working with insns.
	(loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
	to rtx_insn *.
	(sms_schedule): Likewise.
	* sched-rgn.c (init_ready_list): Likewise, also for locals
	"src_head" and "src_next_tail".
	(compute_block_dependences): Likewise.
	(free_block_dependencies): Likewise.
	(debug_rgn_dependencies): Likewise.
	(free_rgn_deps): Likewise.
	(compute_priorities): Likewise.
	(schedule_region): Likewise.
	* sel-sched.c (find_ebb_boundaries): Likewise.

	* config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
	"insn", "next_tail", "head", "tail" from rtx to rtx_insn *.

From-SVN: r214352
2014-08-22 18:47:27 +00:00
Steven Bosscher
f172301ff4 re PR fortran/62135 (ICE with invalid SELECT CASE selector)
fortran/
	PR fortran/62135
	* resolve.c (resolve_select): Fix list traversal in case the
	last element of the CASE list was dropped as unreachable code.

testsuite/
	PR fortran/62135
	* gfortran.dg/pr62135.f90: New test.

From-SVN: r214351
2014-08-22 18:43:50 +00:00
Manuel López-Ibáñez
596e808cf6 c.opt (Wcomment): Use CPP, Var and LangEnabledBy.
gcc/c-family/ChangeLog:

2014-08-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c.opt (Wcomment): Use CPP, Var and LangEnabledBy.
	(Wmultichar): Likewise.
	(Wdate-time): Use C-family languages instead of Common. Use CPP
	and Var.
	* c-opts.c (c_common_handle_option): Do not handle the above
	options here.
	(sanitize_cpp_opts): Likewise.

gcc/testsuite/ChangeLog:

2014-08-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* g++.dg/warn/wdate-time.C: Remove.
	* gcc.dg/wdate-time.c: Move from here...
	* c-c++-common/wdate-time.c: ... to here.

From-SVN: r214350
2014-08-22 18:39:16 +00:00
David Malcolm
1d4555205a mode-switching.c: Use rtx_insn
gcc/
	* mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
	from rtx to rtx_insn *.
	(new_seginfo): Likewise for param "insn".
	(create_pre_exit): Likewise for locals "last_insn",
	"before_return_copy", "return_copy".
	(optimize_mode_switching): Likewise for locals "insn", "ins_pos",
	"mode_set".

From-SVN: r214349
2014-08-22 18:39:08 +00:00
David Malcolm
cfa434f6d2 lra: use rtx_insn
gcc/
	* lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
	from rtx to rtx_insn *.
	(lra_push_insn): Likewise for 1st param.
	(lra_push_insn_and_update_insn_regno_info): Likewise.
	(lra_pop_insn): Likewise for return type.
	(lra_invalidate_insn_data): Likewise for 1st param.
	(lra_set_insn_deleted): Likewise.
	(lra_delete_dead_insn): Likewise.
	(lra_process_new_insns): Likewise for first 3 params.
	(lra_set_insn_recog_data): Likewise for 1st param.
	(lra_update_insn_recog_data): Likewise.
	(lra_set_used_insn_alternative): Likewise.
	(lra_invalidate_insn_regno_info): Likewise.
	(lra_update_insn_regno_info): Likewise.
	(lra_former_scratch_operand_p): Likewise.
	(lra_eliminate_regs_1): Likewise.
	(lra_get_insn_recog_data): Likewise.

	* lra-assigns.c (assign_by_spills): Strengthen local "insn" from
	rtx to rtx_insn *.

	* lra-coalesce.c (move_freq_compare_func): Likewise for locals
	"mv1" and "mv2".
	(substitute_within_insn): New.
	(lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
	rtx_insn *.  Strengthen sorted_moves from rtx * to rxt_insn **.
	Replace call to "substitute" with call to substitute_within_insn.

	* lra-constraints.c (curr_insn): Strengthen from rtx to
	rtx_insn *.
	(get_equiv_with_elimination): Likewise for param "insn".
	(match_reload): Strengthen params "before" and "after" from rtx *
	to rtx_insn **.
	(emit_spill_move): Likewise for return type.  Add a checked cast
	to rtx_insn * on result of gen_move_insn for now.
	(check_and_process_move): Likewise for local "before".  Replace
	NULL_RTX with NULL when referring to insns.
	(process_addr_reg): Strengthen params "before" and "after" from
	rtx * to rtx_insn **.
	(insert_move_for_subreg): Likewise.
	(simplify_operand_subreg): Strengthen locals "before" and "after"
	from rtx to rtx_insn *.
	(process_address_1): Strengthen params "before" and "after" from
	rtx * to rtx_insn **.  Strengthen locals "insns", "last_insn" from
	rtx to rtx_insn *.
	(process_address): Strengthen params "before" and "after" from
	rtx * to rtx_insn **.
	(emit_inc): Strengthen local "last" from rtx to rtx_insn *.
	(curr_insn_transform): Strengthen locals "before" and "after"
	from rtx to rtx_insn *.  Replace NULL_RTX with NULL when referring
	to insns.
	(loc_equivalence_callback): Update cast of "data", changing
	resulting type from rtx to rtx_insn *.
	(substitute_pseudo_within_insn): New.
	(inherit_reload_reg): Strengthen param "insn" from rtx to
	rtx_insn *; likewise for local "new_insns".  Replace NULL_RTX with
	NULL when referring to insns.  Add a checked cast to rtx_insn *
	when using usage_insn to invoke lra_update_insn_regno_info.
	(split_reg): Strengthen param "insn" from rtx to rtx_insn *;
	likewise for locals "restore", "save".  Add checked casts to
	rtx_insn * when using usage_insn to invoke
	lra_update_insn_regno_info and lra_process_new_insns.  Replace
	NULL_RTX with NULL when referring to insns.
	(split_if_necessary): Strengthen param "insn" from rtx to
	rtx_insn *.
	(update_ebb_live_info): Likewise for params "head", "tail" and local
	"prev_insn".
	(get_last_insertion_point): Likewise for return type and local "insn".
	(get_live_on_other_edges): Likewise for local "last".
	(inherit_in_ebb): Likewise for params "head", "tail" and locals
	"prev_insn", "next_insn", "restore".
	(remove_inheritance_pseudos): Likewise for local "prev_insn".
	(undo_optional_reloads): Likewise for local "insn".

	* lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
	"insn".
	(lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
	insns.
	(eliminate_regs_in_insn): Strengthen param "insn" from rtx to
	rtx_insn *.
	(spill_pseudos): Likewise for local "insn".
	(init_elimination): Likewise.
	(process_insn_for_elimination): Likewise for param "insn".

	* lra-lives.c (curr_insn): Likewise.;

	* lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
	(remove_pseudos): Likewise for param "insn".
	(spill_pseudos): Likewise for local "insn".
	(lra_final_code_change): Likewise for locals "insn", "curr".

	* lra.c (lra_invalidate_insn_data): Likewise for param "insn".
	(lra_set_insn_deleted): Likewise.
	(lra_delete_dead_insn): Likewise, and for local "prev".
	(new_insn_reg): Likewise for param "insn".
	(lra_set_insn_recog_data): Likewise.
	(lra_update_insn_recog_data): Likewise.
	(lra_set_used_insn_alternative): Likewise.
	(get_insn_freq): Likewise.
	(invalidate_insn_data_regno_info): Likewise.
	(lra_invalidate_insn_regno_info): Likewise.
	(lra_update_insn_regno_info): Likewise.
	(lra_constraint_insn_stack): Strengthen from vec<rtx> to
	vec<rtx_insn *>.
	(lra_push_insn_1): Strengthen param "insn" from rtx to
	rtx_insn *.
	(lra_push_insn): Likewise.
	(lra_push_insn_and_update_insn_regno_info): Likewise.
	(lra_pop_insn): Likewise for return type and local "insn".
	(push_insns): Likewise for params "from", "to", and local "insn".
	(setup_sp_offset): Likewise for params "from", "last" and locals
	"before", "insn".
	(lra_process_new_insns): Likewise for params "insn", "before",
	"after" and local "last".
	(struct sloc): Likewise for field "insn".
	(lra_former_scratch_operand_p): Likewise for param "insn".
	(remove_scratches): Likewise for locals "insn", "last".
	(check_rtl): Likewise for local "insn".
	(add_auto_inc_notes): Likewise for param "insn".
	(update_inc_notes): Likewise for local "insn".
	(lra): Replace NULL_RTX with NULL when referring to insn.

From-SVN: r214348
2014-08-22 18:36:35 +00:00
David Malcolm
e967cc2f9a lower-subreg.c: Use rtx_insn
gcc/
	* lower-subreg.c (simple_move): Strengthen param "insn" from rtx
	to rtx_insn *.
	(resolve_reg_notes): Likewise.
	(resolve_simple_move): Likewise for return type, param "insn", and
	locals "insns", "minsn".
	(resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
	(resolve_use): Likewise.
	(resolve_debug): Likewise.
	(find_decomposable_shift_zext): Likewise.
	(resolve_shift_zext): Likewise for return type, param "insn", and
	locals "insns", "in".  Eliminate use of NULL_RTX in favor of NULL.
	(decompose_multiword_subregs): Likewise for local "insn",
	"orig_insn", "decomposed_shift", "end".

From-SVN: r214346
2014-08-22 18:20:08 +00:00
David Malcolm
95ecfb261b loop-unroll.c: Use rtx_insn (also touches basic-block.h)
gcc/
	* basic-block.h (basic_block split_edge_and_insert): Strengthen
	param "insns" from rtx to rtx_insn *.

	* loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
	rtx to rtx_insn *.
	(struct iv_to_split): Likewise.
	(loop_exit_at_end_p): Likewise for local "insn".
	(split_edge_and_insert): Likewise for param "insns".
	(compare_and_jump_seq): Likewise for return type, param "cinsn",
	and locals "seq", "jump".
	(unroll_loop_runtime_iterations): Likewise for locals "init_code",
	"branch_code"; update invocations of compare_and_jump_seq to
	eliminate NULL_RTX in favor of NULL.
	(referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
	rtx to rtx_insn *.
	(reset_debug_uses_in_loop): Likewise.
	(analyze_insn_to_expand_var): Likewise for param "insn".
	(analyze_iv_to_split_insn): Likewise.
	(analyze_insns_in_loop): Likewise for local "insn".
	(insert_base_initialization): Likewise for param
	"insn" and local "seq".
	(split_iv): Likewise for param "insn" and local "seq".
	(expand_var_during_unrolling): Likewise for param "insn".
	(insert_var_expansion_initialization): Likewise for local "seq".
	(combine_var_copies_in_loop_exit): Likewise.
	(combine_var_copies_in_loop_exit): Likewise for locals "seq" and
	"insn".
	(maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
	(apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
	"next".

From-SVN: r214345
2014-08-22 18:15:54 +00:00
David Malcolm
1b20d55a51 loop-iv.c: Use rtx_insn (also touches cfgloop.h and loop-unroll.c)
gcc/
	* cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
	rtx_insn *.
	(iv_analyze_result): Likewise.
	(iv_analyze_expr): Likewise.
	(biv_p): Likewise.

	* loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
	local "def_insn" from rtx to rtx_insn *.
	(get_biv_step_1): Likewise for local "insn".
	(iv_analyze_expr): Likewise for param "insn".
	(iv_analyze_def): Likewise for local "insn".
	(iv_analyze_op): Likewise for param "insn".
	(iv_analyze): Likewise.
	(iv_analyze_result): Likewise.
	(biv_p): Likewise.
	(suitable_set_for_replacement): Likewise.
	(simplify_using_initial_values): Likewise for local "insn".
	(iv_number_of_iterations): Likewise for param "insn".
	(check_simple_exit): Add checked cast to rtx_insn when invoking
	iv_number_of_iterations for now (until get_condition is
	strengthened).

	* loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
	"insn" from rtx to rtx_insn *.
	(analyze_insns_in_loop): Likewise for local "insn".

From-SVN: r214344
2014-08-22 18:12:28 +00:00
David Malcolm
89bfd6f5c8 loop-invariant.c: Use rtx_insn in various places
gcc/
	* loop-invariant.c (struct use): Strengthen field "insn" from rtx
	to rtx_insn *.
	(struct invariant): Likewise.
	(hash_invariant_expr_1): Likewise for param "insn".
	(invariant_expr_equal_p): Likewise for param "insn1", "insn2".
	(find_exits): Likewise for local "insn".
	(create_new_invariant): Likewise for param "insn".
	(check_dependencies): Likewise.
	(find_invariant_insn): Likewise.
	(record_uses): Likewise.
	(find_invariants_insn): Likewise.
	(find_invariants_bb): Likewise for local "insn".
	(get_pressure_class_and_nregs): Likewise for param "insn".
	(calculate_loop_reg_pressure): Likewise for local "insn".

From-SVN: r214343
2014-08-22 18:08:51 +00:00
David Malcolm
871eb19323 loop-doloop.c: Use rtx_insn in a few places
gcc/
	* loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
	to rtx_insn *.
	(add_test): Likewise for locals "seq", "jump".
	(doloop_modify): Likewise for locals "sequence", "jump_insn".

From-SVN: r214342
2014-08-22 18:06:16 +00:00
David Malcolm
b47f38a520 jump.c: Use rtx_insn in a few places (also touches rtl.h and cfgexpand.c)
gcc/
	* rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
	rtx_insn *.
	(rebuild_jump_labels_chain): Likewise for param "chain".

	* cfgexpand.c (pass_expand::execute): Add checked cast to
	rtx_insn * when calling rebuild_jump_labels_chain in region where
	we know e->insns.r is non-NULL.

	* jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
	rtx_insn *.
	(rebuild_jump_labels): Likewise.
	(rebuild_jump_labels_chain): Likewise for param "chain".
	(cleanup_barriers): Likewise for locals "insn", "next", "prev".
	(init_label_info): Likewise for param "f".
	(maybe_propagate_label_ref): Likewise for params "jump_insn",
	"prev_nonjump_insn".
	(mark_all_labels): Likewise for param "f" and locals "insn",
	"prev_nonjump_insn".

From-SVN: r214341
2014-08-22 18:03:59 +00:00
David Malcolm
070a1983b3 ira: Use rtx_insn in various places
gcc/
	* ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
	from rtx to rtx_insn *insn.
	(ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
	(ira_add_allocno_copy): Likewise.
	* ira-build.c (find_allocno_copy): Strengthen param "insn" from
	rtx to rtx_insn *.
	(ira_create_copy): Likewise.
	(ira_add_allocno_copy): Likewise.
	(create_bb_allocnos): Likewise for local "insn".
	* ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
	(process_reg_shuffles): Update NULL_RTX to NULL in invocation of
	process_regs_for_copy for rtx_insn * param.
	(add_insn_allocno_copies): Strengthen param "insn" from rtx to
	rtx_insn *insn.  Update NULL_RTX to NULL in invocation of
	process_regs_for_copy for rtx_insn * param.
	(add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
	* ira-costs.c (record_reg_classes): Likewise for param "insn".
	(record_operand_costs): Likewise.
	(scan_one_insn): Likewise for return type, and for param "insn".
	(process_bb_for_costs): Likewise for local "insn".
	(process_bb_node_for_hard_reg_moves): Likewise.
	* ira-emit.c (struct move): Likewise for field "insn".
	(create_move): Eliminate use of NULL_RTX when dealing with an
	rtx_insn *.
	(emit_move_list): Strengthen return type and locals "result",
	"insn" from rtx to rtx_insn *insn.
	(emit_moves): Likewise for locals "insns", "tmp".
	(ira_emit): Likewise for local "insn".
	* ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
	"insn".
	(find_call_crossed_cheap_reg): Likewise.
	(process_bb_node_lives): Likewise for local "insn".
	* ira.c (decrease_live_ranges_number): Likewise.
	(compute_regs_asm_clobbered): Likewise.
	(build_insn_chain): Likewise.
	(find_moveable_pseudos): Likewise, also locals "def_insn",
	"use_insn", "x".  Also strengthen local "closest_uses" from rtx *
	to rtx_insn **.  Add a checked cast when assigning from
	"closest_use" into closest_uses array in a region where we know
	it's a non-NULL insn.
	(interesting_dest_for_shprep): Strengthen param "insn" from rtx
	to rtx_insn *.
	(split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
	"last_interesting_insn", "uin".
	(move_unallocated_pseudos): Likewise for locals "def_insn",
	"move_insn", "newinsn".

From-SVN: r214339
2014-08-22 17:48:40 +00:00
David Malcolm
da66454436 internal-fn.c: Use rtx_insn and rtx_code_label
gcc/
	* internal-fn.c (ubsan_expand_si_overflow_addsub_check):
	Strengthen locals "done_label", "do_error" from rtx to
	rtx_code_label *.
	(ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
	from rtx to rtx_insn *.  Strengthen local "sub_check from rtx to
	rtx_code_label *.
	(ubsan_expand_si_overflow_neg_check): Likewise for locals
	"done_label", "do_error" to rtx_code_label * and local  "last" to
	rtx_insn *.
	(ubsan_expand_si_overflow_mul_check): Likewise for locals
	"done_label", "do_error", "large_op0", "small_op0_large_op1",
	"one_small_one_large", "both_ops_large", "after_hipart_neg",
	"after_lopart_neg", "do_overflow", "hipart_different"  to
	rtx_code_label * and local  "last" to rtx_insn *.

From-SVN: r214338
2014-08-22 17:45:22 +00:00
David Malcolm
44bd200667 init-regs.c: Use rtx_insn
gcc/
	* init-regs.c (initialize_uninitialized_regs): Strengthen locals
	"insn" and "move_insn" from rtx to rtx_insn *.

From-SVN: r214337
2014-08-22 17:42:44 +00:00
David Malcolm
e6ae24bcee ifcvt.c: Use rtx_insn
gcc/
	* ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
	rtx_insn *.
	(cheap_bb_rtx_cost_p): Likewise.
	(first_active_insn): Likewise for return type and local "insn".
	(last_active_insn):  Likewise for return type and locals "insn",
	"head".
	(struct noce_if_info): Likewise for fields "jump", "insn_a",
	"insn_b".
	(end_ifcvt_sequence): Likewise for return type and locals "insn",
	"seq".
	(noce_try_move): Likewise for local "seq".
	(noce_try_store_flag): Likewise.
	(noce_try_store_flag_constants): Likewise.
	(noce_try_addcc): Likewise.
	(noce_try_store_flag_mask): Likewise.
	(noce_try_cmove): Likewise.
	(noce_try_minmax): Likewise.
	(noce_try_abs): Likewise.
	(noce_try_sign_mask): Likewise.
	(noce_try_bitop): Likewise.
	(noce_can_store_speculate_p): Likewise for local "insn".
	(noce_process_if_block): Likewise for locals "insn_a", "insn_b",
	seq".
	(check_cond_move_block): Likewise for local "insn".
	(cond_move_convert_if_block): Likewise.
	(cond_move_process_if_block): Likewise for locals "seq",
	"loc_insn".
	(noce_find_if_block): Likewise for local "jump".
	(merge_if_block): Likewise for local "last".
	(block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
	(find_cond_trap): Likewise for locals "trap", "jump", "newjump".
	(block_has_only_trap): Likewise for return type and local "trap".
	(find_if_case_1): Likewise for local "jump".
	(dead_or_predicable): Likewise for locals "head", "end", "jump",
	"insn".

From-SVN: r214335
2014-08-22 17:08:24 +00:00
David Malcolm
da76d746a2 hw-doloop: Use rtx_insn (touches config/bfin/bfin.c)
gcc/
	* hw-doloop.h (struct hwloop_info_d): Strengthen fields
	"last_insn", "loop_end" from rtx to rtx_insn *.

	* hw-doloop.c (scan_loop): Likewise for local "insn".
	(discover_loop): Likewise for param "tail_insn".
	(discover_loops): Likewise for local "tail".

	* config/bfin/bfin.c (hwloop_optimize): For now, add a checked
	cast to rtx_insn * when assigning from an rtx local to a
	hwloop_info's "last_insn" field.

From-SVN: r214334
2014-08-22 17:05:45 +00:00
Jason Merrill
2d7d7f0fe4 re PR c++/62129 (internal compiler error: in output_constant, at varasm.c:4755)
PR c++/62129
	* class.c (outermost_open_class): New.
	* cp-tree.h: Declare it.
	* decl.c (maybe_register_incomplete_var): Use it.
	(complete_vars): Handle any constant variable.
	* expr.c (cplus_expand_constant): Handle CONSTRUCTOR.

From-SVN: r214333
2014-08-22 12:58:25 -04:00
David Malcolm
9b517712d7 haifa-sched.c: Use rtx_insn
gcc/
	* haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
	(add_delay_dependencies): Strengthen local "pro" from rtx to
	rtx_insn *.
	(recompute_todo_spec): Likewise.
	(dep_cost_1): Likewise for locals "insn", "used".
	(schedule_insn): Likewise for local "dbg".
	(schedule_insn): Likewise for locals "pro", "next".
	(unschedule_insns_until): Likewise for local "con".
	(restore_pattern): Likewise for local "next".
	(estimate_insn_tick): Likewise for local "pro".
	(resolve_dependencies): Likewise for local "next".
	(fix_inter_tick): Likewise.
	(fix_tick_ready): Likewise for local "pro".
	(add_to_speculative_block): Likewise for locals "check", "twin",
	"pro".
	(sched_extend_bb): Likewise for locals "end", "insn".
	(init_before_recovery): Likewise for local "x".
	(sched_create_recovery_block): Likewise for local "barrier".
	(create_check_block_twin): Likewise for local "pro".
	(fix_recovery_deps): Likewise for locals "note", "insn", "jump",
	"consumer".
	(unlink_bb_notes): Update for change to type of bb_header.
	Strengthen locals "prev", "label", "note", "next" from rtx to
	rtx_insn *.
	(clear_priorities): Likewise for local "pro".

From-SVN: r214332
2014-08-22 16:58:09 +00:00
David Malcolm
cf92a17833 gcse.c: Use rtx_insn
gcc/
	* gcse.c (struct occr): Strengthen field "insn" from rtx to
	rtx_insn *.
	(test_insn): Likewise for this global.
	(oprs_unchanged_p): Strengthen param "insn" from const_rtx to
	const rtx_insn *.
	(oprs_anticipatable_p): Likewise.
	(oprs_available_p): Likewise.
	(insert_expr_in_table): Strengthen param "insn" from  rtx to
	rtx_insn *.
	(hash_scan_set): Likewise.
	(hash_scan_clobber): Likewise.
	(hash_scan_call): Likewise.
	(hash_scan_insn): Likewise.
	(compute_hash_table_work): Likewise for local "insn".
	(process_insert_insn): Likewise for return type and local "pat".
	(insert_insn_end_basic_block): Likewise for locals "new_insn",
	"pat", "pat_end", "maybe_cc0_setter".
	(pre_edge_insert): Likewise for local "insn".
	(pre_insert_copy_insn): Likewise for param "insn".
	(pre_insert_copies): Likewise for local "insn".
	(struct set_data): Likewise for field "insn".
	(single_set_gcse): Likewise for param "insn".
	(gcse_emit_move_after): Likewise.
	(pre_delete): Likewise for local "insn".
	(update_bb_reg_pressure): Likewise for param "from" and local
	"insn".
	(should_hoist_expr_to_dom): Likewise for param "from".
	(hoist_code): Likewise for local "insn".
	(get_pressure_class_and_nregs): Likewise for param "insn".
	(calculate_bb_reg_pressure): Likewise for local "insn".
	(compute_ld_motion_mems): Likewise.

From-SVN: r214331
2014-08-22 16:54:47 +00:00
David Malcolm
ced9924c22 genpeep.c: peephole requires an rtx_insn
gcc/
	* genpeep.c (main): Rename param back from "uncast_ins1" to
	"ins1", strengthening from rtx to rtx_insn *.  Drop now-redundant
	checked cast.

	* output.h (peephole): Strengthen param from rtx to rtx_insn *.

From-SVN: r214330
2014-08-22 16:50:40 +00:00
Michael Meissner
f1481c0f6f re PR target/62195 (Invalid mnemonic 'xxlxor' on powerpc-apple-darwin9 with -m64)
2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/62195
	* doc/md.texi (Machine Constraints): Update PowerPC wi constraint
	documentation to state it is only for VSX operations.

	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
	constraint only active if VSX.

	* config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
	wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
	(lfiwzx): Likewise.

From-SVN: r214329
2014-08-22 16:47:15 +00:00
David Malcolm
d362bd85e3 fwprop.c: Use rtx_insn
gcc/
	* fwprop.c (single_def_use_dom_walker::before_dom_children):
	Strengthen local "insn" from rtx to rtx_insn *.
	(use_killed_between): Likewise for param "target_insn".
	(all_uses_available_at): Likewise for param "target_insn" and
	local "next".
	(update_df_init): Likewise for params "def_insn", "insn".
	(update_df): Likewise for param "insn".
	(try_fwprop_subst): Likewise for param "def_insn" and local
	"insn".
	(free_load_extend): Likewise for param "insn".
	(forward_propagate_subreg): Likewise for param "def_insn" and
	local "use_insn".
	(forward_propagate_asm): Likewise for param "def_insn" and local
	"use_insn".
	(forward_propagate_and_simplify): Likewise for param "def_insn"
	and local "use_insn".
	(forward_propagate_into): Likewise for locals "def_insn" and
	"use_insn".

From-SVN: r214328
2014-08-22 16:42:24 +00:00
David Malcolm
691fe203b3 function.c: Use rtx_insn
gcc/
	* function.c (emit_initial_value_sets): Strengthen local "seq"
	from rtx to rtx_insn *.
	(instantiate_virtual_regs_in_insn): Likewise for param "insn" and
	local "seq".
	(instantiate_virtual_regs): Likewise for local "insn".
	(assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
	(reorder_blocks_1): Likewise for param "insns" and local "insn".
	(expand_function_end): Likewise for locals "insn" and "seq".
	(epilogue_done): Likewise for local "insn".
	(thread_prologue_and_epilogue_insns): Likewise for locals "prev",
	"last", "trial".
	(reposition_prologue_and_epilogue_notes): Likewise for locals
	"insn", "last", "note", "first".
	(match_asm_constraints_1): Likewise for param "insn" and local "insns".
	(pass_match_asm_constraints::execute): Likewise for local "insn".

From-SVN: r214327
2014-08-22 16:39:22 +00:00
David Malcolm
fa7af5812f final.c: Use rtx_insn (also touches output.c and config/arc/arc.c)
gcc/
	* output.h (final_scan_insn): Strengthen return type from rtx to
	rtx_insn *.
	(final_forward_branch_p): Likewise for param.
	(current_output_insn): Likewise for this global.

	* final.c (rtx debug_insn): Likewise for this variable.
	(current_output_insn): Likewise.
	(get_attr_length_1): Rename param "insn" to "uncast_insn",
	adding "insn" back in as an rtx_insn * with a checked cast, so
	that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
	first param.
	(compute_alignments): Strengthen local "label" from rtx to
	rtx_insn *.
	(shorten_branches): Rename param from "first" to "uncast_first",
	introducing a new local rtx_insn * "first" using a checked cast to
	effectively strengthen "first" from rtx to rtx_insn * without
	affecting the type signature.  Strengthen locals "insn", "seq",
	"next", "label" from rtx to rtx_insn *.
	(change_scope): Strengthen param "orig_insn" and local "insn" from
	rtx to rtx_insn *.
	(final_start_function): Rename param from "first" to "uncast_first",
	introducing a new local rtx_insn * "first" using a checked cast to
	effectively strengthen "first" from rtx to rtx_insn * without
	affecting the type signature.  Strengthen local "insn" from rtx to
	rtx_insn *.
	(dump_basic_block_info): Strengthen param "insn" from rtx to
	rtx_insn *.
	(final): Rename param from "first" to "uncast_first",
	introducing a new local rtx_insn * "first" using a checked cast to
	effectively strengthen "first" from rtx to rtx_insn * without
	affecting the type signature.  Strengthen locals "insn", "next"
	from rtx to rtx_insn *.
	(output_alternate_entry_point): Strengthen param "insn" from rtx to
	rtx_insn *.
	(call_from_call_insn): Strengthen param "insn" from rtx to
	rtx_call_insn *.
	(final_scan_insn): Rename param from "insn" to "uncast_insn",
	introducing a new local rtx_insn * "insn" using a checked cast to
	effectively strengthen "insn" from rtx to rtx_insn * without
	affecting the type signature.  Strengthen return type and locals
	"next", "note", "prev", "new_rtx" from rtx to rtx_insn *.  Remove
	now-redundant checked cast to rtx_insn * from both invocations of
	debug_hooks->var_location.  Convert CALL_P into a dyn_cast,
	introducing a local "call_insn" for use when invoking
	call_from_call_insn.
	(notice_source_line): Strengthen param "insn" from rtx to
	rtx_insn *.
	(leaf_function_p): Likewise for local "insn".
	(final_forward_branch_p): Likewise.
	(leaf_renumber_regs): Likewise for param "first".
	(rest_of_clean_state): Likewise for locals "insn" and "next".
	(self_recursive_call_p): Likewise for param "insn".
	(collect_fn_hard_reg_usage): Likewise for local "insn".
	(get_call_fndecl): Likewise for param "insn".
	(get_call_cgraph_rtl_info): Likewise.
	(get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
	introducing a new local rtx_insn * "insn" using a checked cast to
	effectively strengthen "insn" from rtx to rtx_insn * without
	affecting the type signature.

	* config/arc/arc.c (arc_final_prescan_insn): For now, add checked
	cast when assigning from param "insn" to current_output_insn.
	(arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
	so that we can assign it back to current_output_insn.

From-SVN: r214326
2014-08-22 16:26:36 +00:00
Pitchumani Sivanupandi
836fca28a3 avr-mcus.def: Remove atmega26hvg...
* config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
	atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
	atmxt540s and atmxt540sreva devices.
	* config/avr/avr-tables.opt: Regenerate.
	* config/avr/t-multilib: Regenerate.
	* doc/avr-mmcu.texi: Regenerate.

From-SVN: r214325
2014-08-22 20:06:38 +04:00
David Malcolm
770affca79 expr.c: Use rtx_insn and rtx_code_label
gcc/
	* expr.c (convert_move): Strengthen local "insns" from rtx to
	rtx_insn *.
	(emit_block_move_via_loop): Strengthen locals "cmp_label" and
	"top_label" from rtx to rtx_code_label *.
	(move_block_to_reg): Strengthen local "insn", "last" from rtx to
	rtx_insn *.
	(emit_single_push_insn): Likewise for locals "prev", "last".
	(store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
	to rtx_code_label *.
	(store_constructor): Likewise for locals "loop_start", "loop_end".
	(expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
	rtx_insn *.
	(expand_expr_real_2): Likewise.
	(expand_expr_real_1): Strengthen local "label" from rtx to
	rtx_code_label *.

From-SVN: r214324
2014-08-22 15:42:11 +00:00
David Malcolm
f3f6fb1614 expmed.c: Use rtx_insn and rtx_code_label
gcc/
	* expmed.c (store_bit_field_using_insv): Strengthen local "last"
	from rtx to rtx_insn *.
	(store_bit_field_1): Likewise.
	(extract_bit_field_1): Likewise.
	(expand_mult_const): Likewise for local "insns".
	(expmed_mult_highpart): Strengthen local "label" from rtx to
	rtx_code_label *.
	(expand_smod_pow2): Likewise.
	(expand_sdiv_pow2): Likewise.
	(expand_divmod): Strengthen locals "last", "insn" from rtx to
	rtx_insn *.  Strengthen locals "label", "label1", "label2",
	"label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
	(emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
	(emit_store_flag): Likewise.
	(emit_store_flag_force): Strengthen local "label" from rtx to
	rtx_code_label *.
	(do_cmp_and_jump): Likewise for param "label".

From-SVN: r214323
2014-08-22 15:39:02 +00:00
David Malcolm
528a80c14e explow.c: Use rtx_insn and rtx_code_label
gcc/
	* explow.c (force_reg): Strengthen local "insn" from rtx to
	rtx_insn *.
	(adjust_stack_1): Likewise.
	(allocate_dynamic_stack_space): Likewise.  Strengthen locals
	"final_label", "available_label", "space_available" from rtx to
	rtx_code_label *.
	(probe_stack_range): Likewise for locals "loop_lab", "end_lab".
	(anti_adjust_stack_and_probe): Likewise.

From-SVN: r214322
2014-08-22 15:36:14 +00:00
David Malcolm
f8b2330207 except.*: Use rtx_insn (also touches function.h)
gcc/
	* except.h (sjlj_emit_function_exit_after): Strengthen param
	"after" from rtx to rtx_insn *.  This is only called with
	result of get_last_insn (in function.c) so type-change should be
	self-contained.

	* function.h (struct rtl_eh): Strengthen field "ehr_label" from
	rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
	to rtx_insn *.  These fields are only used from except.c so this
	type-change should be self-contained to this patch.

	* except.c (emit_to_new_bb_before): Strengthen param "seq" and
	local "last" from rtx to rtx_insn *.
	(dw2_build_landing_pads): Likewise for local "seq".
	(sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
	(sjlj_emit_function_enter): Strengthen param "dispatch_label" from
	rtx to rtx_code_label *.  Strengthen locals "fn_begin", "seq" from
	rtx to rtx_insn *.
	(sjlj_emit_function_exit_after): Strengthen param "after" from rtx
	to rtx_insn *.
	(sjlj_emit_function_exit): Likewise for locals "seq", "insn".
	(sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
	(sjlj_build_landing_pads): Replace NULL_RTX with NULL when
	referring to an insn.  Strengthen local "dispatch_label" from
	rtx to rtx_code_label *.
	(set_nothrow_function_flags): Strengthen local "insn" from rtx to
	rtx_insn *.
	(expand_eh_return): Strengthen local "around_label" from
	rtx to rtx_code_label *.
	(convert_to_eh_region_ranges): Strengthen locals "iter",
	"last_action_insn", "first_no_action_insn",
	"first_no_action_insn_before_switch",
	"last_no_action_insn_before_switch", from rtx to rtx_insn *.

From-SVN: r214321
2014-08-22 15:33:04 +00:00
David Malcolm
cff08b2b91 dwarf2out.c: Use rtx_insn
gcc/
	* dwarf2out.c (last_var_location_insn): Strengthen this variable
	from rtx to rtx_insn *.
	(cached_next_real_insn): Likewise.
	(dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
	working with insns.
	(dwarf2out_var_location): Strengthen locals "next_real",
	"next_note", "expected_next_loc_note", "last_start", "insn" from
	rtx to rtx_insn *.

From-SVN: r214320
2014-08-22 14:23:08 +00:00
David Malcolm
f65c531e03 dwarf2cfi.c: Use rtx_insn
gcc/
	* dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
	from rtx to rtx_insn *.
	(create_pseudo_cfg): Likewise for local "insn".

From-SVN: r214319
2014-08-22 14:20:54 +00:00
David Malcolm
dd3eed93e9 df-*.c: Use rtx_insn
gcc/
	* df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
	from rtx to rtx_insn *.
	(df_bb_regno_last_def_find): Likewise.

	* df-problems.c (df_rd_bb_local_compute): Likewise.
	(df_lr_bb_local_compute): Likewise.
	(df_live_bb_local_compute): Likewise.
	(df_chain_remove_problem): Likewise.
	(df_chain_create_bb): Likewise.
	(df_word_lr_bb_local_compute): Likewise.
	(df_remove_dead_eq_notes): Likewise for param "insn".
	(df_note_bb_compute): Likewise for local "insn".
	(simulate_backwards_to_point): Likewise.
	(df_md_bb_local_compute): Likewise.

	* df-scan.c (df_scan_free_bb_info): Likewise.
	(df_scan_start_dump): Likewise.
	(df_scan_start_block): Likewise.
	(df_install_ref_incremental): Likewise for local "insn".
	(df_insn_rescan_all): Likewise.
	(df_reorganize_refs_by_reg_by_insn): Likewise.
	(df_reorganize_refs_by_insn_bb): Likewise.
	(df_recompute_luids): Likewise.
	(df_bb_refs_record): Likewise.
	(df_update_entry_exit_and_calls): Likewise.
	(df_bb_verify): Likewise.

From-SVN: r214318
2014-08-22 14:17:25 +00:00
David Malcolm
9774f20d04 ddg: Use rtx_insn
gcc/
	* ddg.h (struct ddg_node): Strengthen fields "insn" and
	"first_note" from rtx to rtx_insn *.
	(get_node_of_insn): Likewise for param 2 "insn".
	(autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".

	* ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
	rtx_insn *.
	(mem_write_insn_p): Likewise.
	(mem_access_insn_p): Likewise.
	(autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
	(def_has_ccmode_p): Likewise for param "insn".
	(add_cross_iteration_register_deps): Likewise for locals
	"def_insn" and "use_insn".
	(insns_may_alias_p): Likewise for params "insn1" and "insn2".
	(build_intra_loop_deps): Likewise for local "src_insn".
	(create_ddg): Strengthen locals "insn" and "first_note" from rtx
	to rtx_insn *.
	(get_node_of_insn): Likewise for param "insn".

From-SVN: r214317
2014-08-22 14:13:22 +00:00
David Malcolm
0ece93214a dce.c: Use rtx subclasses
gcc/
	* dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
	(deletable_insn_p): Strengthen param "insn" from rtx to
	rtx_insn *.  Add checked cast to rtx_call_insn when invoking
	find_call_stack_args, since this is guarded by CALL_P (insn).
	(marked_insn_p): Strengthen param "insn" from rtx to
	rtx_insn *.
	(mark_insn): Likewise.  Add checked cast to rtx_call_insn when
	invoking find_call_stack_args, since this is guarded by
	CALL_P (insn).
	(mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
	rtx_insn *; we know this is an insn since this was called by
	mark_nonreg_stores.
	(mark_nonreg_stores_2): Likewise.
	(mark_nonreg_stores): Strengthen param "insn" from rtx to
	rtx_insn *.
	(find_call_stack_args): Strengthen param "call_insn" from rtx to
	rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
	to rtx_insn *.
	(remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
	from rtx to rtx_insn *.
	(reset_unmarked_insns_debug_uses): Likewise for locals "insn",
	"next", "ref_insn".
	(delete_unmarked_insns): Likewise for locals "insn", "next".
	(prescan_insns_for_dce): Likewise for locals "insn", "prev".
	(mark_reg_dependencies): Likewise for param "insn".
	(rest_of_handle_ud_dce): Likewise for local "insn".
	(word_dce_process_block): Likewise.
	(dce_process_block): Likewise.

From-SVN: r214316
2014-08-22 14:09:42 +00:00
David Malcolm
204688845f cse.c: Use rtx_insn
gcc/
	* cse.c (struct qty_table_elem): Strengthen field "const_insn"
	from rtx to rtx_insn *.
	(struct change_cc_mode_args): Likewise for field "insn".
	(this_insn): Strengthen from rtx to rtx_insn *.
	(make_new_qty): Replace use of NULL_RTX with NULL when dealing
	with insn.
	(validate_canon_reg): Strengthen param "insn" from rtx to
	rtx_insn *.
	(canon_reg): Likewise.
	(fold_rtx): Likewise.  Replace use of NULL_RTX with NULL when
	dealing with insn.
	(record_jump_equiv): Strengthen param "insn" from rtx to
	rtx_insn *.
	(try_back_substitute_reg): Likewise, also for locals "prev",
	"bb_head".
	(find_sets_in_insn): Likewise for param "insn".
	(canonicalize_insn): Likewise.
	(cse_insn): Likewise.  Add a checked cast.
	(invalidate_from_clobbers): Likewise for param "insn".
	(invalidate_from_sets_and_clobbers): Likewise.
	(cse_process_notes_1): Replace use of NULL_RTX with NULL when
	dealing with insn.
	(cse_prescan_path): Strengthen local "insn" from rtx to
	rtx_insn *.
	(cse_extended_basic_block): Likewise for locals "insn" and
	"prev_insn".
	(cse_main): Likewise for param "f".
	(check_for_label_ref): Likewise for local "insn".
	(set_live_p): Likewise for second param ("insn").
	(insn_live_p): Likewise for first param ("insn") and for local
	"next".
	(cse_change_cc_mode_insn): Likewise for first param "insn".
	(cse_change_cc_mode_insns): Likewise for first and second params
	"start" and "end".
	(cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
	and "end".
	(cse_condition_code_reg): Likewise for locals "last_insn", "insn",
	"cc_src_insn".

From-SVN: r214315
2014-08-22 14:05:24 +00:00
Joost VandeVondele
7e114fadf1 re PR fortran/61234 (Warn for use-stmt without explicit only-list.)
2014-08-22  Joost VandeVondele  <Joost.VandeVondele@mat.ethz.ch>
 
 	* gfortran.dg/use_without_only_1.f90: New test.
 
 2014-08-22  Joost VandeVondele  <Joost.VandeVondele@mat.ethz.ch>
 
 	PR fortran/61234
 	* lang.opt (Wuse-without-only): New flag.
 	* gfortran.h (gfc_option_t): Add it.
 	* invoke.texi: Document it.
 	* module.c (gfc_use_module): Warn if needed.
 	* options.c (gfc_init_options,gfc_handle_option): Init accordingly.

From-SVN: r214311
2014-08-22 10:14:50 +00:00
Alexander Ivchenko
3616dc706e subst.md (define_subst_attr "mask_avx512bw_condition"): New.
gcc/
	* config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
	New.
	* config/i386/sse.md
	(define_mode_iterator VI248_AVX2): Delete.
	(define_mode_iterator VI2_AVX2_AVX512BW): New.
	(define_mode_iterator VI48_AVX2): Ditto.
	(define_insn <shift_insn><mode>3): Delete.
	(define_insn "<shift_insn><mode>3<mask_name>" with
	VI2_AVX2_AVX512BW): New.
	(define_insn "<shift_insn><mode>3<mask_name>" with
	VI48_AVX2): Ditto.

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>

From-SVN: r214310
2014-08-22 10:07:41 +00:00
Alexander Ivchenko
698ea04f75 sse.md (define_mode_iterator VI4F_BRCST32x2): New.
gcc/
	* config/i386/sse.md
	(define_mode_iterator VI4F_BRCST32x2): New.
	(define_mode_attr 64x2_mode): Ditto.
	(define_mode_attr 32x2mode): Ditto.
	(define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
	with VI4F_BRCST32x2): Ditto.
	(define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
	with V16FI mode iterator): Ditto.
	(define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
	with V16FI): Ditto.
	(define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
	with VI8F_BRCST64x2): Ditto.

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>

From-SVN: r214309
2014-08-22 10:00:55 +00:00
Alexander Ivchenko
98725d4441 sse.md (define_mode_iterator VI8_AVX512VL): New.
gcc/
	* config/i386/sse.md
	(define_mode_iterator VI8_AVX512VL): New.
	(define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.


Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>

From-SVN: r214308
2014-08-22 09:49:40 +00:00
Kirill Yukhin
7cbdc87dd5 sse.md (define_mode_iterator V_AVX512VL): Delete.
gcc/
	* gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
	(define_mode_iterator V48_AVX512VL): New.
	(define_mode_iterator V12_AVX512VL): Ditto.
	(define_insn <avx512>_load<mode>_mask): Split into two similar
	patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
	Refactor output template.
	(define_insn "<avx512>_store<mode>_mask"): Ditto.

From-SVN: r214307
2014-08-22 09:46:18 +00:00
Igor Zamyatin
671a475e64 re PR other/62008 (CilkPlus Array Notation ICE in build_array_notation_ref when trying to build a multidimensional array from a pointer.)
PR other/62008
gcc/c/
	* c-parser.c (c_parser_array_notation): Check for correct
	type of an array added.

gcc/cp/
	* cp-array-notation.c (build_array_notation_ref): Added correct
	handling of case with incorrect array.

gcc/testsuite/
	* c-c++-common/cilk-plus/AN/pr62008.c: New test.

From-SVN: r214305
2014-08-22 09:37:01 +00:00
Tony Wang
0bf1f5864e thread_local6.C: Skip this test case when target uses dejagnu wrapper.
2014-08-22  Tony Wang  <tony.wang@arm.com>

    gcc/testsuite/
    * g++.dg/tls/thread_local6.C: Skip this test case when target uses
    dejagnu wrapper.

From-SVN: r214304
2014-08-22 02:13:31 +00:00
David Malcolm
997c5639d4 cprop.c: Use rtx_insn
gcc/
2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* cprop.c (struct occr): Strengthen field "insn" from rtx to
	rtx_insn *.
	(reg_available_p): Likewise for param "insn".
	(insert_set_in_table): Likewise.
	(hash_scan_set): Likewise.
	(hash_scan_insn): Likewise.
	(make_set_regs_unavailable): Likewise.
	(compute_hash_table_work): Likewise for local "insn".
	(reg_not_set_p): Strengthen param "insn" from const_rtx to
	const rtx_insn *.
	(mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
	(try_replace_reg): Likewise.
	(find_avail_set): Likewise.
	(cprop_jump): Likewise for params "setcc", "jump".
	(constprop_register): Likewise for param "insn".
	(cprop_insn): Likewise.
	(do_local_cprop): Likewise.
	(local_cprop_pass): Likewise for local "insn".
	(bypass_block): Likewise for params "setcc" and "jump".
	(bypass_conditional_jumps): Likewise for locals "setcc" and
	"insn".
	(one_cprop_pass): Likewise for local "insn".

From-SVN: r214303
2014-08-22 00:36:14 +00:00
David Malcolm
c566b8285e compare-elim.c: Use rtx_insn
gcc/
2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* compare-elim.c (struct comparison_use): Strengthen field "insn"
	from rtx to rtx_insn *.
	(struct comparison): Likewise, also for field "prev_clobber".
	(conforming_compare): Likewise for param "insn".
	(arithmetic_flags_clobber_p): Likewise.
	(find_flags_uses_in_insn): Likewise.
	(find_comparison_dom_walker::before_dom_children): Likewise for
	locals "insn", "next", "last_clobber".
	(try_eliminate_compare): Likewise for locals "insn", "bb_head".

From-SVN: r214302
2014-08-22 00:32:20 +00:00