platform/upstream/gcc.git
9 years agopostreload.c: Use rtx_insn (also touches rtl.h and cprop.c)
David Malcolm [Fri, 22 Aug 2014 19:38:50 +0000 (19:38 +0000)]
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

9 years agore PR c++/57709 (-Wshadow is too strict / has false positives)
Manuel López-Ibáñez [Fri, 22 Aug 2014 19:12:46 +0000 (19:12 +0000)]
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

9 years agopostreload-gcse.c: Use rtx_insn in various places
David Malcolm [Fri, 22 Aug 2014 19:05:50 +0000 (19:05 +0000)]
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

9 years agooptabs.c: Use rtx_insn and rtx_code_label
David Malcolm [Fri, 22 Aug 2014 19:03:32 +0000 (19:03 +0000)]
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

9 years agomodulo-sched.c: Use rtx_insn in various places
David Malcolm [Fri, 22 Aug 2014 19:00:05 +0000 (19:00 +0000)]
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

9 years agore PR c++/62129 (internal compiler error: in output_constant, at varasm.c:4755)
Jason Merrill [Fri, 22 Aug 2014 18:49:18 +0000 (14:49 -0400)]
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

9 years agoget_ebb_head_tail works with rtx_insn
David Malcolm [Fri, 22 Aug 2014 18:47:27 +0000 (18:47 +0000)]
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

9 years agore PR fortran/62135 (ICE with invalid SELECT CASE selector)
Steven Bosscher [Fri, 22 Aug 2014 18:43:50 +0000 (18:43 +0000)]
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

9 years agoc.opt (Wcomment): Use CPP, Var and LangEnabledBy.
Manuel López-Ibáñez [Fri, 22 Aug 2014 18:39:16 +0000 (18:39 +0000)]
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

9 years agomode-switching.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 18:39:08 +0000 (18:39 +0000)]
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

9 years agolra: use rtx_insn
David Malcolm [Fri, 22 Aug 2014 18:36:35 +0000 (18:36 +0000)]
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

9 years agolower-subreg.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 18:20:08 +0000 (18:20 +0000)]
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

9 years agoloop-unroll.c: Use rtx_insn (also touches basic-block.h)
David Malcolm [Fri, 22 Aug 2014 18:15:54 +0000 (18:15 +0000)]
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

9 years agoloop-iv.c: Use rtx_insn (also touches cfgloop.h and loop-unroll.c)
David Malcolm [Fri, 22 Aug 2014 18:12:28 +0000 (18:12 +0000)]
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

9 years agoloop-invariant.c: Use rtx_insn in various places
David Malcolm [Fri, 22 Aug 2014 18:08:51 +0000 (18:08 +0000)]
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

9 years agoloop-doloop.c: Use rtx_insn in a few places
David Malcolm [Fri, 22 Aug 2014 18:06:16 +0000 (18:06 +0000)]
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

9 years agojump.c: Use rtx_insn in a few places (also touches rtl.h and cfgexpand.c)
David Malcolm [Fri, 22 Aug 2014 18:03:59 +0000 (18:03 +0000)]
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

9 years agoira: Use rtx_insn in various places
David Malcolm [Fri, 22 Aug 2014 17:48:40 +0000 (17:48 +0000)]
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

9 years agointernal-fn.c: Use rtx_insn and rtx_code_label
David Malcolm [Fri, 22 Aug 2014 17:45:22 +0000 (17:45 +0000)]
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

9 years agoinit-regs.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 17:42:44 +0000 (17:42 +0000)]
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

9 years agoifcvt.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 17:08:24 +0000 (17:08 +0000)]
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

9 years agohw-doloop: Use rtx_insn (touches config/bfin/bfin.c)
David Malcolm [Fri, 22 Aug 2014 17:05:45 +0000 (17:05 +0000)]
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

9 years agore PR c++/62129 (internal compiler error: in output_constant, at varasm.c:4755)
Jason Merrill [Fri, 22 Aug 2014 16:58:25 +0000 (12:58 -0400)]
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

9 years agohaifa-sched.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 16:58:09 +0000 (16:58 +0000)]
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

9 years agogcse.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 16:54:47 +0000 (16:54 +0000)]
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

9 years agogenpeep.c: peephole requires an rtx_insn
David Malcolm [Fri, 22 Aug 2014 16:50:40 +0000 (16:50 +0000)]
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

9 years agore PR target/62195 (Invalid mnemonic 'xxlxor' on powerpc-apple-darwin9 with -m64)
Michael Meissner [Fri, 22 Aug 2014 16:47:15 +0000 (16:47 +0000)]
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

9 years agofwprop.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 16:42:24 +0000 (16:42 +0000)]
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

9 years agofunction.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 16:39:22 +0000 (16:39 +0000)]
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

9 years agofinal.c: Use rtx_insn (also touches output.c and config/arc/arc.c)
David Malcolm [Fri, 22 Aug 2014 16:26:36 +0000 (16:26 +0000)]
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

9 years agoavr-mcus.def: Remove atmega26hvg...
Pitchumani Sivanupandi [Fri, 22 Aug 2014 16:06:38 +0000 (16:06 +0000)]
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

9 years agoexpr.c: Use rtx_insn and rtx_code_label
David Malcolm [Fri, 22 Aug 2014 15:42:11 +0000 (15:42 +0000)]
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

9 years agoexpmed.c: Use rtx_insn and rtx_code_label
David Malcolm [Fri, 22 Aug 2014 15:39:02 +0000 (15:39 +0000)]
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

9 years agoexplow.c: Use rtx_insn and rtx_code_label
David Malcolm [Fri, 22 Aug 2014 15:36:14 +0000 (15:36 +0000)]
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

9 years agoexcept.*: Use rtx_insn (also touches function.h)
David Malcolm [Fri, 22 Aug 2014 15:33:04 +0000 (15:33 +0000)]
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

9 years agodwarf2out.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 14:23:08 +0000 (14:23 +0000)]
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

9 years agodwarf2cfi.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 14:20:54 +0000 (14:20 +0000)]
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

9 years agodf-*.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 14:17:25 +0000 (14:17 +0000)]
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

