Commit Graph

132343 Commits

Author SHA1 Message Date
David Malcolm
770affca79 expr.c: Use rtx_insn and rtx_code_label
gcc/
	* expr.c (convert_move): Strengthen local "insns" from rtx to
	rtx_insn *.
	(emit_block_move_via_loop): Strengthen locals "cmp_label" and
	"top_label" from rtx to rtx_code_label *.
	(move_block_to_reg): Strengthen local "insn", "last" from rtx to
	rtx_insn *.
	(emit_single_push_insn): Likewise for locals "prev", "last".
	(store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
	to rtx_code_label *.
	(store_constructor): Likewise for locals "loop_start", "loop_end".
	(expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
	rtx_insn *.
	(expand_expr_real_2): Likewise.
	(expand_expr_real_1): Strengthen local "label" from rtx to
	rtx_code_label *.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

From-SVN: r214302
2014-08-22 00:32:20 +00:00
David Malcolm
71e88baf6b combine-stack-adj.c: Use rtx_insn
gcc/
2014-08-22  David Malcolm  <dmalcolm@redhat.com>

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

From-SVN: r214301
2014-08-22 00:27:43 +00:00
GCC Administrator
f66ac4c9dd Daily bump.
From-SVN: r214300
2014-08-22 00:16:51 +00:00
David Malcolm
93321676eb combine.c: Use rtx_insn
gcc/
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

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

From-SVN: r214299
2014-08-22 00:16:51 +00:00
David Malcolm
8879d71c14 cfgrtl.c: Use rtx subclasses
gcc/
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

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

From-SVN: r214295
2014-08-21 21:16:09 +00:00
David Malcolm
1f75b71e6b cfgloopanal.c: Use rtx_insn
gcc/
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

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

From-SVN: r214294
2014-08-21 21:11:30 +00:00
David Malcolm
9d56eaa282 cfgloop.c: Use rtx_insn
gcc/
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

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

From-SVN: r214293
2014-08-21 21:08:33 +00:00
David Malcolm
da5477a930 cfgcleanup.c: Use rtx_insn (also touches basic-block.h and ifcvt.c)
gcc/
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

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

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

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

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

From-SVN: r214292
2014-08-21 21:02:34 +00:00
David Malcolm
3bbd58151e cfgbuild.c: Use rtx_insn
gcc/
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

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

From-SVN: r214291
2014-08-21 20:57:56 +00:00
David Malcolm
44b9179ffc caller-save.c: Use rtx_insn
gcc/
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

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

From-SVN: r214290
2014-08-21 20:43:47 +00:00
David Malcolm
4881051561 calls.c: Use rtx_insn
gcc/
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

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

From-SVN: r214289
2014-08-21 20:38:47 +00:00
David Malcolm
58f4cf2afe builtins.c: strengthen various rtx to rtx_insn * and other subclasses
gcc/
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

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

From-SVN: r214288
2014-08-21 20:32:22 +00:00
David Malcolm
fd6657fbb3 bt-load.c: Use rtx_insn
gcc/
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

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

From-SVN: r214287
2014-08-21 20:28:33 +00:00
David Malcolm
e93768e449 bb-reorder.c: Use rtx_insn
gcc/
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

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

From-SVN: r214286
2014-08-21 20:24:19 +00:00
David Malcolm
3dfa938f4a auto-inc-dec.c: strengthen various rtx to rtx_insn *
gcc/
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

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

From-SVN: r214285
2014-08-21 20:17:15 +00:00
David Malcolm
3a965f615d asan.c: strengthen some rtx locals
gcc/
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

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

From-SVN: r214284
2014-08-21 20:12:30 +00:00
David Malcolm
d36a28b8b8 alias.c: Use rtx_insn
gcc/
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

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

From-SVN: r214283
2014-08-21 20:04:22 +00:00
Thomas Koenig
dc2c36fd93 re PR fortran/62214 (Problem with spread plus concatenation for characters)
2014-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

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

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

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

From-SVN: r214281
2014-08-21 18:52:58 +00:00
Michael Meissner
4e50293057 rs6000.c (print_operand, 'y' case): Fix code that generated a warning and prevented bootstrapping the compiler.
2014-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>

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

From-SVN: r214280
2014-08-21 18:13:52 +00:00
David Malcolm
00550b3dc7 PHASE 2: Per-file commits in main source directory
/
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

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

From-SVN: r214276
2014-08-21 15:08:47 +00:00
David Malcolm
bba2490b5f delete_related_insns returns an rtx_insn
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

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

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

From-SVN: r214275
2014-08-21 15:00:09 +00:00
Sandra Loosemore
27d7f41e48 2014-08-21 Sandra Loosemore <sandra@codesourcery.com>
gcc/testsuite/
	* lib/target-supports.exp
	(check_effective_target_logical_op_short_circuit): Add nios2.
	* gcc.dg/tree-ssa/reassoc-33.c: Skip for nios2.
	* gcc.dg/tree-ssa/reassoc-34.c: Likewise.
	* gcc.dg/tree-ssa/reassoc-35.c: Likewise.
	* gcc.dg/tree-ssa/reassoc-36.c: Likewise.
	* gcc.dg/tree-ssa/interposition.c: Require fpic effective target
	for test using -fPIC.
	* gcc.dg/lto/pr61526_0.c: Likewise.

From-SVN: r214274
2014-08-21 10:52:03 -04:00
David Malcolm
a36e587718 define_bypass guard functions take a pair of rtx_insn
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

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

From-SVN: r214273
2014-08-21 14:01:37 +00:00
Jan Hubicka
a336b719a3 re PR tree-optimization/62091 (ice in before_dom_children)
PR tree-optimization/62091
	* g++.dg/ipa/devirt-37.C: Update template.
	* g++.dg/ipa/devirt-40.C: New testcase.
	* ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
	handle correctly arrays.
	(extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
	inheritance binfos.
	(record_known_type): Walk into inner type.
	(ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
	condition on no type changes.

From-SVN: r214271
2014-08-21 13:49:07 +00:00
David Malcolm
2903befbec Pass "insn" as an rtx_insn within generated get_attr_ fns in insn-attrtab.c
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

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

From-SVN: r214265
2014-08-21 10:13:22 +00:00
David Malcolm
579f75aefa peephole returns an rtx_insn
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

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

From-SVN: r214264
2014-08-21 09:40:09 +00:00
Bin Cheng
622dbadfab configure: Regenerated.
* configure: Regenerated.

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

From-SVN: r214263
2014-08-21 09:35:52 +00:00
Marc Glisse
8cb65b3725 re PR tree-optimization/62112 (Optimize out malloc when block is unused or write-only)
2014-08-21  Marc Glisse  <marc.glisse@inria.fr>

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

From-SVN: r214262
2014-08-21 09:32:21 +00:00
Tony Wang
31879c2cc7 62154.cc: Disable when the target doesn't provide atomic builtins.
2014-08-21  Tony Wang  <tony.wang@arm.com>

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

From-SVN: r214261
2014-08-21 09:11:00 +00:00
David Malcolm
53f0468805 try_split returns an rtx_insn
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

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

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

From-SVN: r214260
2014-08-21 08:53:25 +00:00
David Malcolm
f630fc6ab0 Debug hooks: use rtx_insn and rtx_code_label
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

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

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

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

From-SVN: r214259
2014-08-21 08:20:43 +00:00
David Malcolm
95770ca320 Use rtx_insn internally within generated functions
2014-08-21  David Malcolm  <dmalcolm@redhat.com>

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

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

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

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

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

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

From-SVN: r214257
2014-08-21 07:49:28 +00:00