platform/upstream/gcc.git
10 years agoconfig/microblaze/microblaze.c: Use rtx_insn and rtx_code_label
David Malcolm [Mon, 25 Aug 2014 18:11:38 +0000 (18:11 +0000)]
config/microblaze/microblaze.c: Use rtx_insn and rtx_code_label

gcc/
* config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
Strengthen return type and local "insns" from rtx to rtx_insn *.
(microblaze_legitimize_tls_address): Likewise for local "insns".
(microblaze_block_move_loop): Strengthen local "label" from rtx
to rtx_code_label *.
(microblaze_expand_prologue): Strengthen two locals named "insn"
from rtx to rtx_insn *.
(microblaze_asm_output_mi_thunk): Likewise for local "insn".
(microblaze_expand_divide): Likewise for locals "jump", "cjump",
"insn".  Strengthen locals "div_label", "div_end_label" from rtx
to rtx_code_label *.

From-SVN: r214449

10 years agoconfig/mep: Use rtx_insn and rtx_code_label
David Malcolm [Mon, 25 Aug 2014 18:05:57 +0000 (18:05 +0000)]
config/mep: Use rtx_insn and rtx_code_label

gcc/
* config/mep/mep-protos.h (mep_mulr_source): Strengthen first
param from rtx to rtx_insn *.
(mep_reuse_lo): Likewise for third param.
(mep_use_post_modify_p): Likewise for first param.
(mep_core_address_length): Likewise.
(mep_cop_address_length): Likewise.
(mep_final_prescan_insn): Likewise.
(mep_store_data_bypass_p): Likewise for both params.
(mep_mul_hilo_bypass_p): Likewise.
(mep_ipipe_ldc_p): Likewise for param.

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

From-SVN: r214448

10 years agoconfig/m68k: Use rtx_insn
David Malcolm [Mon, 25 Aug 2014 17:59:24 +0000 (17:59 +0000)]
config/m68k: Use rtx_insn