9 years agoddg: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 14:13:22 +0000 (14:13 +0000)]
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

9 years agodce.c: Use rtx subclasses
David Malcolm [Fri, 22 Aug 2014 14:09:42 +0000 (14:09 +0000)]
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

9 years agocse.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 14:05:24 +0000 (14:05 +0000)]
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

9 years agore PR fortran/61234 (Warn for use-stmt without explicit only-list.)
Joost VandeVondele [Fri, 22 Aug 2014 10:14:50 +0000 (10:14 +0000)]
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

9 years agosubst.md (define_subst_attr "mask_avx512bw_condition"): New.
Alexander Ivchenko [Fri, 22 Aug 2014 10:07:41 +0000 (10:07 +0000)]
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

9 years agosse.md (define_mode_iterator VI4F_BRCST32x2): New.
Alexander Ivchenko [Fri, 22 Aug 2014 10:00:55 +0000 (10:00 +0000)]
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

9 years agosse.md (define_mode_iterator VI8_AVX512VL): New.
Alexander Ivchenko [Fri, 22 Aug 2014 09:49:40 +0000 (09:49 +0000)]
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

9 years agosse.md (define_mode_iterator V_AVX512VL): Delete.
Kirill Yukhin [Fri, 22 Aug 2014 09:46:18 +0000 (09:46 +0000)]
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

9 years agore PR other/62008 (CilkPlus Array Notation ICE in build_array_notation_ref when tryin...
Igor Zamyatin [Fri, 22 Aug 2014 09:37:01 +0000 (09:37 +0000)]
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

9 years agothread_local6.C: Skip this test case when target uses dejagnu wrapper.
Tony Wang [Fri, 22 Aug 2014 02:13:31 +0000 (02:13 +0000)]
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

9 years agocprop.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 00:36:14 +0000 (00:36 +0000)]
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

9 years agocompare-elim.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 00:32:20 +0000 (00:32 +0000)]
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

9 years agocombine-stack-adj.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 00:27:43 +0000 (00:27 +0000)]
combine-stack-adj.c: Use rtx_insn

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

* combine-stack-adj.c (struct csa_reflist): Strengthen field
"insn" from rtx to rtx_insn *.
(single_set_for_csa): Likewise for param "insn".
(record_one_stack_ref): Likewise.
(try_apply_stack_adjustment): Likewise.
(struct record_stack_refs_data): Likewise for field "insn".
(maybe_move_args_size_note): Likewise for params "last" and "insn".
(prev_active_insn_bb): Likewise for return type and param "insn".
(next_active_insn_bb): Likewise.
(force_move_args_size_note): Likewise for params "prev" and "last"
and locals "test", "next_candidate", "prev_candidate".
(combine_stack_adjustments_for_block): Strengthen locals
"last_sp_set", "last2_sp_set", "insn", "next" from rtx to
rtx_insn *.

From-SVN: r214301

9 years agoDaily bump.
GCC Administrator [Fri, 22 Aug 2014 00:16:51 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r214300

9 years agocombine.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 00:16:51 +0000 (00:16 +0000)]
combine.c: Use rtx_insn

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

* combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
(struct reg_stat_struct): Likewise for fields "last_death", "last_set".
(subst_insn): Likewise for this variable.
(added_links_insn): Likewise.
(struct insn_link): Likewise for field "insn".
(alloc_insn_link): Likewise for param "insn".
(struct undobuf): Likewise for field "other_insn".
(find_single_use): Likewise for param "insn" and local "next".
(combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
(delete_noop_moves): Likewise for locals "insn", "next".
(create_log_links): Likewise for locals "insn", "use_insn".
Strengthen local "next_use" from rtx * to rtx_insn **.
(insn_a_feeds_b): Likewise for params "a", "b".
(combine_instructions): Likewise for param "f" and locals "insn",
"next", "prev", "first", "last_combined_insn", "link", "link1",
"temp".  Replace use of NULL_RTX with NULL when referring to
insns.
(setup_incoming_promotions): Likewise for param "first"
(set_nonzero_bits_and_sign_copies): Likewise for local "insn".
(can_combine_p): Likewise for params "insn", "i3", "pred",
"pred2", "succ", "succ2" and for local "p".
(combinable_i3pat): Likewise for param "i3".
(cant_combine_insn_p): Likewise for param "insn".
(likely_spilled_retval_p): Likewise.
(adjust_for_new_dest): Likewise.
(update_cfg_for_uncondjump): Likewise, also for local "insn".
(try_combine): Likewise for return type and for params "i3", "i2",
"i1", "i0", "last_combined_insn", and for locals "insn",
"cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
"i0_insn".  Eliminate local "tem" in favor of new locals
"tem_note" and "tem_insn", the latter being an rtx_insn *.  Add a
checked cast for now to rtx_insn * on the return type of
gen_rtx_INSN.  Replace use of NULL_RTX with NULL when referring to
insns.
(find_split_point): Strengthen param "insn" from rtx to
rtx_insn *.
(simplify_set): Likewise for local "other_insn".
(recog_for_combine): Likewise for param "insn".
(record_value_for_reg): Likewise.
(record_dead_and_set_regs_1): Likewise for local
"record_dead_insn".
(record_dead_and_set_regs): Likewise for param "insn".
(record_promoted_value): Likewise.
(check_promoted_subreg): Likewise.
(get_last_value_validate): Likewise.
(reg_dead_at_p): Likewise.
(move_deaths): Likewise for param "to_insn".
(distribute_notes): Likewise for params "from_insn", "i3", "i2"
and locals "place", "place2", "cc0_setter".  Eliminate local "tem
in favor of new locals "tem_note" and "tem_insn", the latter being
an rtx_insn *.
(distribute_links): Strengthen locals "place", "insn" from rtx to
rtx_insn *.

From-SVN: r214299

9 years agocfgrtl.c: Use rtx subclasses
David Malcolm [Thu, 21 Aug 2014 21:16:09 +0000 (21:16 +0000)]
cfgrtl.c: Use rtx subclasses

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

* cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
than a const_rtx.
(can_delete_label_p): Require a const rtx_code_label * rather than
a const_rtx.
(delete_insn): Add checked cast to rtx_code_label * when we know
we're dealing with LABEL_P (insn).  Strengthen local "bb_note" from
rtx to rtx_insn *.
(delete_insn_chain): Strengthen locals "prev" and "current" from
rtx to rtx_insn *.  Add a checked cast when assigning from
"finish" (strengthening the params will come later).  Add a
checked cast to rtx_note * in region where we know
NOTE_P (current).
(rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
rtx_insn *.
(compute_bb_for_insn): Likewise.
(free_bb_for_insn): Likewise for local "insn".
(compute_bb_for_insn): Likewise.
(update_bb_for_insn_chain): Strengthen params "begin", "end" and
local "insn" from rtx to rtx_insn *
(flow_active_insn_p): Require a const rtx_insn * rather than a
const_rtx.
(contains_no_active_insn_p): Strengthen local "insn" from rtx to
rtx_insn *.
(can_fallthru): Likewise for locals "insn" and "insn2".
(bb_note): Likewise for local "note".
(first_insn_after_basic_block_note): Likewise for local "note" and
for return type.
(rtl_split_block): Likewise for locals "insn" and "next".
(unique_locus_on_edge_between_p): Likewise for locals "insn" and
"end".
(rtl_merge_blocks): Likewise for locals "b_head", "b_end",
"a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
"prev", "tmp".
(try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
them), "kill_from", "barrier", "new_insn".
(patch_jump_insn): Likewise for params "insn", "old_label".
(redirect_branch_edge): Likewise for locals "old_label", "insn".
(force_nonfallthru_and_redirect): Likewise for locals "insn",
"old_label", "new_label".
(rtl_tidy_fallthru_edge): Likewise for local "q".
(rtl_split_edge): Likewise for locals "before", "last".
(commit_one_edge_insertion): Likewise for locals "before",
"after", "insns", "tmp", "last", adding a checked cast where
currently necessary.
(commit_edge_insertions): Likewise.
(rtl_dump_bb): Likewise for locals "insn", "last".
(print_rtl_with_bb): Likewise for local "x".
(rtl_verify_bb_insns): Likewise for local "x".
(rtl_verify_bb_pointers): Likewise for local "insn".
(rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
"head", "end".
(rtl_verify_fallthru): Likewise for local "insn".
(rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
(purge_dead_edges): Likewise for local "insn".
(fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
(skip_insns_after_block): Likewise for return type and for locals
"insn", "last_insn", "next_head", "prev".
(record_effective_endpoints): Likewise for locals "next_insn",
"insn", "end".
(fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
(verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
(cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
(duplicate_insn_chain): For now, add checked cast from rtx to
rtx_insn * when returning insn.
(cfg_layout_duplicate_bb): Likewise for local "insn".
(cfg_layout_delete_block): Likewise for locals "insn", "next",
"prev", "remaints".
(cfg_layout_merge_blocks): Likewise for local "insn", "last".
(rtl_block_empty_p): Likewise.
(rtl_split_block_before_cond_jump): Likewise for locals "insn",
"split_point", "last".
(rtl_block_ends_with_call_p): Likewise for local "insn".
(need_fake_edge_p): Strengthen param "insn" from const_rtx to
const rtx_insn *.
(rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
"split_at_insn" from rtx to rtx_insn *.
(rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
(rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
to const rtx_insn *.
(rtl_account_profile_record): Likewise.

From-SVN: r214295

9 years agocfgloopanal.c: Use rtx_insn
David Malcolm [Thu, 21 Aug 2014 21:11:30 +0000 (21:11 +0000)]
cfgloopanal.c: Use rtx_insn

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

* cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
rtx to rtx_insn *.
(average_num_loop_insns): Likewise.
(init_set_costs): Likewise for local "seq".
(seq_cost): Likewise for param "seq", from const_rtx to const
rtx_insn *.

From-SVN: r214294

9 years agocfgloop.c: Use rtx_insn
David Malcolm [Thu, 21 Aug 2014 21:08:33 +0000 (21:08 +0000)]
cfgloop.c: Use rtx_insn

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

* cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
rtx to rtx_insn *.

From-SVN: r214293

9 years agocfgcleanup.c: Use rtx_insn (also touches basic-block.h and ifcvt.c)
David Malcolm [Thu, 21 Aug 2014 21:02:34 +0000 (21:02 +0000)]
cfgcleanup.c: Use rtx_insn (also touches basic-block.h and ifcvt.c)

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

* basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
"f1" and "f2" from rtx * to rtx_insn **.
(flow_find_head_matching_sequence): Likewise.

* cfgcleanup.c (try_simplify_condjump): Strengthen local
"cbranch_insn" from rtx to rtx_insn *.
(thread_jump): Likewise for local "insn".
(try_forward_edges): Likewise for local "last".
(merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
(merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
"real_b_end".
(can_replace_by): Likewise for params "i1", "i2".
(old_insns_match_p): Likewise.
(merge_notes): Likewise.
(walk_to_nondebug_insn): Likewise for param "i1".
(flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
to rtx_insn **.  Strengthen locals "i1", "i2", "last1", "last2",
"afterlast1", "afterlast2" from rtx to rtx_insn *.
(flow_find_head_matching_sequence): Strengthen params "f1" and
"f2" from rtx * to rtx_insn **.  Strengthen locals "i1", "i2",
"last1", "last2", "beforelast1", "beforelast2" from rtx to
rtx_insn *.
(outgoing_edges_match): Likewise for locals "last1", "last2".
(try_crossjump_to_edge): Likewise for local "insn".
Replace call to for_each_rtx with for_each_rtx_in_insn.

(try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
(try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
"e0_last", "e_last", "head", "curr", "insn".  Strengthen locals
"headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
(try_optimize_cfg): Strengthen local "last" from rtx to
rtx_insn *.
(delete_dead_jumptables): Likewise for locals "insn", "next",
"label".

* ifcvt.c (cond_exec_process_if_block): Likewise for locals
"rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
"rtx else_first_tail", to reflect the basic-block.h changes above.

From-SVN: r214292

9 years agocfgbuild.c: Use rtx_insn
David Malcolm [Thu, 21 Aug 2014 20:57:56 +0000 (20:57 +0000)]
cfgbuild.c: Use rtx_insn

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

* cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
rtx_insn *.
(purge_dead_tablejump_edges): Likewise.
(find_bb_boundaries): Likewise for locals "insn", "end",
"flow_transfer_insn".

From-SVN: r214291

9 years agocaller-save.c: Use rtx_insn
David Malcolm [Thu, 21 Aug 2014 20:43:47 +0000 (20:43 +0000)]
caller-save.c: Use rtx_insn

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

* caller-save.c (save_call_clobbered_regs): Strengthen locals
"ins" and "prev" from rtx to rtx_insn *.

From-SVN: r214290

9 years agocalls.c: Use rtx_insn
David Malcolm [Thu, 21 Aug 2014 20:38:47 +0000 (20:38 +0000)]
calls.c: Use rtx_insn

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

* calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
rtx_insn *.
(internal_arg_pointer_exp_state): Likewise for field "scan_start".
(internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
"scan_start".
(load_register_parameters): Likewise for local "before_arg".
(check_sibcall_argument_overlap): Likewise for param "insn".
(expand_call): Likewise for locals "normal_call_insns",
"tail_call_insns", "insns", "before_call", "after_args",
"before_arg", "last", "prev".  Strengthen one of the "last" from
rtx to rtx_call_insn *.
(fixup_tail_calls): Strengthen local "insn" from rtx to
rtx_insn *.
(emit_library_call_value_1): Likewise for locals "before_call" and
"last".

From-SVN: r214289

9 years agobuiltins.c: strengthen various rtx to rtx_insn * and other subclasses
David Malcolm [Thu, 21 Aug 2014 20:32:22 +0000 (20:32 +0000)]
builtins.c: strengthen various rtx to rtx_insn * and other subclasses

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

* builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
and "last" from rtx to rtx_insn *.
(expand_builtin_nonlocal_goto): Likewise for local "insn".
(expand_builtin_apply): Strengthen local "call_insn" from rtx to
rtx_call_insn *.
(expand_errno_check): Strengthen local "lab" from rtx to
rtx_code_label *.
(expand_builtin_mathfn): Strengthen local "insns" from rtx to
rtx_insn *.
(expand_builtin_mathfn_2): Likewise.
(expand_builtin_mathfn_ternary): Likewise.
(expand_builtin_mathfn_3): Likewise.
(expand_builtin_interclass_mathfn): Likewise for local "last".
(expand_builtin_int_roundingfn): Likewise for local "insns".
(expand_builtin_int_roundingfn_2): Likewise.
(expand_builtin_strlen): Likewise for local "before_strlen".
(expand_builtin_strncmp): Likewise for local "seq".
(expand_builtin_signbit): Likewise for local "last".
(expand_builtin_atomic_compare_exchange): Strengthen local "label"
from rtx to rtx_code_label *.
(expand_stack_restore):  Strengthen local "prev" from rtx to
rtx_insn *.

From-SVN: r214288

9 years agobt-load.c: Use rtx_insn
David Malcolm [Thu, 21 Aug 2014 20:28:33 +0000 (20:28 +0000)]
bt-load.c: Use rtx_insn

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

* bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
to rtx_insn *.
(struct btr_def_s): Likewise.
(insn_sets_btr_p): Strengthen param "insn" from const_rtx to
const rtx_insn *.
(add_btr_def): Likewise.
(new_btr_user): Likewise.
(compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
rtx to rtx_insn *.
(link_btr_uses): Likewise.
(move_btr_def): Likewise for locals "insp", "old_insn",
"new_insn".  Add checked cast to rtx_insn * for now on result of
gen_move_insn.
(can_move_up): Strengthen param "insn" from const_rtx to
const rtx_insn *.

From-SVN: r214287

9 years agobb-reorder.c: Use rtx_insn
David Malcolm [Thu, 21 Aug 2014 20:24:19 +0000 (20:24 +0000)]
bb-reorder.c: Use rtx_insn

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

* bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
rtx_insn *.
(get_uncond_jump_length): Likewise for locals "label", "jump".
(fix_up_crossing_landing_pad): Likewise for locals "new_label",
"jump", "insn".
(add_labels_and_missing_jumps): Likewise for local "new_jump".
(fix_up_fall_thru_edges): Likewise for local "old_jump".
(find_jump_block): Likewise for local "insn".
(fix_crossing_conditional_branches): Likewise for locals
"old_jump", "new_jump".
(fix_crossing_unconditional_branches): Likewise for locals
"last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
(pass_duplicate_computed_gotos::execute): Likewise for local "insn".

From-SVN: r214286

9 years agoauto-inc-dec.c: strengthen various rtx to rtx_insn *
David Malcolm [Thu, 21 Aug 2014 20:17:15 +0000 (20:17 +0000)]
auto-inc-dec.c: strengthen various rtx to rtx_insn *

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

* auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
rtx to rtx_insn *.
(struct mem_insn): Likewise for field "insn".
(reg_next_use): Strengthen from rtx * to rtx_insn **.
(reg_next_inc_use): Likewise.
(reg_next_def): Likewise.
(move_dead_notes): Strengthen params "to_insn" and "from_insn"
from rtx to rtx_insn *.
(move_insn_before): Likewise for param "next_insn" and local "insns".
(attempt_change): Likewise for local "mov_insn".
(try_merge): Likewise for param "last_insn".
(get_next_ref): Likewise for return type and local "insn".
Strengthen param "next_array" from rtx * to rtx_insn **.
(parse_add_or_inc): Strengthen param "insn" from rtx to
rtx_insn *.
(find_inc): Likewise for locals "insn" and "other_insn" (three of
the latter).
(merge_in_block): Likewise for locals "insn", "curr",
"other_insn".
(pass_inc_dec::execute): Update allocations of the arrays to
reflect the stronger types.

From-SVN: r214285

9 years agoasan.c: strengthen some rtx locals
David Malcolm [Thu, 21 Aug 2014 20:12:30 +0000 (20:12 +0000)]
asan.c: strengthen some rtx locals

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

* asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
and "jump" from rtx to rtx_insn *.  Strengthen local "top_label"
from rtx to rtx_code_label *.

From-SVN: r214284

9 years agoalias.c: Use rtx_insn
David Malcolm [Thu, 21 Aug 2014 20:04:22 +0000 (20:04 +0000)]
alias.c: Use rtx_insn

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

* alias.c (init_alias_analysis): Strengthen local "insn" from rtx
to rtx_insn *.

From-SVN: r214283

9 years agore PR fortran/62214 (Problem with spread plus concatenation for characters)
Thomas Koenig [Thu, 21 Aug 2014 18:52:58 +0000 (18:52 +0000)]
re PR fortran/62214 (Problem with spread plus concatenation for characters)

2014-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/62214
* frontend-passes.c (optimize_binop_array_assignment):
Do not try to optimize the array assignment for string
concatenation.

2014-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/62214
* gfortran.dg/array_assignment_5.f90:  New test.

From-SVN: r214281

9 years agors6000.c (print_operand, 'y' case): Fix code that generated a warning and prevented...
Michael Meissner [Thu, 21 Aug 2014 18:13:52 +0000 (18:13 +0000)]
rs6000.c (print_operand, 'y' case): Fix code that generated a warning and prevented bootstrapping the compiler.

2014-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
generated a warning and prevented bootstrapping the compiler.

From-SVN: r214280

9 years agoPHASE 2: Per-file commits in main source directory
David Malcolm [Thu, 21 Aug 2014 15:08:47 +0000 (15:08 +0000)]
PHASE 2: Per-file commits in main source directory

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

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

From-SVN: r214276

9 years agodelete_related_insns returns an rtx_insn
David Malcolm [Thu, 21 Aug 2014 15:00:09 +0000 (15:00 +0000)]
delete_related_insns returns an rtx_insn

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

* rtl.h (delete_related_insns): Strengthen return type from rtx to
rtx_insn *.

* jump.c (delete_related_insns): Likewise, also for locals "next"
and "prev".

From-SVN: r214275

9 years ago2014-08-21 Sandra Loosemore <sandra@codesourcery.com>
Sandra Loosemore [Thu, 21 Aug 2014 14:52:03 +0000 (10:52 -0400)]
2014-08-21  Sandra Loosemore  <sandra@codesourcery.com>

gcc/testsuite/
* lib/target-supports.exp
(check_effective_target_logical_op_short_circuit): Add nios2.
* gcc.dg/tree-ssa/reassoc-33.c: Skip for nios2.
* gcc.dg/tree-ssa/reassoc-34.c: Likewise.
* gcc.dg/tree-ssa/reassoc-35.c: Likewise.
* gcc.dg/tree-ssa/reassoc-36.c: Likewise.
* gcc.dg/tree-ssa/interposition.c: Require fpic effective target
for test using -fPIC.
* gcc.dg/lto/pr61526_0.c: Likewise.

From-SVN: r214274

9 years agodefine_bypass guard functions take a pair of rtx_insn
David Malcolm [Thu, 21 Aug 2014 14:01:37 +0000 (14:01 +0000)]
define_bypass guard functions take a pair of rtx_insn

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

* genautomata.c (output_internal_insn_latency_func): When writing
the function "internal_insn_latency" to insn-automata.c,
strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
allowing the optional guard function of (define_bypass) clauses to
expect a pair of rtx_insn *, rather than a pair of rtx.
(output_insn_latency_func): When writing the function
"insn_latency", add an "uncast_" prefix to params "insn" and
"insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
using checked casts from the params, thus enabling the above
change to the generated "internal_insn_latency" function.

From-SVN: r214273

9 years agore PR tree-optimization/62091 (ice in before_dom_children)
Jan Hubicka [Thu, 21 Aug 2014 13:49:07 +0000 (15:49 +0200)]
re PR tree-optimization/62091 (ice in before_dom_children)

PR tree-optimization/62091
* g++.dg/ipa/devirt-37.C: Update template.
* g++.dg/ipa/devirt-40.C: New testcase.
* ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
handle correctly arrays.
(extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
inheritance binfos.
(record_known_type): Walk into inner type.
(ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
condition on no type changes.

From-SVN: r214271

9 years agoPass "insn" as an rtx_insn within generated get_attr_ fns in insn-attrtab.c
David Malcolm [Thu, 21 Aug 2014 10:13:22 +0000 (10:13 +0000)]
Pass "insn" as an rtx_insn within generated get_attr_ fns in insn-attrtab.c

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

* genattrtab.c (write_attr_get): Within the generated get_attr_
functions, rename param "insn" to "uncast_insn" and reintroduce
"insn" as an local rtx_insn * using a checked cast, so that "insn"
is an rtx_insn * within insn-attrtab.c

From-SVN: r214265

9 years agopeephole returns an rtx_insn
David Malcolm [Thu, 21 Aug 2014 09:40:09 +0000 (09:40 +0000)]
peephole returns an rtx_insn

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

* output.h (peephole): Strengthen return type from rtx to
rtx_insn *.
* rtl.h (delete_for_peephole): Likewise for both params.
* genpeep.c (main): In generated "peephole" function, strengthen
return type and local "insn" from rtx to rtx_insn *.  For now,
rename param "ins1" to "uncast_ins1", adding "ins1" back as an
rtx_insn *, with a checked cast.
* jump.c (delete_for_peephole): Strengthen params "from", "to" and
locals "insn", "next", "prev" from rtx to rtx_insn *.

From-SVN: r214264

9 years agoconfigure: Regenerated.
Bin Cheng [Thu, 21 Aug 2014 09:35:52 +0000 (09:35 +0000)]
configure: Regenerated.

* configure: Regenerated.

config/ChangeLog
* isl.m4 (ISL_CHECK_VERSION): Check link of isl library
for cross_compiling.

From-SVN: r214263

9 years agore PR tree-optimization/62112 (Optimize out malloc when block is unused or write...
Marc Glisse [Thu, 21 Aug 2014 09:32:21 +0000 (11:32 +0200)]
re PR tree-optimization/62112 (Optimize out malloc when block is unused or write-only)

2014-08-21  Marc Glisse  <marc.glisse@inria.fr>

PR tree-optimization/62112
gcc/
* gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
* gimple-iterator.h (gsi_replace): Return bool.
* tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
moved from ref_may_alias_global_p.
(ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
New overloads.
(ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
(stmt_kills_ref_p_1): Rename...
(stmt_kills_ref_p): ... to this.
* tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
stmt_kills_ref_p): Declare.
* tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
Move the self-assignment case...
(dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
gcc/testsuite/
* gcc.dg/tree-ssa/pr62112-1.c: New file.
* gcc.dg/tree-ssa/pr62112-2.c: Likewise.
* gcc.c-torture/execute/pr35472.c: Add noclone attribute.
* gcc.c-torture/execute/20071219-1.c: Likewise.

From-SVN: r214262

9 years ago62154.cc: Disable when the target doesn't provide atomic builtins.
Tony Wang [Thu, 21 Aug 2014 09:11:00 +0000 (09:11 +0000)]
62154.cc: Disable when the target doesn't provide atomic builtins.

2014-08-21  Tony Wang  <tony.wang@arm.com>

    libstdc++-v3/
    * testsuite/18_support/nested_exception/62154.cc: Disable when the
    target doesn't provide atomic builtins.

From-SVN: r214261

9 years agotry_split returns an rtx_insn
David Malcolm [Thu, 21 Aug 2014 08:53:25 +0000 (08:53 +0000)]
try_split returns an rtx_insn

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

* rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.

* emit-rtl.c (try_split): Likewise, also for locals "before" and
"after".  For now, don't strengthen param "trial", which requires
adding checked casts when returning it.

From-SVN: r214260

9 years agoDebug hooks: use rtx_insn and rtx_code_label
David Malcolm [Thu, 21 Aug 2014 08:20:43 +0000 (08:20 +0000)]
Debug hooks: use rtx_insn and rtx_code_label

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

* debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
"label" from rtx to rtx_code_label *.  Strengthen param 1 of
"var_location" hook from rtx to rtx_insn *.
(debug_nothing_rtx): Delete in favor of...
(debug_nothing_rtx_code_label): New prototype.
(debug_nothing_rtx_rtx): Delete unused prototype.
(debug_nothing_rtx_insn): New prototype.

* final.c (final_scan_insn): Add checked cast to rtx_insn * when
invoking debug_hooks->var_location (in two places, one in a NOTE
case of a switch statement, the other guarded by a CALL_P
conditional.  Add checked cast to rtx_code_label * when invoking
debug_hooks->label (within CODE_LABEL case of switch statement).

* dbxout.c (dbx_debug_hooks): Update "label" hook from
debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
"var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
(xcoff_debug_hooks): Likewise.
* debug.c (do_nothing_debug_hooks): Likewise.
(debug_nothing_rtx): Delete in favor of...
(debug_nothing_rtx_insn): New function.
(debug_nothing_rtx_rtx): Delete unused function.
(debug_nothing_rtx_code_label): New function.
* dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
debug_nothing_rtx to debug_nothing_rtx_code_label.
(dwarf2out_var_location): Strengthen param "loc_note" from rtx
to rtx_insn *.
* sdbout.c (sdb_debug_hooks): Update "var_location" hook from
debug_nothing_rtx to debug_nothing_rtx_insn.
(sdbout_label): Strengthen param "insn" from rtx to
rtx_code_label *.
* vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
"var_location" hook from debug_nothing_rtx to
debug_nothing_rtx_insn.

From-SVN: r214259

9 years agoUse rtx_insn internally within generated functions
David Malcolm [Thu, 21 Aug 2014 07:49:28 +0000 (07:49 +0000)]
Use rtx_insn internally within generated functions

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

* recog.h (insn_output_fn): Update this function typedef to match
the changes below to the generated output functions, strengthening
the 2nd param from rtx to rtx_insn *.

* final.c (get_insn_template): Add a checked cast to rtx_insn * on
insn when invoking an output function, to match the new signature
of insn_output_fn with a stronger second param.

* genconditions.c (write_header): In the generated code for
gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
to match the other changes in this patch.

* genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
the generated "gen_" functions from rtx to rtx_insn * within their
implementations.

* genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
the subfunctions within the generated "recog_", "split", "peephole2"
function trees from rtx to rtx_insn *.  For now, the top-level
generated functions ("recog", "split", "peephole2") continue to
take a plain rtx for "insn", to avoid introducing dependencies on
other patches.  Rename this 2nd param from "insn" to
"uncast_insn", and reintroduce "insn" as a local variable of type
rtx_insn *, initialized at the top of the generated function with
a checked cast on "uncast_insn".
(make_insn_sequence): Strengthen the 1st param "curr_insn" of
the generated "gen_" functions from rtx to rtx_insn * within their
prototypes.

* genoutput.c (process_template): Strengthen the 2nd param within
the generated "output_" functions "insn" from rtx to rtx_insn *.

From-SVN: r214257

9 years agotree-profile.c (tree_profiling): Skip external functions when doing coverage instrume...
Jan Hubicka [Thu, 21 Aug 2014 06:18:48 +0000 (08:18 +0200)]
tree-profile.c (tree_profiling): Skip external functions when doing coverage instrumentation.

* tree-profile.c (tree_profiling): Skip external functions
when doing coverage instrumentation.
* cgraphunit.c (compile): Do not assert that all nodes are reachable.

* gcc.dg/ipa/ctor-empty-1.c: Update template.

From-SVN: r214256

9 years agoaltivec.h (vec_cpsgn): New #define.
Bill Schmidt [Thu, 21 Aug 2014 02:00:51 +0000 (02:00 +0000)]
altivec.h (vec_cpsgn): New #define.

[gcc]

2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/altivec.h (vec_cpsgn): New #define.
(vec_mergee): Likewise.
(vec_mergeo): Likewise.
(vec_cntlz): Likewise.
* config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
VMRGEW, and VMRGOW.
* doc/extend.texi: Document various forms of vec_cpsgn,
vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.

[gcc/testsuite]

2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* testsuite/gcc.target/powerpc/builtins-1.c: New test.

From-SVN: r214255

9 years agors6000.c (context.h): New include.
Bill Schmidt [Thu, 21 Aug 2014 01:56:41 +0000 (01:56 +0000)]
rs6000.c (context.h): New include.

[gcc]

2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (context.h): New include.
(tree-pass.h): Likewise.
(make_pass_analyze_swaps): New decl.
(rs6000_option_override): Register pass_analyze_swaps.
(swap_web_entry): New subsclass of web_entry_base (df.h).
(special_handling_values): New enum.
(union_defs): New function.
(union_uses): Likewise.
(insn_is_load_p): Likewise.
(insn_is_store_p): Likewise.
(insn_is_swap_p): Likewise.
(rtx_is_swappable_p): Likewise.
(insn_is_swappable_p): Likewise.
(chain_purpose): New enum.
(chain_contains_only_swaps): New function.
(mark_swaps_for_removal): Likewise.
(swap_const_vector_halves): Likewise.
(adjust_subreg_index): Likewise.
(permute_load): Likewise.
(permute_store): Likewise.
(handle_special_swappables): Likewise.
(replace_swap_with_copy): Likewise.
(dump_swap_insn_table): Likewise.
(rs6000_analyze_swaps): Likewise.
(pass_data_analyze_swaps): New pass_data.
(pass_analyze_swaps): New rtl_opt_pass.
(make_pass_analyze_swaps): New function.
* config/rs6000/rs6000.opt (moptimize-swaps): New option.

[gcc/testsuite]

2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.target/powerpc/swaps-p8-1.c: New test.
* gcc.target/powerpc/swaps-p8-2.c: New test.
* gcc.target/powerpc/swaps-p8-3.c: New test.
* gcc.target/powerpc/swaps-p8-4.c: New test.
* gcc.target/powerpc/swaps-p8-5.c: New test.
* gcc.target/powerpc/swaps-p8-6.c: New test.
* gcc.target/powerpc/swaps-p8-7.c: New test.
* gcc.target/powerpc/swaps-p8-8.c: New test.
* gcc.target/powerpc/swaps-p8-9.c: New test.
* gcc.target/powerpc/swaps-p8-10.c: New test.
* gcc.target/powerpc/swaps-p8-11.c: New test.
* gcc.target/powerpc/swaps-p8-12.c: New test.

From-SVN: r214254

9 years agocreate_insn_rtx_from_pattern and create_copy_of_insn_rtx return rtx_insn
David Malcolm [Thu, 21 Aug 2014 01:06:33 +0000 (01:06 +0000)]
create_insn_rtx_from_pattern and create_copy_of_insn_rtx return rtx_insn

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

* sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
type from rtx to rtx_insn *.
(create_copy_of_insn_rtx): Likewise.
* sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
(create_copy_of_insn_rtx): Likewise, also for local "res".

From-SVN: r214253

9 years agofind_first_parameter_load returns an rtx_insn
David Malcolm [Thu, 21 Aug 2014 00:59:41 +0000 (00:59 +0000)]
find_first_parameter_load returns an rtx_insn

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

* rtl.h (find_first_parameter_load): Strengthen return type from
rtx to rtx_insn *.
* rtlanal.c (find_first_parameter_load): Strengthen return type
from rtx to rtx_insn *.  Add checked cast for now, to postpone
strengthening the params.

From-SVN: r214252

9 years agore PR fortran/44054 (Handle -Werror, -Werror=, -fdiagnostics-show-option, !GCC$ diagn...
Manuel López-Ibáñez [Thu, 21 Aug 2014 00:27:25 +0000 (00:27 +0000)]
re PR fortran/44054 (Handle -Werror, -Werror=, -fdiagnostics-show-option, !GCC$ diagnostic (pragmas) and color)

gcc/ChangeLog:

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

PR fortran/44054
* diagnostic.c: Set default caret.
(diagnostic_show_locus): Use it. Tell pretty-printer that a new
line is needed.
* diagnostic.h (struct diagnostic_context):

gcc/fortran/ChangeLog:

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

PR fortran/44054
* error.c (gfc_diagnostic_build_locus_prefix): New function.
(gfc_diagnostic_starter): Follow Fortran FE diagnostics.
(gfc_diagnostic_finalizer): Do not call default finalizer.

From-SVN: r214251

9 years agoDaily bump.
GCC Administrator [Thu, 21 Aug 2014 00:16:52 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r214250

9 years agosel_bb_{head|end} return rtx_insn
David Malcolm [Thu, 21 Aug 2014 00:07:16 +0000 (00:07 +0000)]
sel_bb_{head|end} return rtx_insn

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

* sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
(sel_bb_head): Strengthen return type insn_t (currently just an
rtx) to rtx_insn *.
(sel_bb_end): Likewise.

* sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
(sel_bb_head): Strengthen return type and local "head" from
insn_t (currently just an rtx) to rtx_insn *.
(sel_bb_end): Likewise for return type.
(free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
working with insn.

From-SVN: r214247

9 years agoget_last_bb_insn returns an rtx_insn
David Malcolm [Wed, 20 Aug 2014 23:59:49 +0000 (23:59 +0000)]
get_last_bb_insn returns an rtx_insn

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

* basic-block.h (get_last_bb_insn): Strengthen return type from
rtx to rtx_insn *.
* cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
end".

From-SVN: r214246

9 years agore PR fortran/44054 (Handle -Werror, -Werror=, -fdiagnostics-show-option, !GCC$ diagn...
Manuel López-Ibáñez [Wed, 20 Aug 2014 23:07:29 +0000 (23:07 +0000)]
re PR fortran/44054 (Handle -Werror, -Werror=, -fdiagnostics-show-option, !GCC$ diagnostic (pragmas) and color)

gcc/ChangeLog:

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

PR fortran/44054
* diagnostic.c (default_diagnostic_finalizer): Move caret printing
 to here ...
(diagnostic_report_diagnostic): ... from here.
* toplev.c (general_init): Move code to c-family.

gcc/cp/ChangeLog:

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

PR fortran/44054
* error.c (cp_diagnostic_finalizer): Delete.
(init_error): Do not set diagnostic_finalizer here.

gcc/c-family/ChangeLog:

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

PR fortran/44054
* c-opts.c: Include tree-diagnostics.h.
(c_diagnostic_finalizer): New.
(c_common_initialize_diagnostics): Use it.

gcc/fortran/ChangeLog:

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

PR fortran/44054
* error.c (gfc_diagnostic_finalizer): Call default finalizer.

From-SVN: r214245

9 years agodf.h (web_entry_base): Replace existing struct web_entry with a new class web_entry_b...
Bill Schmidt [Wed, 20 Aug 2014 20:11:53 +0000 (20:11 +0000)]
df.h (web_entry_base): Replace existing struct web_entry with a new class web_entry_base with only the...

2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* df.h (web_entry_base): Replace existing struct web_entry with a
new class web_entry_base with only the predecessor member.
(unionfind_root): Remove declaration and move to class member.
(unionfind_union): Remove declaration and move to friend
function.
(union_defs): Remove declaration.
* web.c (web_entry_base::unionfind_root): Modify to be member
function and adjust accessors.
(unionfind_union): Modify to be friend function and adjust
accessors.
(web_entry): New subclass of web_entry_base containing the reg
member.
(union_match_dups): Modify for struct -> class changes.
(union_defs): Likewise.
(entry_register): Likewise.
(pass_web::execute): Likewise.

From-SVN: r214242

9 years ago* g++.dg/ipa/devirt-37.C: Fix testcase.
Jan Hubicka [Wed, 20 Aug 2014 18:32:10 +0000 (20:32 +0200)]
* g++.dg/ipa/devirt-37.C: Fix testcase.

From-SVN: r214240

9 years agors6000-c.c (rs6000_cpu_cpp_builtins): Provide builtin define __VEC_ELEMENT_REG_ORDER__.
Bill Schmidt [Wed, 20 Aug 2014 16:59:45 +0000 (16:59 +0000)]
rs6000-c.c (rs6000_cpu_cpp_builtins): Provide builtin define __VEC_ELEMENT_REG_ORDER__.

2014-08-20  Bill Schmidt  <wschmidt@vnet.ibm.com>

* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
builtin define __VEC_ELEMENT_REG_ORDER__.

From-SVN: r214236

9 years agoMiss to "svn add" test files in r214233 before commit.
Wei Mi [Wed, 20 Aug 2014 16:52:03 +0000 (16:52 +0000)]
Miss to "svn add" test files in r214233 before commit.

From-SVN: r214234

9 years agore PR lto/60449 (Merging function DECLs discards leaf attribute which causes cfg...
Martin Jambor [Wed, 20 Aug 2014 16:47:12 +0000 (18:47 +0200)]
re PR lto/60449 (Merging function DECLs discards leaf attribute which causes cfg verifier to fail)

2014-08-20  Martin Jambor  <mjambor@suse.cz>
    Wei Mi  <wmi@google.com>

PR ipa/60449
PR middle-end/61776
* tree-ssa-operands.c (update_stmt_operands): Remove
MODIFIED_NORETURN_CALLS.
* tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
(cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
(split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
(cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
* tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
* gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
(gimple_call_set_ctrl_altering): New func.
(gimple_call_ctrl_altering_p): Ditto.
* tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
(make_blocks): Use gimple_call_initialize_ctrl_altering.
(is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
(execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
remove MODIFIED_NORETURN_CALLS.

2014-08-20  Martin Jambor  <mjambor@suse.cz>
    Wei Mi  <wmi@google.com>

PR ipa/60449
PR middle-end/61776
* testsuite/gcc.dg/lto/pr60449_1.c: New test.
* testsuite/gcc.dg/lto/pr60449_0.c: New test.
* testsuite/gcc.dg/pr61776.c: New test.

Co-Authored-By: Wei Mi <wmi@google.com>
From-SVN: r214233

9 years agocoverage.c (coverage_compute_profile_id): Return non-0; also handle symbols with...
Jan Hubicka [Wed, 20 Aug 2014 16:33:20 +0000 (18:33 +0200)]
coverage.c (coverage_compute_profile_id): Return non-0; also handle symbols with unique name.

* coverage.c (coverage_compute_profile_id): Return non-0;
also handle symbols with unique name.
(coverage_end_function): Do not skip DECL_EXTERNAL functions.

From-SVN: r214232

9 years agore PR libfortran/62188 (Array bounds overrun in bessel_yn_r4/8/16 and other functions)
Steven G. Kargl [Wed, 20 Aug 2014 16:18:27 +0000 (16:18 +0000)]
re PR libfortran/62188 (Array bounds overrun in bessel_yn_r4/8/16 and other functions)

2014-08-20  Steven G. Kargl  <kargl@gcc.gnu.org>

PR libgfortran/62188
* m4/bessel.m4: Avoid indexing off the end of an array.
* generated/bessel_r10.c: Regenerated.
* generated/bessel_r16.c: Ditto.
* generated/bessel_r4.c: Ditto.
* generated/bessel_r8.c: Ditto.

From-SVN: r214229

9 years agore PR middle-end/49191 (gcc.dg/memcpy-3.c FAILs on SPARC)
Steve Ellcey [Wed, 20 Aug 2014 15:57:42 +0000 (15:57 +0000)]
re PR middle-end/49191 (gcc.dg/memcpy-3.c FAILs on SPARC)

2014-08-20  Steve Ellcey  <sellcey@mips.com>

PR middle-end/49191
* lib/target-supports.exp (check_effective_target_non_strict_align):
Add function description.

From-SVN: r214227

9 years agore PR middle-end/49191 (gcc.dg/memcpy-3.c FAILs on SPARC)
Steve Ellcey [Wed, 20 Aug 2014 15:56:45 +0000 (15:56 +0000)]
re PR middle-end/49191 (gcc.dg/memcpy-3.c FAILs on SPARC)

2014-08-20  Steve Ellcey  <sellcey@mips.com>

PR middle-end/49191
* doc/sourcebuild.texi (non_strict_align): New.

From-SVN: r214226