gcc/
* config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
rtx to rtx_insn *.
(strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
(m68k_final_prescan_insn): Likewise for first param.

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

From-SVN: r214447

10 years agoconfig/iq2000: Use rtx_insn
David Malcolm [Mon, 25 Aug 2014 17:51:31 +0000 (17:51 +0000)]
config/iq2000: Use rtx_insn

gcc/
* config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
first param from rtx to rtx_insn *.
(iq2000_adjust_insn_length): Likewise.
(iq2000_output_conditional_branch): Likewise.
* config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
"insn" and local "nop_insn".
(iq2000_annotate_frame_insn): Likewise for param "insn".
(iq2000_expand_prologue): Likewise for both locals "insn".
(iq2000_adjust_insn_length): Likewise for param "insn".
(iq2000_output_conditional_branch): Likewise.

From-SVN: r214446

10 years agoconfig/ia64/ia64.c: Use rtx_insn
David Malcolm [Mon, 25 Aug 2014 17:43:41 +0000 (17:43 +0000)]
config/ia64/ia64.c: Use rtx_insn

gcc/
* config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
"insns" from rtx to rtx_insn *.
(ia64_emit_cond_move): Likewise for locals "insn", "first".
(struct spill_fill_data): Likewise for field "init_after" and for
elements of array field "prev_insn".
(spill_restore_mem): Likewise for locals "insn", "first".
(do_spill): Likewise for local "insn".
(do_restore): Likewise.
(ia64_expand_prologue): Likewise.
(ia64_expand_epilogue): Likewise.
(emit_insn_group_barriers): Likewise for locals "insn",
"last_label".
(emit_all_insn_group_barriers): Likewise for locals "insn",
"last".
(dfa_stop_insn): Likewise for this global.
(dfa_pre_cycle_insn): Likewise.
(ia64_nop): Likewise.
(final_emit_insn_group_barriers): Likewise for locals "insn",
"last".
(emit_predicate_relation_info): Likewise for locals "head", "n",
"insn", "b", "a".
(ia64_reorg): Likewise for local "insn".
(ia64_output_mi_thunk): Likewise.
(expand_vec_perm_interleave_2): Likewise for local "seq".

From-SVN: r214445

10 years agoconfig/i386/i386: Use rtx_insn
David Malcolm [Mon, 25 Aug 2014 17:34:45 +0000 (17:34 +0000)]
config/i386/i386: Use rtx_insn

gcc/
* config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
param 1 "insn" from rtx to rtx_insn *.
(ix86_use_lea_for_mov): Likewise.
(ix86_avoid_lea_for_addr): Likewise.
(ix86_split_lea_for_addr): Likewise.
(ix86_lea_for_add_ok): Likewise.
(ix86_output_call_insn): Likewise.

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

From-SVN: r214444

10 years agoconfig/i386/i386.c: Use rtx_code_label
David Malcolm [Mon, 25 Aug 2014 17:32:12 +0000 (17:32 +0000)]
config/i386/i386.c: Use rtx_code_label

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

From-SVN: r214443

10 years agoconfig/h8300: Use rtx_insn
David Malcolm [Mon, 25 Aug 2014 17:23:42 +0000 (17:23 +0000)]
config/h8300: Use rtx_insn

gcc/
* config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
first param from rtx to rtx_insn *.
(h8300_insn_length_from_table): Likewise.
* config/h8300/h8300.c (F): Likewise for return type and param
"x".
(Fpa): Add a checked cast to rtx_insn *.
(h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
rtx_insn *.
(final_prescan_insn): Likewise for param "insn".
(h8300_binary_length): Likewise.
(h8300_insn_length_from_table): Likewise.

From-SVN: r214442

10 years agoconfig/epiphany: Use rtx_insn
David Malcolm [Mon, 25 Aug 2014 17:16:51 +0000 (17:16 +0000)]
config/epiphany: Use rtx_insn

gcc/
* config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
Strengthen first param "insn" from rtx to rtx_insn *.

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

From-SVN: r214441

10 years agoconfig/c6x: Use rtx_insn
David Malcolm [Mon, 25 Aug 2014 17:10:21 +0000 (17:10 +0000)]
config/c6x: Use rtx_insn

gcc/
* config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
param from rtx to rtx_insn *.
(c6x_final_prescan_insn): Likewise for first param.

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

From-SVN: r214440

10 years agoconfig/bfin: Use rtx_insn
David Malcolm [Mon, 25 Aug 2014 17:04:31 +0000 (17:04 +0000)]
config/bfin: Use rtx_insn

gcc/
* config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
param 1 from rtx to rtx_insn *.
* config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
the various locals named "insn".
(expand_epilogue_reg_restore): Likewise.
(frame_related_constant_load): Likewise.
(add_to_reg): Likewise.
(emit_link_insn): Likewise.
(do_link): Likewise.
(expand_interrupt_handler_prologue): Likewise.
(branch_dest): Likewise for param "branch".
(asm_conditional_branch): Likewise for param "insn".
(gen_one_bundle): Likewise for elements of param "slot" and local
"t".
(bfin_gen_bundles): Likewise for locals "insn", "next" and
elements of local "slot".
(reorder_var_tracking_notes): Likewise for locals "insn", "next",
"queue", "next_queue", "prev".
(workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
(add_sched_insns_for_speculation): Likewise for local "insn".

From-SVN: r214439

10 years agoconfig/avr: Use rtx_insn
David Malcolm [Mon, 25 Aug 2014 16:58:24 +0000 (16:58 +0000)]
config/avr: Use rtx_insn

gcc/
* config/avr/avr-protos.h (output_movqi): Strengthen first param
from rtx to rtx_insn *.
(output_movhi): Likewise.
(output_movsisf): Likewise.
(avr_out_tstsi): Likewise.
(avr_out_tsthi): Likewise.
(avr_out_tstpsi): Likewise.
(avr_out_compare): Likewise.
(avr_out_compare64): Likewise.
(avr_out_movpsi): Likewise.
(ashlqi3_out): Likewise.
(ashlhi3_out): Likewise.
(ashlsi3_out): Likewise.
(ashrqi3_out): Likewise.
(ashrhi3_out): Likewise.
(ashrsi3_out): Likewise.
(lshrqi3_out): Likewise.
(lshrhi3_out): Likewise.
(lshrsi3_out): Likewise.
(avr_out_ashlpsi3): Likewise.
(avr_out_ashrpsi3): Likewise.
(avr_out_lshrpsi3): Likewise.
(avr_out_fract): Likewise.
(avr_out_sbxx_branch): Likewise.
(avr_out_round): Likewise.
(avr_out_xload): Likewise.
(avr_out_movmem): Likewise.
(adjust_insn_length): Likewise.
(avr_out_lpm): Likewise.
(reg_unused_after): Likewise.
(_reg_unused_after): Likewise.
(avr_jump_mode): Likewise for second param.
(jump_over_one_insn): Likewise for first param.
(avr_final_prescan_insn): Likewise.
(out_shift_with_cnt): Likewise for second param.

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

From-SVN: r214438

10 years agoconfig/arm: Use rtx_insn and rtx_code_label
David Malcolm [Mon, 25 Aug 2014 16:41:29 +0000 (16:41 +0000)]
config/arm: Use rtx_insn and rtx_code_label

gcc/
* config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
param from rtx to rtx_insn *.
(thumb1_final_prescan_insn): Likewise.
(thumb2_final_prescan_insn): Likewise.

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

From-SVN: r214437

10 years agoconfig/arc: Use rtx_insn
David Malcolm [Mon, 25 Aug 2014 16:36:54 +0000 (16:36 +0000)]
config/arc: Use rtx_insn

gcc/
* config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
first param from rtx to rtx_insn *.
(arc_verify_short): Likewise.
(arc_short_long): Likewise.
(arc_need_delay): Likewise.

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

From-SVN: r214436

10 years agoconfig/alpha/alpha.c: Use rtx_insn
David Malcolm [Mon, 25 Aug 2014 16:31:30 +0000 (16:31 +0000)]
config/alpha/alpha.c: Use rtx_insn

gcc/
* config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
"insn" from rtx to rtx_insn *.
(alpha_gp_save_rtx): Likewise for local "seq".
(alpha_instantiate_decls): Likewise for local "top".
(get_some_local_dynamic_name): Likewise for local "insn".
(alpha_does_function_need_gp): Likewise.
(set_frame_related_p): Likewise for return type and for locals
"seq" and "insn".
(emit_frame_store_1): Likewise for local "insn".
(alpha_expand_prologue): Likewise for locals "insn", "seq".
(alpha_end_function): Likewise for local "insn".
(alpha_output_mi_thunk_osf): Likewise.
(alphaev4_insn_pipe): Likewise for param "insn".
(alphaev5_insn_pipe): Likewise.
(alphaev4_next_group): Likewise for return type and param 1
"insn".
(alphaev5_next_group): Likewise.
(alpha_align_insns_1): Likewise for return type and param 1 of
callback param "next_group", and for locals "i", "next", "prev",
"where", "where2", "insn".

From-SVN: r214435

10 years agoFix invalid gimple made by finalize_nesting_tree_1.
Bernd Schmidt [Mon, 25 Aug 2014 16:15:49 +0000 (16:15 +0000)]
Fix invalid gimple made by finalize_nesting_tree_1.

* tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
rather than modifying the stmt.

From-SVN: r214434

10 years agoConvert execute.exp to use the dg framework.
Bernd Schmidt [Mon, 25 Aug 2014 16:12:35 +0000 (16:12 +0000)]
Convert execute.exp to use the dg framework.

* gcc.c-torture/execute/execute.exp: Replace with slightly adapted
copy of compile/compile.exp.
* gcc.c-torture/execute/20010122-1.c: Skip if -fomit-frame-pointer.
* gcc.c-torture/execute/20010129-1.c: Add -mtune=i686 if compiling for
i?86-*.
* gcc.c-torture/execute/20020404-1.c: Require int32plus.  Skip if
m32c-*-*.
* gcc.c-torture/execute/20021024-1.c: Require int32plus.
* gcc.c-torture/execute/20021127-1.c: Add -std=c99 option.
* gcc.c-torture/execute/20030125-1.c: Require c99_runtime.
* gcc.c-torture/execute/20030216-1.c: Skip if -O1.
* gcc.c-torture/execute/20030222-1.c: Skip on spu-*-*.
* gcc.c-torture/execute/20040629-1.c: Require int32plus.
* gcc.c-torture/execute/20040703-1.c: Likewise.
* gcc.c-torture/execute/20040705-1.c: Likewise.
* gcc.c-torture/execute/20040705-2.c: Likewise.
* gcc.c-torture/execute/20040709-1.c: Likewise.
* gcc.c-torture/execute/20040709-2.c: Likewise.
* gcc.c-torture/execute/20040811-1.c: Likewise.
* gcc.c-torture/execute/20050316-1.c: Likewise.  Add -Wno-psabi.
* gcc.c-torture/execute/20050316-2.c: Use -mno-mmx -Wno-psabi when
compiling for x86_64-* or i?86-*.
* gcc.c-torture/execute/20050604-1.c: Likewise.
* gcc.c-torture/execute/20050316-3.c: Add -Wno-psabi option.
* gcc.c-torture/execute/20050604-1.c: Use -mno-mmx when compiling
for x86_64-* or i?86-*.
* gcc.c-torture/execute/20061101-1.c: Require int32plus.
* gcc.c-torture/execute/20061220-1.c: Skip on rl78-*.
* gcc.c-torture/execute/20081117-1.c: Require int32plus.
* gcc.c-torture/execute/20101011-1.c: Add -fnon-call-exceptions
option.
* gcc.c-torture/execute/20111227-2.c: Moved to...
* gcc.dg/20111227-2.c: ... here.  Add -free option.
* gcc.c-torture/execute/20111227-3.c: Likewise move to...
* gcc.dg/20111227-3.c: ... here.  Add -free option.
* gcc.c-torture/execute/20120919-1.c: Require int32plus.
* gcc.c-torture/execute/920612-1.c: Add -fwrapv option.  Add
declarations for abort and exit.
* gcc.c-torture/execute/920711-1.c: Likewise.
* gcc.c-torture/execute/930529-1.c: Likewise.
* gcc.c-torture/execute/980709-1.c: Xfail if on AIX with -msoft-float.
* gcc.c-torture/execute/981130-1.c: Xfail on m32r-* with scheduling.
* gcc.c-torture/execute/990127-1.c: Add delcarations for abort and
exit.
* gcc.c-torture/execute/990127-2.c: Add -mpc64 option if compiling
for i?86-* or x86_64-*.  Add declarations for abort and exit.
* gcc.c-torture/execute/990413-2.c: Skip if not compiling for
i?86-* or x86_64-*.
* gcc.c-torture/execute/990826-0.c: Xfail if on AIX with -msoft-float.
* gcc.c-torture/execute/bf64-1.c: Xfail on mcore-*.
* gcc.c-torture/execute/bitfld-4.c: Require int32plus.
* gcc.c-torture/execute/cmpsi-2.c: Likewise.
* gcc.c-torture/execute/eeprof-1.c: Add -finstrument-functions option.
Xfail on powerpc-ibm-aix*.  Add declaration for abort.
* gcc.c-torture/execute/ipa-sra-2.c: Require int32plus.
* gcc.c-torture/execute/loop-2f.c: Require mmap.  Skip if on
m68k-linux.
* gcc.c-torture/execute/loop-2g.c: Likewise.
* gcc.c-torture/execute/mode-dependent-address.c: Require stdint_types.
* gcc.c-torture/execute/nest-align-1.c: Add -mno-eabi option for
powerpc-*-eabi*.
* gcc.c-torture/execute/pr19689.c: Require int32plus.
* gcc.c-torture/execute/pr22493-1.c: Add -fwrapv option.
* gcc.c-torture/execute/pr23047.c: Likewise.
* gcc.c-torture/execute/pr23135.c: Add -Wno-psabi option.  Add
declarations for abort and exit.
* gcc.c-torture/execute/pr29797-1.c: Require int32plus.
* gcc.c-torture/execute/pr31448.c: Likewise.
* gcc.c-torture/execute/pr35456.c: Skip on vax.
* gcc.c-torture/execute/pr37573.c: Require int32plus.
* gcc.c-torture/execute/pr38151.c: Add -Wno-psabi option.
* gcc.c-torture/execute/pr39228.c: Add -mieee for sh* and alpha*.
Skip on spu-*.
* gcc.c-torture/execute/pr39501.c: Add -ffast-math option.  Add
declarations for abort and exit.
* gcc.c-torture/execute/pr40386.c: Add declarations for abort and exit.
* gcc.c-torture/execute/pr43220.c: Require int32plus.
* gcc.c-torture/execute/pr44583.c: Add -mieee option for sh*.
* gcc.c-torture/execute/pr45262.c: Require int32plus.
* gcc.c-torture/execute/pr47237.c: Xfail on nios2-*.
* gcc.c-torture/execute/pr51581-1.c: Require int32plus.
* gcc.c-torture/execute/pr51582-2.c: Likewise.
* gcc.c-torture/execute/pr52979-1.c: Likewise.
* gcc.c-torture/execute/pr52979-2.c: Likewise.
* gcc.c-torture/execute/pr56799.c: Likewise.
* gcc.c-torture/execute/pr57124.c: Likewise.  Add -fno-strict-overflow
option.  Add declarations for abort and exit.
* gcc.c-torture/execute/pr57344-2.c: Require int32plus.
* gcc.c-torture/execute/pr58570.c: Likewise.
* gcc.c-torture/execute/pr60822.c: Likewise.
* gcc.c-torture/execute/pr7284-1.c: Likewise.
* gcc.c-torture/execute/shiftdi.c: Likewise.
* gcc.c-torture/execute/simd-4.c: Require stdint_types.
* gcc.c-torture/execute/strncmp-1.c: Xfail if vxworks_kernel.
* gcc.c-torture/execute/usmul.c: Require int32plus.
* gcc.c-torture/execute/vrp-5.c: Likewise.
* gcc.c-torture/execute/vrp-6.c: Likewise.
* gcc.c-torture/execute/zerolen-2.c: Skip on epiphany-*.
* gcc.c-torture/execute/20010122-1.x: Delete.
* gcc.c-torture/execute/20010129-1.x: Delete.
* gcc.c-torture/execute/20020404-1.x: Delete.
* gcc.c-torture/execute/20021024-1.x: Delete.
* gcc.c-torture/execute/20021127-1.x: Delete.
* gcc.c-torture/execute/20030125-1.x: Delete.
* gcc.c-torture/execute/20030216-1.x: Delete.
* gcc.c-torture/execute/20030222-1.x: Delete.
* gcc.c-torture/execute/20040629-1.x: Delete.
* gcc.c-torture/execute/20040703-1.x: Delete.
* gcc.c-torture/execute/20040705-1.x: Delete.
* gcc.c-torture/execute/20040705-2.x: Delete.
* gcc.c-torture/execute/20040709-1.x: Delete.
* gcc.c-torture/execute/20040709-2.x: Delete.
* gcc.c-torture/execute/20040811-1.x: Delete.
* gcc.c-torture/execute/20050316-1.x: Delete.
* gcc.c-torture/execute/20050316-2.x: Delete.
* gcc.c-torture/execute/20050316-3.x: Delete.
* gcc.c-torture/execute/20050604-1.x: Delete.
* gcc.c-torture/execute/20061101-1.x: Delete.
* gcc.c-torture/execute/20061220-1.x: Delete.
* gcc.c-torture/execute/20081117-1.x: Delete.
* gcc.c-torture/execute/20101011-1.x: Delete.
* gcc.c-torture/execute/20120919-1.x: Delete.
* gcc.c-torture/execute/920612-1.x: Delete.
* gcc.c-torture/execute/920710-1.x: Delete.
* gcc.c-torture/execute/920711-1.x: Delete.
* gcc.c-torture/execute/930529-1.x: Delete.
* gcc.c-torture/execute/931004-12.x: Delete.
* gcc.c-torture/execute/980709-1.x: Delete.
* gcc.c-torture/execute/981130-1.x: Delete.
* gcc.c-torture/execute/990127-2.x: Delete.
* gcc.c-torture/execute/990413-2.x: Delete.
* gcc.c-torture/execute/990826-0.x: Delete.
* gcc.c-torture/execute/bf64-1.x: Delete.
* gcc.c-torture/execute/bitfld-4.x: Delete.
* gcc.c-torture/execute/cmpsi-2.x: Delete.
* gcc.c-torture/execute/cvt-1.x: Delete.
* gcc.c-torture/execute/eeprof-1.x: Delete.
* gcc.c-torture/execute/ipa-sra-2.x: Delete.
* gcc.c-torture/execute/loop-2f.x: Delete.
* gcc.c-torture/execute/loop-2g.x: Delete.
* gcc.c-torture/execute/mode-dependent-address.x: Delete.
* gcc.c-torture/execute/nest-align-1.x: Delete.
* gcc.c-torture/execute/pr19689.x: Delete.
* gcc.c-torture/execute/pr22493-1.x: Delete.
* gcc.c-torture/execute/pr23047.x: Delete.
* gcc.c-torture/execute/pr23135.x: Delete.
* gcc.c-torture/execute/pr29797-1.x: Delete.
* gcc.c-torture/execute/pr31448.x: Delete.
* gcc.c-torture/execute/pr35456.x: Delete.
* gcc.c-torture/execute/pr37573.x: Delete.
* gcc.c-torture/execute/pr38151.x: Delete.
* gcc.c-torture/execute/pr39228.x: Delete.
* gcc.c-torture/execute/pr39501.x: Delete.
* gcc.c-torture/execute/pr40386.x: Delete.
* gcc.c-torture/execute/pr43220.x: Delete.
* gcc.c-torture/execute/pr44683.x: Delete.
* gcc.c-torture/execute/pr45262.x: Delete.
* gcc.c-torture/execute/pr47237.x: Delete.
* gcc.c-torture/execute/pr51581-1.x: Delete.
* gcc.c-torture/execute/pr51581-2.x: Delete.
* gcc.c-torture/execute/pr52979-1.x: Delete.
* gcc.c-torture/execute/pr52979-2.x: Delete.
* gcc.c-torture/execute/pr53366-1.x: Delete.
* gcc.c-torture/execute/pr56799.x: Delete.
* gcc.c-torture/execute/pr57124.x: Delete.
* gcc.c-torture/execute/pr57344-2.x: Delete.
* gcc.c-torture/execute/pr58570.x: Delete.
* gcc.c-torture/execute/pr60822.x: Delete.
* gcc.c-torture/execute/pr7284-1.x: Delete.
* gcc.c-torture/execute/shiftdi.x: Delete.
* gcc.c-torture/execute/simd-4.x: Delete.
* gcc.c-torture/execute/strncmp-1.x: Delete.
* gcc.c-torture/execute/usmul.x: Delete.
* gcc.c-torture/execute/vrp-5.x: Delete.
* gcc.c-torture/execute/vrp-6.x: Delete.
* gcc.c-torture/execute/zerolen-2.x: Delete.

From-SVN: r214433

10 years ago2014-08.25 Jan-Benedict Glaw <jbglaw@lug-owl.de>
Jan-Benedict Glaw [Mon, 25 Aug 2014 15:53:22 +0000 (15:53 +0000)]
2014-08.25  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

* config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
cgraph_state conversion.

From-SVN: r214429

10 years agoconfig/aarch64/aarch64.c: Use rtx_insn
David Malcolm [Mon, 25 Aug 2014 15:26:01 +0000 (15:26 +0000)]
config/aarch64/aarch64.c: Use rtx_insn

gcc/
* config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
Strengthen local "insns" from rtx to rtx_insn *.
(aarch64_set_frame_expr): Likewise for local "insn".
(aarch64_save_or_restore_fprs): Likewise.
(aarch64_save_or_restore_callee_save_registers): Likewise.
(aarch64_expand_prologue): Likewise.
(aarch64_expand_epilogue): Likewise.
(aarch64_output_mi_thunk): Likewise.
(aarch64_split_compare_and_swap): Strengthen locals "label1" and
"label2" from rtx to rtx_code_label *.
(aarch64_split_atomic_op): Likewise for local "label".

From-SVN: r214428

10 years agoIPA C++ refactoring 4/N
Martin Liska [Mon, 25 Aug 2014 13:01:47 +0000 (15:01 +0200)]
IPA C++ refactoring 4/N

* cgraph.h (symtab_node):
(bool needed_p (void)): created from decide_is_symbol_needed
(bool referred_to_p (void)): created from referred_to_p
(static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
* cgraph.h (cgraph_node):
(void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
(void expand (void)): created from expand_function
(static void finalize_function (tree, bool)): created from cgraph_finalize_function
(static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
(static cgraph_global_info *global_info (tree)): created from cgraph_global_info
(static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
* cgraph.h (varpool_node):
(static void add (tree decl): created from varpool_add_new_variable
* cgraph.h (cgraph_edge):
void remove (void);
(void remove_caller (void)): created from cgraph_edge_remove_caller
(void remove_callee (void)): created from cgraph_edge_remove_callee
(void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
  created from cgraph_set_call_stmt
(void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
(cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
(cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
  gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
(void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
  created from cgraph_speculative_call_info
(cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
  int freq_scale, bool update_original)): created from cgraph_clone_edge
(cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
(bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
(bool recursive_p (void)): created from cgraph_edge_recursive_p
(bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
(static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
(static void rebuild_references (void)): created from cgraph_rebuild_references
* cgraph.h (symbol_table):
(create_reference): renamed from add_reference
(maybe_create_reference): renamed from maybe_add_reference
(void register_symbol (symtab_node *node)): new function
(void clear_asm_symbols (void)): new function
(void unregister (symtab_node *node)): new function
(void release_symbol (cgraph_node *node, int uid)): new function
(cgraph_node * allocate_cgraph_symbol (void)): new function
(void initialize (void)): created from cgraph_init
(symtab_node *first_symbol (void)):new function
(asm_node *first_asm_symbol (void)):new function
(symtab_node *first_defined_symbol (void)):new function
(varpool_node *first_variable (void)):new function
(varpool_node *next_variable (varpool_node *node)):new function
(varpool_node *first_static_initializer (void)):new function
(varpool_node *next_static_initializer (varpool_node *node)):new function
(varpool_node *first_defined_variable (void)):new function
(varpool_node *next_defined_variable (varpool_node *node)):new function
(cgraph_node *first_defined_function (void)):new function
(cgraph_node *next_defined_function (cgraph_node *node)):new function
(cgraph_node *first_function (void)):new function
(cgraph_node *next_function (cgraph_node *node)):new function
(cgraph_node *first_function_with_gimple_body (void)):new function
(asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
(bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
  created from symtab_remove_unreachable_nodes
(void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
(void process_new_functions (void)): created from cgraph_process_new_functions
(void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
(bool output_variables (void)): created from varpool_node::output_variables
(void output_asm_statements (void)): created from output_asm_statements
(void finalize_compilation_unit (void)): created from finalize_compilation_unit
(void compile (void)): created from compile
(void output_weakrefs (void)): created from output_weakrefs
(cgraph_node *create_empty (void)): created from cgraph_node::create_empty
(cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
  gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
(void free_edge (cgraph_edge *e)): created from cgraph_free_edge
(cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
  created from cgraph_next_function_with_gimple_body
(void remove_edge_removal_hook (cgraph_edge_hook_list *)):
  created from cgraph_remove_edge_removal_hook
(cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
  created from cgraph_add_node_removal_hook
(void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
  created from cgraph_remove_node_removal_hook
(varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
  created from varpool_add_node_removal_hook
(void remove_varpool_removal_hook (varpool_node_hook_list *)):
  created from varpool_remove_node_removal_hook
(cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
  created from cgraph_add_function_insertion_hook
(void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
  created from cgraph_remove_function_insertion_hook
(varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
  created from varpool_add_variable_insertion_hook
(void remove_varpool_insertion_hook (varpool_node_hook_list *)):
  created from varpool_remove_variable_insertion_hook
(cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
  created from cgraph_add_edge_duplication_hook
(void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
  created from cgraph_remove_edge_duplication_hook
(cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
  created from cgraph_add_node_duplication_hook
(void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
  created from cgraph_remove_node_duplication_hook
(void call_edge_removal_hooks (cgraph_edge *e)):
  created from cgraph_call_edge_removal_hooks
(void call_cgraph_insertion_hooks (cgraph_node *node)):
  created from call_function_insertion_hooks
(void call_cgraph_removal_hooks (cgraph_node *node)):
  created from cgraph_call_node_removal_hooks
(void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
  created from cgraph_node::call_duplication_hooks
(void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
  created from cgraph_call_edge_duplication_hooks
(void call_varpool_removal_hooks (varpool_node *node)):
  created from varpool_call_node_removal_hooks
(void call_varpool_insertion_hooks (varpool_node *node)):
  created from varpool_call_variable_insertion_hooks
(void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
  created from insert_to_assembler_name_hash
(void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
  created from unlink_from_assembler_name_hash
(void symtab_prevail_in_asm_name_hash (symtab_node *node)):
  created from symtab_prevail_in_asm_name_hash
(void symtab_initialize_asm_name_hash (void)):
  created from symtab_initialize_asm_name_hash
(void change_decl_assembler_name (tree decl, tree name)):
  created from change_decl_assembler_name
(void materialize_all_clones (void)): created from cgraph_materialize_all_clones
(static hashval_t decl_assembler_name_hash (const_tree asmname)):
  created from decl_assembler_name_hash
(static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
  created from decl_assembler_name_equal
(static hashval_t hash_node_by_assembler_name (const void *p)):
  created from hash_node_by_assembler_name
(static int eq_assembler_name (const void *p1, const void *p2)):
  created from eq_assembler_name

From-SVN: r214422

10 years agodecl.c (start_decl): Look through member variable template.
Jason Merrill [Mon, 25 Aug 2014 12:48:22 +0000 (08:48 -0400)]
decl.c (start_decl): Look through member variable template.

* decl.c (start_decl): Look through member variable template.
* pt.c (tsubst_decl) [VAR_DECL]: Handle member variable templates.
* decl2.c (grokfield): Set DECL_CONTEXT earlier on
variables.

From-SVN: r214420

10 years ago* config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
Marek Polacek [Mon, 25 Aug 2014 12:31:15 +0000 (12:31 +0000)]
* config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.

From-SVN: r214419

10 years agoi386.md (SWI1248_AVX512BW): New mode iterator.
Petr Murzin [Mon, 25 Aug 2014 11:39:18 +0000 (11:39 +0000)]
i386.md (SWI1248_AVX512BW): New mode iterator.

gcc/
        * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
        (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
        SWI1248_AVX512BW mode iterator.

From-SVN: r214417

10 years agovar1.C: Use c++14, not c++1y, in dg-error.
Paolo Carlini [Mon, 25 Aug 2014 10:24:17 +0000 (10:24 +0000)]
var1.C: Use c++14, not c++1y, in dg-error.

2014-08-25  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.old-deja/g++.pt/var1.C: Use c++14, not c++1y, in dg-error.

From-SVN: r214416

10 years agore PR c++/34938 (ICE with function pointers and attribute noreturn)
Paolo Carlini [Mon, 25 Aug 2014 08:32:04 +0000 (08:32 +0000)]
re PR c++/34938 (ICE with function pointers and attribute noreturn)

/cp
2014-08-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/34938
* cp-tree.h (TFF_POINTER): Add.
* cxx-pretty-print.h (pp_cxx_cv_qualifiers): Forward the third
argument too.
* error.c (dump_type_suffix): Actually print the const and noreturn
attribute when appropriate.

/testsuite
2014-08-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/34938
* g++.dg/template/pr34938-1.C: New.
* g++.dg/template/pr34938-2.C: Likewise.

From-SVN: r214415

10 years agoc.opt: Change -std=c++1y and -std=gnu++1y to be aliases for -std=c++14 and -std=gnu...
Jason Merrill [Mon, 25 Aug 2014 05:05:01 +0000 (01:05 -0400)]
c.opt: Change -std=c++1y and -std=gnu++1y to be aliases for -std=c++14 and -std=gnu++14...

* c.opt: Change -std=c++1y and -std=gnu++1y to be aliases for
-std=c++14 and -std=gnu++14, rather than the reverse.
* c-opts.c (c_common_handle_option): Change OPT_std_c__1y and
OPT_std_gnu__1y to OPT_std_c__14 and OPT_std_gnu__14.
* c-common.h (cxx_dialect): Remove cxx1y.

From-SVN: r214414

10 years agore PR target/62111 (ICE when building Linux kernel for sh64)
Kaz Kojima [Mon, 25 Aug 2014 00:37:51 +0000 (00:37 +0000)]
re PR target/62111 (ICE when building Linux kernel for sh64)

PR target/62111
* config/sh/predicates.md (general_extend_operand): Disable
TRUNCATE before reload completes.

From-SVN: r214413

10 years agoDaily bump.
GCC Administrator [Mon, 25 Aug 2014 00:17:28 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r214412

10 years ago* doc/invoke.texi (Optimize Options): Fix markup in two cases.
Gerald Pfeifer [Sun, 24 Aug 2014 19:26:49 +0000 (19:26 +0000)]
* doc/invoke.texi (Optimize Options): Fix markup in two cases.

From-SVN: r214409

10 years agore PR target/61996 ([SH] -musermode conflicts with -matomic-model=soft-imask)
Oleg Endo [Sun, 24 Aug 2014 10:46:25 +0000 (10:46 +0000)]
re PR target/61996 ([SH] -musermode conflicts with -matomic-model=soft-imask)

gcc/
PR target/61996
* config/sh/sh.opt (musermode): Allow negative form.
* config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
targets that don't support it.
* doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
Document -mno-usermode option.

gcc/testsuite

PR target/61996
* gcc.target/sh/pr61996.c: New.

From-SVN: r214406

10 years agoRemove CALLER_SAVE_PROFITABLE since it is not used at present.
Kito Cheng [Sun, 24 Aug 2014 02:52:46 +0000 (02:52 +0000)]
Remove CALLER_SAVE_PROFITABLE since it is not used at present.

* system.h (CALLER_SAVE_PROFITABLE): Poison.
* regs.h (CALLER_SAVE_PROFITABLE): Remove.
* doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
* doc/tm.texi: Regenerate.

From-SVN: r214405

10 years ago* ira.c: Fix typo in comment.
Kito Cheng [Sun, 24 Aug 2014 02:38:28 +0000 (02:38 +0000)]
* ira.c: Fix typo in comment.

From-SVN: r214404

10 years agoDaily bump.
GCC Administrator [Sun, 24 Aug 2014 00:16:37 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r214403

10 years agocpplib.h (enum c_lang): Add CLK_GNUCXX1Z, CLK_CXX1Z...
Edward Smith-Rowland [Sat, 23 Aug 2014 16:50:22 +0000 (16:50 +0000)]
cpplib.h (enum c_lang): Add CLK_GNUCXX1Z, CLK_CXX1Z...

libcpp/

2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>

* include/cpplib.h (enum c_lang): Add CLK_GNUCXX1Z, CLK_CXX1Z;
Rename CLK_GNUCXX1Y, CLK_CXX1Y to CLK_GNUCXX14, CLK_CXX14;
* init.c (struct lang_flags lang_defaults): Add column for trigraphs;
Add rows for CLK_GNUCXX1Z, CLK_CXX1Z; (cpp_set_lang): Set trigraphs;
(cpp_init_builtins): Set __cplusplus to 201402L for C++14;
Set __cplusplus to 201500L for C++17.
* expr.c (cpp_classify_number): Change C++1y to C++14 in binary
constants error message.

gcc/c-family/

2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>

* c-common.h (enum cxx_dialect): Add cxx14.
* c-opts.c (set_std_cxx1y): Rename to set_std_cxx14; Use cxx14.
* c-ubsan.c (ubsan_instrument_shift): Change comment and logic from
cxx_dialect == cxx11 || cxx_dialect == cxx1y to cxx_dialect >= cxx11.

gcc/cp/

2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>

* decl.c (compute_array_index_type, grokdeclarator,
undeduced_auto_decl): Change from cxx1y to cxx14.
*lambda.c(add_capture()): Change error message from C++1y to C++14.
* parser.c (cp_parser_unqualified_id, cp_parser_pseudo_destructor_name,
cp_parser_lambda_introducer, cp_parser_lambda_declarator_opt,
cp_parser_decltype, cp_parser_conversion_type_id,
cp_parser_simple_type_specifier, cp_parser_type_id_1,
cp_parser_template_type_arg, cp_parser_std_attribute,
cp_parser_template_declaration_after_export): Ditto.
* pt.c (tsubst): Ditto.
* semantics.c (force_paren_expr, finish_decltype_type): Ditto.
* tree.c: Change comment.
* typeck.c (comp_template_parms_position, cxx_sizeof_or_alignof_type,
cp_build_addr_expr_1, maybe_warn_about_useless_cast): Ditto.

gcc/

2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>

* doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
Deprecate c++1y. Change language to reflect greater confidence in C++14.

gcc/testsuite/

2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>

* g++.dg/cpp0x/cplusplus.C: New.
* g++.dg/cpp0x/cplusplus_0x.C: New.
* g++.dg/cpp0x/auto3.C: Change c++1y to c++14.
* g++.dg/cpp0x/auto41.C: Ditto.
* g++.dg/cpp0x/auto9.C: Ditto.
* g++.dg/cpp0x/initlist26.C: Ditto.
* g++.dg/cpp0x/pr59111.C: Ditto.
* g++.dg/cpp0x/trailing2.C: Ditto.
* g++.dg/cpp1y/attr-deprecated.C: Ditto.
* g++.dg/cpp1y/auto-dtor1.C: Ditto.
* g++.dg/cpp1y/auto-fn1.C: Ditto.
* g++.dg/cpp1y/auto-fn2.C: Ditto.
* g++.dg/cpp1y/auto-fn3.C: Ditto.
* g++.dg/cpp1y/auto-fn4.C: Ditto.
* g++.dg/cpp1y/auto-fn5.C: Ditto.
* g++.dg/cpp1y/auto-fn6.C: Ditto.
* g++.dg/cpp1y/auto-fn7.C: Ditto.
* g++.dg/cpp1y/auto-fn8.C: Ditto.
* g++.dg/cpp1y/auto-fn9.C: Ditto.
* g++.dg/cpp1y/auto-fn10.C: Ditto.
* g++.dg/cpp1y/auto-fn11.C: Ditto.
* g++.dg/cpp1y/auto-fn12.C: Ditto.
* g++.dg/cpp1y/auto-fn13.C: Ditto.
* g++.dg/cpp1y/auto-fn14.C: Ditto.
* g++.dg/cpp1y/auto-fn15.C: Ditto.
* g++.dg/cpp1y/auto-fn16.C: Ditto.
* g++.dg/cpp1y/auto-fn17.C: Ditto.
* g++.dg/cpp1y/auto-fn18.C: Ditto.
* g++.dg/cpp1y/auto-fn19.C: Ditto.
* g++.dg/cpp1y/auto-fn20.C: Ditto.
* g++.dg/cpp1y/auto-fn21.C: Ditto.
* g++.dg/cpp1y/auto-fn22.C: Ditto.
* g++.dg/cpp1y/auto-fn23.C: Ditto.
* g++.dg/cpp1y/auto-fn24.C: Ditto.
* g++.dg/cpp1y/auto-fn25.C: Ditto.
* g++.dg/cpp1y/auto-mangle1.C: Ditto.
* g++.dg/cpp1y/auto-neg1.C: Ditto.
* g++.dg/cpp1y/digit-sep.C: Ditto.
* g++.dg/cpp1y/digit-sep-neg.C: Ditto.
* g++.dg/cpp1y/digit-sep-cxx11-neg.C: Ditto.
* g++.dg/cpp1y/fn-generic-member-ool.C: Ditto.
* g++.dg/cpp1y/lambda-deduce-mult.C: Ditto.
* g++.dg/cpp1y/lambda-generic.C: Ditto.
* g++.dg/cpp1y/lambda-generic-cfun.C: Ditto.
* g++.dg/cpp1y/lambda-generic-dep.C: Ditto.
* g++.dg/cpp1y/lambda-generic-mixed.C: Ditto.
* g++.dg/cpp1y/lambda-generic-udt.C: Ditto.
* g++.dg/cpp1y/lambda-generic-variadic.C: Ditto.
* g++.dg/cpp1y/lambda-generic-vla1.C: Ditto.
* g++.dg/cpp1y/lambda-generic-x.C: Ditto.
* g++.dg/cpp1y/lambda-generic-xcfun.C: Ditto.
* g++.dg/cpp1y/lambda-generic-xudt.C: Ditto.
* g++.dg/cpp1y/lambda-init.C: Ditto.
* g++.dg/cpp1y/lambda-init1.C: Ditto.
* g++.dg/cpp1y/lambda-init2.C: Ditto.
* g++.dg/cpp1y/lambda-init3.C: Ditto.
* g++.dg/cpp1y/lambda-init4.C: Ditto.
* g++.dg/cpp1y/lambda-init5.C: Ditto.
* g++.dg/cpp1y/lambda-init6.C: Ditto.
* g++.dg/cpp1y/lambda-init7.C: Ditto.
* g++.dg/cpp1y/lambda-init8.C: Ditto.
* g++.dg/cpp1y/lambda-init9.C: Ditto.
* g++.dg/cpp1y/mangle1.C: Ditto.
* g++.dg/cpp1y/pr57640.C: Ditto.
* g++.dg/cpp1y/pr57644.C: Ditto.
* g++.dg/cpp1y/pr58500.C: Ditto.
* g++.dg/cpp1y/pr58533.C: Ditto.
* g++.dg/cpp1y/pr58534.C: Ditto.
* g++.dg/cpp1y/pr58535.C: Ditto.
* g++.dg/cpp1y/pr58536.C: Ditto.
* g++.dg/cpp1y/pr58548.C: Ditto.
* g++.dg/cpp1y/pr58549.C: Ditto.
* g++.dg/cpp1y/pr58637.C: Ditto.
* g++.dg/cpp1y/pr58708.C: Ditto.
* g++.dg/cpp1y/pr59110.C: Ditto.
* g++.dg/cpp1y/pr59112.C: Ditto.
* g++.dg/cpp1y/pr59113.C: Ditto.
* g++.dg/cpp1y/pr59629.C: Ditto.
* g++.dg/cpp1y/pr59635.C: Ditto.
* g++.dg/cpp1y/pr59636.C: Ditto.
* g++.dg/cpp1y/pr59638.C: Ditto.
* g++.dg/cpp1y/pr59867.C: Ditto.
* g++.dg/cpp1y/pr60033.C: Ditto.
* g++.dg/cpp1y/pr60052.C: Ditto.
* g++.dg/cpp1y/pr60053.C: Ditto.
* g++.dg/cpp1y/pr60054.C: Ditto.
* g++.dg/cpp1y/pr60064.C: Ditto.
* g++.dg/cpp1y/pr60065.C: Ditto.
* g++.dg/cpp1y/pr60190.C: Ditto.
* g++.dg/cpp1y/pr60311.C: Ditto.
* g++.dg/cpp1y/pr60332.C: Ditto.
* g++.dg/cpp1y/pr60376.C: Ditto.
* g++.dg/cpp1y/pr60377.C: Ditto.
* g++.dg/cpp1y/pr60384.C: Ditto.
* g++.dg/cpp1y/pr60390.C: Ditto.
* g++.dg/cpp1y/pr60391.C: Ditto.
* g++.dg/cpp1y/pr60393.C: Ditto.
* g++.dg/cpp1y/pr60573.C: Ditto.
* g++.dg/cpp1y/pr60626.C: Ditto.
* g++.dg/cpp1y/pr60627.C: Ditto.
* g++.dg/cpp1y/regress1.C: Ditto.
* g++.dg/cpp1y/system-binary-constants-1.C: Ditto.
* g++.dg/cpp1y/udlit-char-template.C: Ditto.
* g++.dg/cpp1y/udlit-char-template-neg.C: Ditto.
* g++.dg/cpp1y/udlit-empty-string-neg.C: Ditto.
* g++.dg/cpp1y/udlit-enc-prefix-neg.C: Ditto.
* g++.dg/cpp1y/udlit-userdef-string.C: Ditto.
* g++.dg/cpp1y/var-templ1.C: Ditto.
* g++.dg/cpp1y/var-templ2.C: Ditto.
* g++.dg/cpp1y/var-templ3.C: Ditto.
* g++.dg/cpp1y/var-templ4.C: Ditto.
* g++.dg/cpp1y/var-templ5.C: Ditto.
* g++.dg/cpp1y/var-templ6.C: Ditto.
* g++.dg/cpp1y/var-templ7.C: Ditto.
* g++.dg/cpp1y/vla1.C: Ditto.
* g++.dg/cpp1y/vla2.C: Ditto.
* g++.dg/cpp1y/vla3.C: Ditto.
* g++.dg/cpp1y/vla4.C: Ditto.
* g++.dg/cpp1y/vla5.C: Ditto.
* g++.dg/cpp1y/vla8.C: Ditto.
* g++.dg/cpp1y/vla9.C: Ditto.
* g++.dg/cpp1y/vla10.C: Ditto.
* g++.dg/cpp1y/vla11.C: Ditto.
* g++.dg/cpp1y/vla12.C: Ditto.
* g++.dg/cpp1y/vla13.C: Ditto.
* g++.dg/cpp1y/vla-initlist1.C: Ditto.
* g++.dg/ext/vector23.C: Ditto.
* g++.dg/ext/vla11.C: Ditto.
* gcc/testsuite/g++.dg/ubsan/cxx1y-vla.C: Ditto.
* g++.dg/warn/Wvla-2.C: Ditto.
* g++.dg/debug/dwarf2/auto1.C: Ditto.
* g++.dg/cpp1z/typename-tmpl-tmpl-parm-ped-neg.C: Ditto.
* g++.dg/cpp1y/cplusplus.C: Check for exact date.
* g++.dg/cpp1y/system-binary-constants-1.C: Check C++14 instead of C++1y
in error message.
* g++.dg/system-binary-constants-1.C: Ditto.
* g++.dg/cpp1y/cplusplus_1y.C: New.
* g++.dg/cpp1z/cplusplus.C: New.
* lib/target-supports.exp:
(check_effective_target_c++1y*): Rename to check_effective_target_c++14*
(check_effective_target_c++11_only): Call check_effective_target_c++14;
(check_effective_target_c++11_down): Ditto.

From-SVN: r214400

10 years agore PR target/62038 (Out of range branch target in thunk)
John David Anglin [Sat, 23 Aug 2014 15:56:07 +0000 (15:56 +0000)]
re PR target/62038 (Out of range branch target in thunk)

PR target/62038
* config/pa/pa.c (pa_output_function_epilogue): Don't set
last_address when the current function is a thunk.
(pa_asm_output_mi_thunk): When we don't have named sections or they
are not being used, check that thunk can reach the stub table with a
short branch.

From-SVN: r214397

10 years agoAllow non-constexpr variable templates.
Jason Merrill [Sat, 23 Aug 2014 06:51:58 +0000 (02:51 -0400)]
Allow non-constexpr variable templates.

* decl2.c (note_variable_template_instantiation): New.
* cp-tree.h: Declare it.
* pt.c (instantiate_decl): Call it.
(push_template_decl_real): Allow non-constexpr variable templates.
* semantics.c (finish_id_expression): Mark the variable template
instantiation as used.
* mangle.c (write_mangled_name): Variable template instantiations
are mangled.
* parser.c (cp_parser_init_declarator): Complain about
non-function implicit templates.

From-SVN: r214396

10 years ago* c.opt (std=gnu++17): Fix alias.
Jason Merrill [Sat, 23 Aug 2014 06:28:34 +0000 (02:28 -0400)]
* c.opt (std=gnu++17): Fix alias.

From-SVN: r214395

10 years agoPHASE 3: Per-config subdir commits
David Malcolm [Sat, 23 Aug 2014 01:02:46 +0000 (01:02 +0000)]
PHASE 3: Per-config subdir commits

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

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

From-SVN: r214394

10 years agoweb.c: Use rtx_insn
David Malcolm [Sat, 23 Aug 2014 00:59:08 +0000 (00:59 +0000)]
web.c: Use rtx_insn

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

* web.c (union_match_dups): Strengthen param "insn" from rtx to
rtx_insn *.
(pass_web::execute): Likewise for local "insn".

From-SVN: r214393

10 years agovar-tracking.c: Use rtx_insn
David Malcolm [Sat, 23 Aug 2014 00:54:15 +0000 (00:54 +0000)]
var-tracking.c: Use rtx_insn

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

* var-tracking.c (struct micro_operation_def): Strengthen field
"insn" from rtx to rtx_insn *.
(struct emit_note_data_def): Likewise.
(insn_stack_adjust_offset_pre_post): Likewise for param "insn".
(vt_stack_adjustments): Likewise for local "insn".
(adjust_insn): Likewise for param "insn".
(val_store): Likewise.
(val_resolve): Likewise.
(struct count_use_info): Likewise for field "insn".
(log_op_type): Likewise for param "insn".
(reverse_op): Likewise.
(prepare_call_arguments): Likewise.
(add_with_sets):  The initial param takes an insn, but we can't
yet strengthen it from rtx to rtx_insn * since it's used as a
cselib_record_sets_hook callback.  For now rename initial param
from "insn" to "uncast_insn", and introduce a local "insn" of
the stronger rtx_insn * type, with a checked cast.
(compute_bb_dataflow): Strengthen local "insn" from rtx to
rtx_insn *.
(emit_note_insn_var_location): Likewise.
(emit_notes_for_changes): Likewise.
(emit_notes_for_differences): Likewise.
(next_non_note_insn_var_location): Likewise for return type and
for param "insn".
(emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
(vt_initialize): Likewise for local "insn".
(delete_debug_insns): Likewise for locals "insn" and "next".

From-SVN: r214392

10 years agovarasm.c: Use rtx_insn
David Malcolm [Sat, 23 Aug 2014 00:52:04 +0000 (00:52 +0000)]
varasm.c: Use rtx_insn

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

* varasm.c (mark_constants): Strengthen param "insn" from rtx to
rtx_insn *.
(mark_constant_pool): Likewise for local "insn".

From-SVN: r214391

10 years agovaltrack.c: Use rtx_insn
David Malcolm [Sat, 23 Aug 2014 00:50:32 +0000 (00:50 +0000)]
valtrack.c: Use rtx_insn

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

* valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
rtx to rtx_insn *.
(dead_debug_promote_uses): Likewise.
(dead_debug_insert_temp): Likewise.

From-SVN: r214390

10 years agostore-motion.c: Use rtx_insn
David Malcolm [Sat, 23 Aug 2014 00:48:24 +0000 (00:48 +0000)]
store-motion.c: Use rtx_insn

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

* store-motion.c (store_killed_in_insn): Strengthen param "insn"
from const_rtx to const rtx_insn *.
(store_killed_after): Likewise.  Strengthen locals "last", "act"
from rtx to rtx_insn *.
(store_killed_before): Strengthen param "insn" from const_rtx to
const rtx_insn *.  Strengthen local "first" from rtx to rtx_insn *.
(find_moveable_store): Strengthen param "insn" from rtx to
rtx_insn *.
(compute_store_table): Likewise for local "insn".
(insert_insn_start_basic_block): Likewise for param "insn" and
locals "prev", "before", "insn".
(insert_store): For now, add a checked cast to rtx_insn * on the
result of gen_move_insn.
(remove_reachable_equiv_notes): Strengthen local "insn" from rtx
to rtx_insn *.
(replace_store_insn): Likewise.  For now, add a checked cast to
rtx_insn * on the result of gen_move_insn.

From-SVN: r214389

10 years agoDaily bump.
GCC Administrator [Sat, 23 Aug 2014 00:16:44 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r214388

10 years agostmt.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 21:46:30 +0000 (21:46 +0000)]
stmt.c: Use rtx_insn

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

* stmt.c (expand_case): Strengthen local "before_case" from rtx to
rtx_insn *.
(expand_sjlj_dispatch_table): Likewise.

From-SVN: r214383

10 years agostack-ptr-mod.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 21:44:32 +0000 (21:44 +0000)]
stack-ptr-mod.c: Use rtx_insn

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

* stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
"insn" from rtx to rtx_insn *.

From-SVN: r214382

10 years agoshrink-wrap.*: Use rtx_insn (touches config/i386/i386.c)
David Malcolm [Fri, 22 Aug 2014 21:42:53 +0000 (21:42 +0000)]
shrink-wrap.*: Use rtx_insn (touches config/i386/i386.c)

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

* shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
"insn" from rtx to rtx_insn *.
(dup_block_and_redirect): Likewise for param 3 "before".

* shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
from rtx to rtx_insn *.
(move_insn_for_shrink_wrap): Likewise.
(prepare_shrink_wrap): Likewise for locals "insn", "curr".
(dup_block_and_redirect): Likewise for param "before" and local
"insn".
(try_shrink_wrapping): Likewise for locals "insn", "insert_point",
"end".
(convert_to_simple_return): Likewise for local "start".

* config/i386/i386.c (ix86_finalize_stack_realign_flags):
Strengthen local "insn" from rtx to rtx_insn *, for use when
invoking requires_stack_frame_p.

From-SVN: r214381

10 years agosel-sched-ir.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 21:41:07 +0000 (21:41 +0000)]
sel-sched-ir.c: Use rtx_insn

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

* sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
rtx_insn *.
(speculate_expr): Likewise for locals "orig_insn_rtx",
"spec_insn_rtx".
(eq_transformed_insns): Likewise for locals "i1", "i2".
(check_for_new_jump): Likewise for return type and local "end".
(find_new_jump): Likewise for return type and local "jump".
(sel_split_edge): Likewise for local "jump".
(sel_create_recovery_block): Likewise.
(sel_redirect_edge_and_branch_force): Likewise.
(sel_redirect_edge_and_branch): Likewise.

From-SVN: r214380

10 years agosel-sched.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 21:39:00 +0000 (21:39 +0000)]
sel-sched.c: Use rtx_insn

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

* sel-sched.c (substitute_reg_in_expr): Strengthen local
"new_insn" from rtx to rtx_insn *.
(create_insn_rtx_with_rhs): Likewise for return type and for local
"insn_rtx".
(create_insn_rtx_with_lhs): Likewise.
(create_speculation_check): Likewise for local "insn_rtx".
(implicit_clobber_conflict_p): Likewise for local "insn".
(get_expr_cost): Likewise.
(emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
(move_cond_jump): Likewise for locals "next", "prev", "link",
"head", "from", "to".

From-SVN: r214379

10 years agosched-rgn.c: Use rtx_insn in a couple of places
David Malcolm [Fri, 22 Aug 2014 21:36:28 +0000 (21:36 +0000)]
sched-rgn.c: Use rtx_insn in a couple of places

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

* sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
"next" from rtx to rtx_insn *.
(find_conditional_protection): Likewise for local "next".
(is_conditionally_protected): Likewise for local "insn1".
(is_pfree): Likewise for locals "insn1", "insn2".

From-SVN: r214378

10 years agosched-ebb.c: Use rtx_insn (requires touching sched-int.h and config/c6x/c6x.c)
David Malcolm [Fri, 22 Aug 2014 21:10:21 +0000 (21:10 +0000)]
sched-ebb.c: Use rtx_insn (requires touching sched-int.h and config/c6x/c6x.c)

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

* sched-int.h (schedule_ebb): Strengthen params "head", "tail"
from rtx to rtx_insn *.

* sched-ebb.c (earliest_block_with_similiar_load): Strengthen
locals "insn1", "insn2" from rtx to rtx_insn *.
(add_deps_for_risky_insns): Likewise for params "head", "tail" and
locals "insn", "prev", "last_jump", "next_tail".
(schedule_ebb): Likewise for params "head", "tail".
(schedule_ebbs): Likewise for locals "tail", "head".

* config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
to rtx_insn on "last_insn" in one of the invocations of
schedule_ebb.

From-SVN: r214375

10 years agosched-deps.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 21:04:29 +0000 (21:04 +0000)]
sched-deps.c: Use rtx_insn

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

* sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
"elem", "insn" from rtx to rtx_insn *.
(change_spec_dep_to_hard): Likewise.
(get_back_and_forw_lists): Likewise for local "con".
(sd_add_dep): Likewise for locals "elem", "insn".
(sd_resolve_dep): Likewise for locals "pro", "con".
(sd_unresolve_dep): Likewise.
(sd_delete_dep): Likewise.
(chain_to_prev_insn): Likewise for local "pro".
(find_inc): Likewise for locals "pro", "con".

From-SVN: r214374

10 years agortlanal.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 20:53:56 +0000 (20:53 +0000)]
rtlanal.c: Use rtx_insn

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

* rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
to rtx_insn *.
(reg_set_between_p): Strengthen local "insn" from const_rtx to
const rtx_insn *.
(modified_between_p): Strengthen local "insn" from rtx to
rtx_insn *.
(remove_reg_equal_equiv_notes_for_regno): Likewise.
(keep_with_call_p): Strengthen local "i2" from const_rtx to
const rtx_insn *.

From-SVN: r214373

10 years agoresource.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 20:51:46 +0000 (20:51 +0000)]
resource.c: Use rtx_insn

gcc/
* resource.c (next_insn_no_annul): Strengthen local "next" from
rtx to rtx_insn *.
(mark_referenced_resources): Likewise for local "insn".

From-SVN: r214372

10 years agoFix spacing.
Mike Stump [Fri, 22 Aug 2014 20:50:22 +0000 (20:50 +0000)]
Fix spacing.

From-SVN: r214371

10 years agoreload: Use rtx_insn (also touches caller-save.c and config/arc/arc)
David Malcolm [Fri, 22 Aug 2014 20:49:31 +0000 (20:49 +0000)]
reload: Use rtx_insn (also touches caller-save.c and config/arc/arc)

gcc/
* reload.h (struct insn_chain): Strengthen field "insn" from rtx
to rtx_insn *.
(find_reloads): Likewise for param 1.
(subst_reloads): Likewise for sole param.
(find_equiv_reg): Likwise for param 2.
(regno_clobbered_p): Likwise for param 2.
(reload): Likewise for param 1.

* caller-save.c (save_call_clobbered_regs): Strengthen local
"insn" from rtx to rtx_insn *.
(insert_one_insn): Likewise for local "insn".

* reload.c (this_insn): Likewise for this global.
(find_reloads): Likewise for param "insn".
(find_reloads_toplev): Likewise.
(find_reloads_address): Likewise.
(subst_reg_equivs): Likewise.
(update_auto_inc_notes): Likewise.
(find_reloads_address_1): Likewise.
(find_reloads_subreg_address): Likewise.
(subst_reloads): Likewise.
(find_equiv_reg): Likewise, also for local "p".
(regno_clobbered_p): Likewise for param "insn".

* reload1.c (reg_reloaded_insn): Likewise for the elements of this
array.
(spill_reg_store): Likewise for the elements of this array.
(remove_init_insns): Likewise for local "equiv_insn".
(will_delete_init_insn_p): Likewise for param "insn".
(reload): Likewise for param ""first" and local "insn".
(calculate_needs_all_insns): Strengthen local "insn" from rtx to
rtx_insn *.
(calculate_elim_costs_all_insns): Likewise.
(delete_caller_save_insns): Likewise.
(spill_failure): Likewise for param "insn".
(delete_dead_insn): Likewise.
(set_label_offsets): Likewise.
(eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
"prev_insn".
(elimination_costs_in_insn): Likewise for param "insn".
(set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
when referring to an insn.
(set_initial_label_offsets): Likewise.
(set_offsets_for_label): Strengthen param "insn" from rtx to
rtx_insn *.
(init_eliminable_invariants): Likewise for param "first" and local
"insn".
(fixup_eh_region_note): Likewise for param "insn".
(reload_as_needed): Likewise for locals "prev", "insn",
"old_next", "old_prev", "next".
(gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
"last".
(reload_inheritance_insn): Strengthen elements of this array from
rtx to rtx_insn *.
(failed_reload): Likewise for param "insn".
(choose_reload_regs): Likewise for local "insn".  Replace use of
NULL_RTX with NULL when referring to an insn.
(input_reload_insns): Strengthen elements of this array from rtx
to rtx_insn *.
(other_input_address_reload_insns): Likewise for this global.
(other_input_reload_insns): Likewise for this global.
(input_address_reload_insns): Likwise for the elements of this
array.
(inpaddr_address_reload_insns): Likwise for the elements of this
array.
(output_reload_insns): Likewise for the elements of this array.
(output_address_reload_insns): Likewise for the elements of this
array.
(outaddr_address_reload_insns): Likewise for the elements of this
array.
(operand_reload_insns): Likewise for this global.
(other_operand_reload_insns): Likewise for this global.
(other_output_reload_insns): Likewise for the elements of this
array.
(new_spill_reg_store): Likewise for the elements of this
array.
(emit_input_reload_insns): Likewise for locals "insn", "temp".
Strengthen local "where" from rtx * to rtx_insn **.
(emit_output_reload_insns): Strengthen locals "insn", "p", "next"
from rtx to rtx_insn *.
(do_input_reload): Likewise for local "insn".
(do_output_reload): Likewise for local "insn".
(emit_reload_insns): Likewise for locals "insn" and "store_insn".
(emit_insn_if_valid_for_reload): Likewise for return type and local
"last".  Add checked cast to rtx_insn when returning "insn" since
this has been through emit_insn.
(gen_reload): Strengthen return type and locals "last", "insn", "set"
from rtx to rtx_insn *.  Add checked cast to rtx_insn when
returning "insn" since it's been through
emit_insn_if_valid_for_reload at this point.
(delete_output_reload): Strengthen param "insn" and locals
"output_reload_insn", "i2" from rtx to rtx_insn *.
(delete_address_reloads): Likewise for params "dead_insn",
"current_insn" and locals "prev", "next".
(delete_address_reloads_1): Likewise for params "dead_insn",
"current_insn" and locals "prev", "i2".
(inc_for_reload): Likewise for locals "last", "add_insn".
(add_auto_inc_notes): Strengthen param "insn" from rtx to
rtx_insn *.

* config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
param of this duplicate of the prototype from reload.h

From-SVN: r214370

10 years agoregstat.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 20:44:34 +0000 (20:44 +0000)]
regstat.c: Use rtx_insn

gcc/
* regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
rtx to rtx_insn *.
(regstat_bb_compute_calls_crossed): Likewise.

From-SVN: r214369

10 years agoregrename.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 20:42:50 +0000 (20:42 +0000)]
regrename.c: Use rtx_insn

gcc/
* regrename.c (create_new_chain): Strengthen param "insn" from rtx
to rtx_insn *.
(init_rename_info): Replace use of NULL_RTX with NULL when dealing
with an insn.
(regrename_analyze): Strengthen local "insn" from rtx to
rtx_insn *.
(scan_rtx_reg): Likewise for param "insn".
(scan_rtx_address): Likewise.
(scan_rtx): Likewise.
(restore_operands): Likewise.
(record_out_operands): Likewise.
(build_def_use): Likewise for local "insn".  Replace use of
NULL_RTX with NULL when dealing with an insn.

From-SVN: r214368

10 years agoreginfo.c: Use rtx_insn (also touches rtl.h)
David Malcolm [Fri, 22 Aug 2014 20:19:07 +0000 (20:19 +0000)]
reginfo.c: Use rtx_insn (also touches rtl.h)

gcc/
* rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
* reginfo.c (reg_scan): Likewise, also for local "insn".
(reg_scan_mark_refs): Likewise for param "insn".
(init_subregs_of_mode): Likewise for local "insn".

From-SVN: r214367

10 years agoregcprop.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 20:17:00 +0000 (20:17 +0000)]
regcprop.c: Use rtx_insn

gcc/
* regcprop.c (struct queued_debug_insn_change): Strengthen field
"insn" from rtx to rtx_insn *.
(replace_oldest_value_reg): Likewise for param "insn".
(replace_oldest_value_addr): Likewise.
(replace_oldest_value_mem): Likewise.
(apply_debug_insn_changes): Likewise for local "last_insn".
(copyprop_hardreg_forward_1): Likewise for local "insn".

From-SVN: r214366

10 years agoreg-stack.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 20:14:19 +0000 (20:14 +0000)]
reg-stack.c: Use rtx_insn

gcc/
* reg-stack.c (next_flags_user): Strengthen return type and param
"insn" from rtx to rtx_insn *.
(straighten_stack): Likewise for param "insn".
(check_asm_stack_operands): Likewise.
(remove_regno_note): Likewise.
(emit_pop_insn): Likewise for return type, param "insn", local
"pop_insn".
(emit_swap_insn):  Strengthen param "insn" and locals "i1", "tmp",
"limit" from rtx to rtx_insn *.
(swap_to_top): Likewise for param "insn".
(move_for_stack_reg): Likewise.
(move_nan_for_stack_reg): Likewise.
(swap_rtx_condition): Likewise.
(compare_for_stack_reg): Likewise.
(subst_all_stack_regs_in_debug_insn): Likewise.
(subst_stack_regs_pat): Likewise, and local "insn2".
(subst_asm_stack_regs): Strengthen param "insn" from rtx to
rtx_insn *.
(subst_stack_regs): Likewise.
(change_stack): Likewise.
(convert_regs_1): Likewise for locals "insn", "next".

From-SVN: r214365

10 years agoree.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 20:11:31 +0000 (20:11 +0000)]
ree.c: Use rtx_insn

gcc/
* ree.c (struct ext_cand): Strengthen field "insn" from rtx to
rtx_insn *.
(combine_set_extension): Likewise for param "curr_insn".
(transform_ifelse): Likewise for param "def_insn".
(get_defs): Likewise for param "def_insn".  Strengthen param "dest"
from vec<rtx> * to vec<rtx_insn *> *.
(is_cond_copy_insn): Likewise for param "insn".
(struct ext_state): Strengthen the four vec fields from vec<rtx>
to vec<rtx_insn *>.
(make_defs_and_copies_lists): Strengthen param "extend_insn" and
local "def_insn" from rtx to rtx_insn *.
(get_sub_rtx): Likewise for param "def_insn".
(merge_def_and_ext): Likewise.
(combine_reaching_defs): Likewise.
(add_removable_extension): Likewise for param "insn".
(find_removable_extensions): Likewise for local "insn".
(find_and_remove_re): Likewise for locals "curr_insn" and
"def_insn".  Strengthen locals "reinsn_del_list" and
"reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.

From-SVN: r214364

10 years agorecog.c: Use rtx_insn
David Malcolm [Fri, 22 Aug 2014 20:09:21 +0000 (20:09 +0000)]
recog.c: Use rtx_insn

gcc/
* recog.c (split_insn): Strengthen param "insn" and locals
"first", "last" from rtx to rtx_insn *.
(split_all_insns): Likewise for locals "insn", "next".
(split_all_insns_noflow): Likewise.

From-SVN: r214363

10 years agoprint-rtl.c: Use rtx_insn for various debug_ functions
David Malcolm [Fri, 22 Aug 2014 20:06:25 +0000 (20:06 +0000)]
print-rtl.c: Use rtx_insn for various debug_ functions

gcc/
* rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
const rtx_insn *.
(debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
(debug_rtx_find): Likewise for param 1 "x".

* print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
const_rtx to const rtx_insn *.  Likewise for local "insn".
(debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
(debug_rtx_find): Likewise for param 1 "x".
(print_rtl): Likewise for local "tmp_rtx", adding a checked cast
from const_rtx to const rtx_insn * within the appropriate cases of
the switch statement.

* config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
Strengthen local "insns" from rtx to rtx_insn * since this is
passed to a call to debug_rtx_list.

From-SVN: r214362

10 years agopredict.*: Use rtx_insn (also touches function.c and config/cris/cris.c)
David Malcolm [Fri, 22 Aug 2014 19:51:23 +0000 (19:51 +0000)]
predict.*: Use rtx_insn (also touches function.c and config/cris/cris.c)

gcc/
* predict.h (predict_insn_def): Strengthen param "insn" from rtx
to rtx_insn *.

* function.c (stack_protect_epilogue): Add checked cast to
rtx_insn for now when invoking predict_insn_def.

* predict.c (predict_insn): Strengthen param "insn" from rtx to
rtx_insn *.
(predict_insn_def): Likewise.
(rtl_predict_edge): Likewise for local "last_insn".
(can_predict_insn_p): Strengthen param "insn" from const_rtx to
const rtx_insn *.
(combine_predictions_for_insn): Strengthen param "insn" from rtx
to rtx_insn *.
(bb_estimate_probability_locally): Likewise for local "last_insn".
(expensive_function_p): Likewise for local "insn".

* config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
local "jmp", since this is used when invoking predict_insn_def.

From-SVN: r214361

10 years agore PR c++/62199 (ICE with -Wlogical-not-parentheses)
Marek Polacek [Fri, 22 Aug 2014 19:44:27 +0000 (19:44 +0000)]
re PR c++/62199 (ICE with -Wlogical-not-parentheses)

PR c++/62199
* doc/invoke.texi: Update -Wlogical-not-parentheses description.
c-family/
* c-common.c (warn_logical_not_parentheses): Don't check LHS.  Don't
check for vector types.  Drop LHS argument.
* c-common.h (warn_logical_not_parentheses): Adjust.
c/
* c-typeck.c (parser_build_binary_op): Adjust call to
warn_logical_not_parentheses.
cp/
* parser.c (cp_parser_binary_expression): Check each LHS if it's
preceded with logical not.  Adjust call to
warn_logical_not_parentheses.
testsuite/
* c-c++-common/pr62199.c: New test.
* c-c++-common/pr62199-2.c: New test.
* g++.dg/warn/Wparentheses-25.C: Drop XFAILs.

From-SVN: r214360

10 years agore PR c/61271 (10 * possible coding error with logical not (!))
Marek Polacek [Fri, 22 Aug 2014 19:40:28 +0000 (19:40 +0000)]
re PR c/61271 (10 * possible coding error with logical not (!))

PR c/61271
* ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
a comparison in parens.
* lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
in parens.

From-SVN: r214359

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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