1. 05 Sep, 2014 1 commit
    • Use rtx_insn more within peep2 · 1c9b6043
      gcc/ChangeLog:
      2014-09-05  David Malcolm  <dmalcolm@redhat.com>
      
      	* recog.c (peep2_attempt): Strengthen return type from rtx to
      	rtx_insn *.
      	(peep2_update_life): Likewise for params "last", "prev", removing
      	a checked cast made redundant by this.
      	(peephole2_optimize): Likewise for local "last".
      
      From-SVN: r214966
      David Malcolm committed
  2. 28 Aug, 2014 2 commits
    • NEXT_INSN and PREV_INSN take a const rtx_insn · b32d5189
      gcc/
      2014-08-28  David Malcolm  <dmalcolm@redhat.com>
      
      	* rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
      	NEXT_INSN.
      	(PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
      	(NEXT_INSN): Likewise.
      	(JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
      	(reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
      	const rtx_insn *.
      	(no_labels_between_p): Likewise for both params.
      
      	* config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
      	cast when using NEXT_INSN on operands[2].
      	* config/alpha/alpha.c (alpha_set_memflags): Strengthen local
      	"insn" from rtx to rtx_insn *, adding a checked cast.
      	(alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
      	rtx_insn *.
      	* config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
      	for third param.
      	(arc_text_label): Likewise for param "insn".
      	* config/arc/arc.c (arc_expand_epilogue): Likewise for local
      	"insn".
      	(arc_ccfsm_record_condition): Likewise for param "jump".
      	(arc_text_label): Likewise for local "label".
      	* config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
      	Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
      	a method for typesafety.  Add a checked cast.
      	* config/arc/constraints.md (Clb): Add a checked cast when getting
      	the CODE_LABEL from a LABEL_REF.
      	* config/arm/arm.c (require_pic_register): Strengthen locals
      	"seq", "insn" from rtx to rtx_insn *.
      	(create_fix_barrier): Likewise for locals "selected", "next".
      	(thumb1_reorg): Likewise for locals "prev", "insn".
      	(arm_expand_prologue): Likewise for local "last".
      	(thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
      	operands[0].
      	(thumb2_output_casesi): Likewise for operands[2].
      	* config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
      	strengthen local "insn" from rtx to rtx_insn *.
      	* config/bfin/bfin.c (find_next_insn_start): Likewise for return
      	type and param "insn".
      	(find_prev_insn_start): Likewise.
      	(hwloop_optimize): Likewise for locals "insn", "last_insn",
      	"prev".
      	(gen_one_bundle): Likewise for loal "t".
      	(find_load): Likewise for param "insn".
      	(workaround_speculation): Likewise for locals "insn", "next",
      	"target", "next_tgt".
      	* config/c6x/c6x.c (assign_reservations): Likewise for both params
      	and for locals "insn", "within", "last".
      	(count_unit_reqs): Likewise for params "head", "tail" and local
      	"insn".
      	(try_rename_operands): Likewise for params "head", "tail".
      	(reshuffle_units): Likewise for locals "head", "tail", "insn".
      	(struct c6x_sched_context): Likewise for fields
      	"last_scheduled_insn", "last_scheduled_iter0".
      	(init_sched_state): Replace NULL_RTX with NULL.
      	(reorg_split_calls): Strengthen local "new_cycle_first" from rtx
      	to rtx_insn *.
      	(undo_split_delayed_nonbranch): Likewise for param and for local
      	"prev".
      	(conditionalize_after_sched): Likewise for local "insn".
      	(bb_earliest_end_cycle): Likewise.
      	(filter_insns_above): Likewise for locals "insn", "next".
      	(hwloop_optimize): Remove redundant checked cast.
      	(hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
      	* config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
      	NULL_RTX with NULL.
      	(cris_simple_epilogue): Likewise.
      	(cris_expand_prologue): Likewise.
      	(cris_expand_epilogue): Likewise.
      	* config/frv/frv.c (frv_function_contains_far_jump): Strengthen
      	local "insn" from rtx to rtx_insn *.
      	(frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
      	(struct frv_packet_group): Likewise for the elements within array
      	fields "insns", "sorted", and for field "nop".
      	(frv_packet): Likewise for the elements within array field
      	"insns".
      	(frv_add_insn_to_packet): Likewise for param "insn".
      	(frv_insert_nop_in_packet): Likewise for param "insn" and local
      	"last".
      	(frv_for_each_packet): Likewise for locals "insn", "next_insn".
      	(frv_sort_insn_group_1): Likewise for local "insn".
      	(frv_optimize_membar_local): Likewise.
      	(frv_align_label): Likewise for locals "x", "last", "barrier",
      	"label".
      	* config/ia64/ia64.c (last_scheduled_insn): Likewise for this
      	local.
      	(ia64_sched_init): Likewise for local "insn".
      	(scheduled_good_insn): Likewise for param "last".
      	(struct _ia64_sched_context): Likewise for field
      	"last_scheduled_insn".
      	(ia64_init_sched_context): Replace NULL_RTX with NULL.
      	(struct bundle_state): Likewise for field "insn".
      	(issue_nops_and_insn): Likewise for param "insn".
      	(get_next_important_insn): Likewise for return type and both
      	params.
      	(ia64_add_bundle_selector_before): Likewise for param "insn".
      	(bundling): Likewise for params "prev_head_insn", "tail" and
      	locals "insn", "next_insn", "b".  Eliminate top-level local rtx
      	"nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
      	* config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
      	Strengthen final param from rtx to rtx_insn *.
      	(iq2000_move_1word): Likewise for second param.
      	* config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
      	param "cur_insn" and local "next_insn".
      	(iq2000_move_1word): Likewise for param "insn".
      	* config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
      	casts when using NEXT_INSN on operands[1].
      	* config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
      	"insn" from rtx to rtx_insn *.
      	* config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
      	"x", introducing local rtx_insn * "insn" for when working with the
      	CODE_LABEL of the LABEL_REF.
      	(m68k_sched_md_init_global): Strengthen local "insn" from rtx to
      	rtx_insn *.
      	* config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
      	param.
      	* config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
      	type.
      	(conditionalize_block): Likewise for return type and param.
      	(mcore_is_dead): Likewise for param "first" and local "insn".
      	(emit_new_cond_insn): Likewise for return type.
      	(conditionalize_block): Likewise for return type, param, and
      	locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
      	"newinsn".
      	(conditionalize_optimization): Likewise for local "insn".
      	* config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
      	using NEXT_INSN.
      	* config/microblaze/microblaze.md: Add checked casts when using
      	NEXT_INSN.
      	* config/mips/mips.c (mips_expand_prologue): Eliminate top-level
      	rtx "insn" in favor of various more tightly-scoped rtx "insn" and
      	and rtx_insn * "insn".
      	* config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
      	checked cast when using NEXT_INSN on operands[2].
      	* config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
      	local "insn" from rtx to rtx_insn *.
      	* config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
      	Likewise.
      	* config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
      	Add a checked cast when using NEXT_INSN on operands[1].
      	* config/pa/pa-protos.h (pa_following_call): Strengthen param from
      	rtx to rtx_insn *.
      	(pa_output_cbranch): Likewise for final param.
      	(pa_output_lbranch): Likewise for second param.
      	(pa_output_bb): Likewise for third param.
      	(pa_output_bvb): Likewise.
      	(pa_output_dbra): Likewise for second param.
      	(pa_output_movb): Likewise.
      	(pa_output_parallel_movb): Likewise.
      	(pa_output_parallel_addb): Likewise.
      	(pa_output_millicode_call): Likewise for first param.
      	(pa_output_mul_insn): Likewise for second param.
      	(pa_output_div_insn): Likewise for third param.
      	(pa_output_mod_insn): Likewise for second param.
      	(pa_jump_in_call_delay): Likewise for param.
      	* config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
      	(pa_output_div_insn): Likewise.
      	(pa_output_mod_insn): Likewise.
      	(pa_output_cbranch): Likewise.
      	(pa_output_lbranch): Likewise.
      	(pa_output_bb): Likewise.
      	(pa_output_bvb): Likewise.
      	(pa_output_dbra): Likewise.
      	(pa_output_movb): Likewise.
      	(pa_output_millicode_call): Likewise; use method of rtx_sequence *
      	to simplify and for typesafety.
      	(pa_output_call): Use method of rtx_sequence *.
      	(forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
      	(pa_jump_in_call_delay): Likewise.
      	(pa_output_parallel_movb): Likewise.
      	(pa_output_parallel_addb): Likewise.
      	(pa_following_call): Likewise.
      	(pa_combine_instructions): Likewise for locals "anchor",
      	"floater".
      	(pa_can_combine_p): Likewise for params "anchor", "floater" and
      	locals "start", "end".
      	* config/picochip/picochip.c (picochip_reset_vliw): Likewise for
      	param "insn" and local "local_insn".
      	(picochip_final_prescan_insn): Likewise for local "local_insn".
      	* config/rs6000/rs6000.c (compute_save_world_info): Likewise for
      	local "insn".
      	(uses_TOC): Likewise.
      	* config/s390/s390.c (get_some_local_dynamic_name): Likewise.
      	(s390_mainpool_finish): Eliminate top-level local rtx "insn",
      	splitting out to more tightly-scoped locals, 3 as rtx and one as
      	rtx_insn *.
      	(s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
      	to rtx_insn *.
      	(s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
      	where needed.
      	* config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
      	to rtx_insn *.
      	(fixup_addr_diff_vecs): Likewise.
      	(reg_unused_after): Likewise for param 2.
      	(sh_can_redirect_branch): Likewise for both params.
      	(check_use_sfunc_addr): Likewise for param 1.
      	* config/sh/sh.c (fixup_mova): Likewise for local "worker".
      	(find_barrier): Likewise for local "last_got".
      	(gen_block_redirect): Likewise for return type, param "jump" and
      	locals "prev", "scan", "next", "insn".
      	(struct far_branch): Likewise for fields "near_label",
      	"insert_place", "far_label".
      	(gen_far_branch): Likewise for local "jump".
      	(fixup_addr_diff_vecs): Likewise for param "first" and locals
      	"insn", "prev".
      	(barrier_align): Likewise for param and for locals "prev", "x".
      	Introduce local rtx_sequence * "prev_seq" and use insn method for
      	typesafety and clarity.
      	(sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
      	(get_dest_uid): Likewise for local "dest".
      	(split_branches): Likewise for locals "next", "beyond", "label",
      	"block", "far_label".  Add checked casts when assigning to
      	bp->far_label and "far_label".
      	(reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
      	(sequence_insn_p): Likewise.
      	(mark_constant_pool_use): Likewise for locals "insn", "lab".  Add a
      	more loop-scoped rtx "insn" when walking LABEL_REFS.
      	(sh_can_redirect_branch): Strengthen both params from rtx to
      	rtx_insn *.
      	(check_use_sfunc_addr): Likewise for param "insn".  Introduce a
      	new local rtx_sequence * "seq" via a dyn_cast, and use a method
      	for clarity and typesafety.
      	* config/sh/sh.md (define_expand "epilogue"): Strengthen local
      	"insn" from rtx to rtx_insn *.
      	(define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
      	when using NEXT_INSN on the CODE_LABEL in operands[2].
      	(define_insn "casesi_worker_2"): Likewise.
      	(define_insn "casesi_shift_media"): Likewise.
      	(define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
      	operands[3].
      	* config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
      	Strengthen field "insn" from rtx to rtx_insn *.
      	(sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
      	(sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
      	param "start_insn" and local "start_insn".
      	* config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
      	field "insn".
      	(find_set_of_reg_bb): Likewise for param "insn".
      	(trace_reg_uses_1): Likewise for param "start_insn" and local "i".
      	(trace_reg_uses): Likewise for param "start_insn".
      	(sh_treg_combine::cbranch_trace): Likewise for field
      	"cbranch_insn".
      	(sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
      	param "insn".
      	(sh_treg_combine::record_set_of_reg): Likewise for param
      	"start_insn" and local "i".
      	(sh_treg_combine::can_remove_cstore): Likewise for local
      	"prev_insn".
      	(sh_treg_combine::try_optimize_cbranch): Likewise for param
      	"insn".
      	(sh_treg_combine::execute): Likewise for local "i".
      	* config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
      	param.
      	(sparc_check_64): Likewise for second param.
      	* config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
      	locals "insn", "next".  Introduce local rtx_sequence * "seq" via a
      	dyn_cast, using its insn method for typesafety and clarity.
      	(empty_delay_slot): Strengthen param "insn" from rtx to
      	rtx_insn *.
      	(set_extends): Likewise.
      	(sparc_check_64): Likewise.
      	* config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
      	for locals "seq", "last_insn".
      	(combine_bnp): Likewise for param "insn".
      	(xstormy16_reorg): Likewise for local "insn".
      	* config/v850/v850.c (substitute_ep_register): Likewise for params
      	"first_insn", "last_insn" and local "insn".
      	(v850_reorg): Likewise for fields "first_insn", "last_insn" within
      	elements of "regs" array, and local "insn".
      	* except.c (emit_note_eh_region_end): Likewise for param "insn".
      	* final.c (final_sequence): Strengthen this global from rtx to
      	rtx_sequence *.
      	(shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
      	rtx_insn *.
      	(final_scan_insn): Update assignment to "final_sequence" to be
      	from "seq", the cast version of "body", for type-safety.
      	* function.c (assign_parm_setup_reg): Strengthen locals "insn",
      	"insns" from rtx to rtx_insn *.
      	(thread_prologue_and_epilogue_insns): Likewise for local "seq".
      	* genattr.c (main): When writing out generated insn-attr.h,
      	strengthen params 1 and 3 of eligible_for_delay,
      	eligible_for_annul_true, eligible_for_annul_false from rtx to
      	rtx_insn *.
      	* genattrtab.c (write_eligible_delay): Likewise when writing out
      	generated insn-attrtab.c; also local "insn" the generated
      	functions.
      	* hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
      	to rtx_insn *.
      	* hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
      	"start_label" from rtx to rtx_insn *.
      	* ira.c (decrease_live_ranges_number): Likewise for local "p".
      	(ira_update_equiv_info_by_shuffle_insn): Likewise for param
      	"insns" and local "insn".
      	(validate_equiv_mem): Likewise for param "start" and local "insn".
      	(memref_used_between_p): Likewise for params "start", "end" and
      	local "insn".
      	* ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
      	final param.
      	* loop-doloop.c (doloop_optimize): Within region guarded by
      	INSN_P (doloop_pat), introduce a new local rtx_insn *
      	"doloop_insn" via a checked cast, and use it for typesafety,
      	eventually writing the value back into doloop_pat.
      	* output.h (final_sequence): Strengthen this global from rtx to
      	rtx_sequence *.
      	* recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
      	reintroducing "insn" as an rtx_insn * via a checked cast.
      	Strengthen param "attempt" and local "new_insn"from rtx to
      	rtx_insn *.
      	(peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
      	to rtx_insn *.
      	* ree.c (emit_note_eh_region_end): Likewise for local "insn".
      	* reload1.c (reload_as_needed): Eliminate top-level locals "x" and
      	"p" in favor of more tightly-scoped replacements, sometimes rtx
      	and sometimes rtx_insn *, as appropriate.
      	(delete_output_reload): Eliminate top-level rtx "i1", splitting
      	into two loop-scoped locals, one an rtx, the other an rtx_insn *.
      	* reorg.c (delete_scheduled_jump): Add checked cast.  Strengthen
      	local "trial" from rtx to rtx_insn *.
      	(redirect_with_delay_slots_safe_p): Strengthen param "jump" from
      	rtx to rtx_insn *.  Strenghten local "pat" from rtx to
      	rtx_sequence * and use methods for clarity and typesafety.
      	(redirect_with_delay_list_safe_p): Strengthen param "jump" from
      	rtx to rtx_insn *.  Strenghten local "li" from rtx to
      	rtx_insn_list * and use its methods for clarity and typesafety.
      	(steal_delay_list_from_target): Strengthen param "insn" from rtx
      	to rtx_insn *.
      	(steal_delay_list_from_fallthrough): Likewise.
      	(try_merge_delay_insns): Likewise for param "thread" and locals
      	"trial", "next_trial", "delay_insn".
      	(redundant_insn): Likewise for param "target" and local "trial".
      	(own_thread_p): Likewise for param "thread" and locals
      	"active_insn", "insn".
      	(get_label_before): Likewise for param "insn".
      	(fill_simple_delay_slots): Likewise for local "new_label"; use
      	JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
      	(label_before_next_insn): Strengthen return type and local "insn"
      	from rtx to rtx_insn *.
      	(relax_delay_slots): Likewise for locals "other", "tmp".
      	(make_return_insns): Likewise for param "first" and locals "insn",
      	"jump_insn", "prev".  Move declaration of "pat" to its assignment
      	and strengthen from rtx to rtx_sequence *.  Use its methods for
      	clarity and typesafety.
      	* rtlanal.c (no_labels_between_p): Strengthen params from
      	const_rtx to const rtx_insn *.  Strengthen local "p" from rtx to
      	rtx_insn *.
      	(reg_used_between_p): Strengthen params "from_insn", "to_insn"
      	from const_rtx to const rtx_insn *.
      	(reg_set_between_p): Rename param "from_insn" to
      	"uncast_from_insn", and reintroduce "from_insn" as a
      	const rtx_insn * via a checked cast.
      	(modified_between_p): Likewise for param "start" as "uncast_start".
      	(tablejump_p): Add a cast when invoking NEXT_INSN on "label".
      	* sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
      	"tmp", head" from rtx to rtx_insn *.
      	(recompute_rev_top_order): Likewise for local "insn".
      	* sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
      	* store-motion.c (build_store_vectors): Likewise for local "insn".
      	Strengthen local "st" from rtx to rtx_insn_list * and use methods
      	for clarity and typesafety.
      	* tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
      	rtx to rtx_insn *.
      	(computation_cost): Likewise for local "seq".
      	(get_address_cost): Likewise.
      
      /
      2014-08-28  David Malcolm  <dmalcolm@redhat.com>
      
      	* rtx-classes-status.txt (TODO): NEXT_INSN/PREV_INSN are done.
      
      From-SVN: r214698
      David Malcolm committed
    • Work towards NEXT_INSN/PREV_INSN requiring insns as their params · dc01c3d1
      gcc/
      2014-08-28  David Malcolm  <dmalcolm@redhat.com>
      
      	* cfgexpand.c (pass_expand::execute): Strengthen local "after"
      	from rtx to rtx_insn *.
      	* cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
      	rtx "note" with new local rtx_insn * "new_head" when calculating
      	head insn of new basic block.
      	* combine.c (combine_split_insns): Strengthen return type and local
      	"ret" from rtx to rtx_insn *.
      	(likely_spilled_retval_p): Likewise for locals "use" and "p".
      	(try_combine): Eliminate local "m_split", splitting into new
      	locals "m_split_insn" and "m_split_pat".
      	(find_split_point): Strengthen local "seq" from rtx into
      	rtx_insn *.
      	* config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
      	locals "label", "branch".
      	* config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
      	for local "insn".
      	(define_expand "umulsi3_highpart"): Likewise for local "insn".
      	* dse.c (note_add_store_info): Likewise for fields "first",
      	"current".
      	(note_add_store): Likewise for local "insn".
      	(emit_inc_dec_insn_before): Likewise for locals "insn",
      	"new_insn", "cur".
      	(find_shift_sequence): Likewise for locals "shift_seq", "insn".
      	(replace_read): Likewise for locals "insns", "this_insn".
      	* dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
      	(notice_eh_throw): Likewise for param "insn".
      	(before_next_cfi_note): Likewise for return type, param, and local
      	"prev".
      	(connect_traces): Likewise for local "note".
      	* emit-rtl.c (reset_all_used_flags): Likewise for local "p".
      	(verify_rtl_sharing): Likewise.
      	(unshare_all_rtl_in_chain): Likewise for param "insn".
      	(get_first_nonnote_insn): Likewise for local "insn".
      	(get_last_nonnote_insn): Likewise.  Introduce local rtx_sequence *
      	"seq" and use its methods to clarify things.
      	(next_insn): Strengthen return type from rtx to rtx_insn *.
      	Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
      	local rtx_insn * using a checked cast, dropping a checked cast
      	made redundant by this change.  Use a cast to and method of
      	rtx_sequence to clarify the code.
      	(previous_insn): Rename param "insn" to "uncast_insn" and
      	reintroduce "insn" as a local rtx_insn * using a checked cast,
      	dropping a checked cast made redundant by this change.  Use a cast
      	to and method of rtx_sequence to clarify the code.
      	(next_nonnote_insn): Rename param "insn" to "uncast_insn" and
      	reintroduce "insn" as a local rtx_insn * using a checked cast,
      	dropping a checked cast made redundant by this change.
      	(next_nonnote_insn_bb): Likewise.
      	(prev_nonnote_insn): Likewise.
      	(prev_nonnote_insn_bb): Likewise.
      	(next_nondebug_insn): Likewise.
      	(prev_nondebug_insn): Likewise.
      	(next_nonnote_nondebug_insn): Likewise.
      	(prev_nonnote_nondebug_insn): Likewise.
      	(next_real_insn): Likewise.
      	(prev_real_insn): Likewise.
      	(next_active_insn): Likewise.
      	(prev_active_insn): Likewise.
      	(next_cc0_user): Likewise.  Use rtx_sequence and a method for
      	clarity.
      	(prev_cc0_setter): Likewise.
      	(try_split): Rename param "trial" to "uncast_trial" and
      	reintroduce "insn" as a local rtx_insn * using a checked cast,
      	dropping checked casts made redundant by this change.
      	Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
      	rtx to rtx_insn *.
      	(remove_insn): Rename param "insn" to "uncast_insn" and
      	reintroduce "insn" as a local rtx_insn * using a checked cast.
      	(emit_pattern_after_setloc): Likewise for param "after", as
      	"uncast_after".
      	(emit_pattern_after): Likewise.  Strengthen local "prev" from
      	rtx to rtx_insn *.
      	(emit_pattern_before_setloc): Rename param "before" to
      	"uncast_before" and reintroduce "before" as a local rtx_insn *
      	using a checked cast.  Strengthen locals "first", "last" from
      	rtx to rtx_insn *.
      	(emit_pattern_before): Likewise rename/cast param "before" to
      	"uncast_before". Strengthen local "next" from rtx to rtx_insn *.
      	* except.c (copy_reg_eh_region_note_forward): Strengthen param
      	"first" and local "insn" from rtx to rtx_insn *.
      	(copy_reg_eh_region_note_backward): Likewise for param "last"
      	and local "insn".
      	* expr.c (fixup_args_size_notes): Rename param "last" to
      	"uncast_last" and reintroduce "last" as a local rtx_insn *
      	using a checked cast.  Strengthen local "insn" from rtx to
      	rtx_insn *.
      	* function.c (set_insn_locations): Strengthen param "insn" from
      	rtx to rtx_insn *.
      	(record_insns): Likewise for param "insns" and local "tmp".
      	(active_insn_between): Rename param "tail" to
      	"uncast_tail" and reintroduce "tail" as a local rtx_insn *
      	using a checked cast.
      	(thread_prologue_and_epilogue_insns): Split out top-level local
      	rtx "seq" into three different rtx_insn * locals.  Strengthen
      	local "prologue_seq" from rtx to rtx_insn *.
      	* gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
      	from rtx to rtx_insn *.
      	* haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
      	(priority): Likewise for locals "prev_first", "twin".
      	(setup_insn_max_reg_pressure): Likewise for param "after".
      	(sched_setup_bb_reg_pressure_info): Likewise.
      	(no_real_insns_p): Strengthen params from const_rtx to
      	const rtx_insn *.
      	(schedule_block): Strengthen local "next_tail" from rtx to
      	rtx_insn *.
      	* ifcvt.c (find_active_insn_before): Strengthen return type and
      	param "insn" from rtx to rtx_insn *.
      	(find_active_insn_after): Likewise.
      	(cond_exec_process_insns): Likewise for param "start" and local "insn".
      	(cond_exec_process_if_block): Likewise for locals "then_start",
      	"then_end", "else_start", "else_end", "insn", "start", "end", "from".
      	(noce_process_if_block): Likewise for local "jump".
      	(merge_if_block): Likewise for two locals named "end".
      	(cond_exec_find_if_block): Likewise for local "last_insn".
      	* jump.c (delete_related_insns): Rename param "insn" to
      	"uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
      	checked cast.  Strengthen local "p" from rtx to rtx_insn *.
      	* lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
      	NULL.
      	(split_reg): Likewise.
      	* lra.c (lra_process_new_insns): Likewise.
      	* modulo-sched.c (permute_partial_schedule): Strengthen param
      	"last" from rtx to rtx_insn *.
      	* optabs.c (add_equal_note): Likewise for param "insns" and local
      	"last_insn".
      	(expand_binop_directly): Add checked casts to rtx_insn * within
      	NEXT_INSN (pat) uses.
      	(expand_unop_direct): Likewise.
      	(maybe_emit_unop_insn): Likewise.
      	* recog.c (peep2_attempt): Strengthen locals "last",
      	"before_try", "x" from rtx to rtx_insn *.
      	* reorg.c (optimize_skip): Strengthen return type and local
      	"delay_list" from rtx to rtx_insn_list *.  Strengthen param "insn"
      	and locals "trial", "next_trial" from rtx to rtx_insn *.
      	* resource.c (next_insn_no_annul): Strengthen return type and
      	param "insn" from rtx to rtx_insn *.  Use a cast to and method of
      	rtx_sequence to clarify the code.
      	(mark_referenced_resources): Add a checked cast to rtx_insn *
      	within PREV_INSN (x).
      	(find_dead_or_set_registers): Strengthen return type, param
      	"target", locals "insn", "next", "jump_insn", "this_jump_insn"
      	from rtx to rtx_insn *.  Strengthen param "jump_target" from rtx *
      	to rtx_insn **.
      	(mark_target_live_regs): Strengthen params "insns" and "target",
      	locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
      	to rtx_insn *.  Use cast to and method of rtx_sequence to clarify
      	the code.
      	* resource.h (mark_target_live_regs): Strengthen params 1 and 2
      	from rtx to rtx_insn *.
      	* rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
      	from rtx to rtx_insn *.
      	(copy_reg_eh_region_note_backward): Likewise.
      	(unshare_all_rtl_in_chain): Likewise for sole param.
      	(dump_rtl_slim): Strengthen second and third params from const_rtx
      	to const rtx_insn *.
      	* sched-deps.c (sched_free_deps): Strengthen params "head" and
      	"tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
      	* sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
      	"next_tail" from rtx to rtx_insn *.
      	(begin_move_insn): Likewise for local "next".
      	* sched-int.h (sched_free_deps): Likewise for first and second
      	params.
      	(no_real_insns_p): Strengthen both params from const_rtx to
      	const rtx_insn *.
      	(sched_setup_bb_reg_pressure_info): Strengthen second params from
      	rtx to rtx_insn *.
      	* sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
      	"next_tail".
      	* sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
      	and locals "insn", "tail" from const_rtx to const rtx_insn *.
      	(rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
      	rtx_insn *.
      	(debug_rtl_slim): Strengthen params "first" and "last" from
      	const_rtx to const rtx_insn *.
      	* shrink-wrap.c (try_shrink_wrapping): Strengthen param
      	"prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
      	(convert_to_simple_return): Likewise for param "returnjump".
      	* shrink-wrap.h (try_shrink_wrapping): Likewise for param
      	"prologue_seq".
      	(convert_to_simple_return): Likewise for param "returnjump".
      	* valtrack.c (propagate_for_debug): Likewise for params
      	"insn", "last".
      	* valtrack.h (propagate_for_debug): Likewise for second param.
      
      From-SVN: r214693
      David Malcolm committed
  3. 26 Aug, 2014 1 commit
    • Remove DF_REF_INSN scaffolding · b2908ba6
      gcc/
      2014-08-26  David Malcolm  <dmalcolm@redhat.com>
      
      	* df.h (df_dump_insn_problem_function): Strengthen first param of
      	this callback from const_rtx to const rtx_insn *.
      	(struct df_insn_info): Strengthen field "insn" from rtx to
      	rtx_insn *.
      	(DF_REF_INSN): Eliminate this function, reinstating the older
      	macro definition.
      	(df_find_def): Strengthen param 1 from rtx to rtx_insn *.
      	(df_reg_defined): Likewise.
      	(df_find_use): Likewise.
      	(df_reg_used): Likewise.
      	(df_dump_insn_top): Strengthen param 1 from const_rtx to
      	const rtx_insn *.
      	(df_dump_insn_bottom): Likewise.
      	(df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
      	(df_insn_debug_regno): Likewise.
      	(debug_df_insn): Likewise.
      	(df_rd_simulate_one_insn): Likewise for param 2.
      	(df_word_lr_simulate_defs): Likewise for param 1.
      	(df_word_lr_simulate_uses): Likewise.
      	(df_md_simulate_one_insn): Likewise for param 2.
      	(df_simulate_find_noclobber_defs): Likewise for param 1.
      	(df_simulate_find_defs): Likewise.
      	(df_simulate_defs): Likewise.
      	(df_simulate_uses): Likewise.
      	(df_simulate_one_insn_backwards): Likewise for param 2.
      	(df_simulate_one_insn_forwards): Likewise.
      	(df_uses_create): Likewise for param 2.
      	(df_insn_create_insn_record): Likewise for param 1.
      	(df_insn_delete): Likewise.
      	(df_insn_rescan): Likewise.
      	(df_insn_rescan_debug_internal): Likewise.
      	(df_insn_change_bb): Likewise.
      	(df_notes_rescan): Likewise.
      	* rtl.h (remove_death): Likewise for param 2.
      	(print_rtl_with_bb): Strengthen param 2 from const_rtx to
      	const rtx_insn *.
      	* sched-int.h (reemit_notes): Strengthen param from rtx to
      	rtx_insn *.
      	* valtrack.h (propagate_for_debug): Likewise for param 1.
      
      	* cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
      	local "tmp_rtx" from const_rtx to const rtx_insn *.
      	* combine.c (remove_death): Strengthen param "insn" from rtx to
      	rtx_insn *.
      	(move_deaths): Likewise for local "where_dead".
      	* cse.c (delete_trivially_dead_insns): Introduce local
      	"bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
      	* df-core.c (df_find_def): Strengthen param "insn" from rtx to
      	rtx_insn *.
      	(df_reg_defined): Likewise.
      	(df_find_use): Likewise.
      	(df_reg_used): Likewise.
      	(df_dump_insn_problem_data): Strengthen param "insn" from
      	const_rtx to const rtx_insn *.
      	(df_dump_insn_top): Likewise.
      	(df_dump_insn_bottom): Likewise.
      	(df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
      	(df_insn_debug_regno): Likewise.
      	(debug_df_insn): Likewise.
      	(DF_REF_INSN): Delete.
      	* df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
      	from rtx to rtx_insn *.
      	(df_chain_insn_top_dump): Strengthen param "insn" from
      	const_rtx to const rtx_insn *.
      	(df_chain_insn_bottom_dump): Likewise.
      	(df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
      	rtx_insn *.
      	(df_word_lr_simulate_uses): Likewise.
      	(df_print_note): Likewise.
      	(df_remove_dead_and_unused_notes): Likewise.
      	(df_set_unused_notes_for_mw): Likewise.
      	(df_set_dead_notes_for_mw): Likewise.
      	(df_create_unused_note): Likewise.
      	(df_simulate_find_defs): Likewise.
      	(df_simulate_find_uses): Likewise.
      	(df_simulate_find_noclobber_defs): Likewise.
      	(df_simulate_defs): Likewise.
      	(df_simulate_uses): Likewise.
      	(df_simulate_one_insn_backwards): Likewise.
      	(df_simulate_one_insn_forwards): Likewise.
      	(df_md_simulate_one_insn): Likewise.
      	* df-scan.c (df_uses_create): Likewise.
      	(df_insn_create_insn_record): Likewise.
      	(df_insn_delete): Likewise.
      	(df_insn_rescan): Likewise.
      	(df_insn_rescan_debug_internal): Likewise.
      	(df_insn_change_bb): Likewise.
      	(df_notes_rescan): Likewise.
      	(df_refs_add_to_chains): Likewise.
      	(df_insn_refs_verify): Likewise.
      	* emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
      	when invoking df_insn_delete.
      	(reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
      	(set_unique_reg_note): Add checked cast.
      	* final.c (cleanup_subreg_operands): Likewise.
      	* gcse.c (update_ld_motion_stores): Likewise, strengthening local
      	"insn" from rtx to rtx_insn *.
      	* haifa-sched.c (reemit_notes): Strengthen param "insn" and local
      	"last" from rtx to rtx_insn *.
      	* ira-emit.c (change_regs_in_insn): New function.
      	(change_loop): Strengthen local "insn" from rtx to rtx_insn *.
      	Invoke change_regs_in_insn rather than change_regs.
      	* ira.c (update_equiv_regs): Strengthen locals "insn",
      	"init_insn", "new_insn" from rtx to rtx_insn *.  Invoke
      	for_each_rtx_in_insn rather than for_each_rtx.
      	* recog.c (confirm_change_group): Add checked casts.
      	(peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
      	Add checked cast.
      	(peep2_fill_buffer): Add checked cast.
      	* rtlanal.c (remove_note): Likewise.
      	* valtrack.c (propagate_for_debug): Strengthen param "insn" and
      	locals "next" "end" from rtx to rtx_insn *.
      
      /
      2014-08-26  David Malcolm  <dmalcolm@redhat.com>
      
      	* rtx-classes-status.txt (TODO): DF_REF_INSN is done.
      
      From-SVN: r214548
      David Malcolm committed
  4. 22 Aug, 2014 1 commit
    • recog.c: Use rtx_insn · e06ed0c4
      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
      David Malcolm committed
  5. 14 Aug, 2014 1 commit
  6. 09 Jul, 2014 1 commit
    • remove has_execute · 558d2559
      gcc/
      
      	* tree-pass.h (pass_data): Remove has_execute member.
      	* passes.c (execute_one_pass): Don't check pass->has_execute.
      	* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
      	cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
      	compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
      	config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
      	config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
      	config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
      	config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
      	dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
      	gimple-low.c, gimple-ssa-isolate-paths.c,
      	gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
      	ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
      	ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
      	ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
      	lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
      	postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
      	reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
      	stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
      	tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
      	tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
      	tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
      	tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
      	tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
      	tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
      	tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
      	tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
      	tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
      	tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
      	tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
      	tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
      	tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
      	tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
      	tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
      	web.c: Remove initializer for pass_data::has_execute.
      
      From-SVN: r212383
      Trevor Saunders committed
  7. 15 Jun, 2014 1 commit
    • df.h (DF_INSN_INFO_MWS, [...]): New macros. · bfac633a
      gcc/
      	* df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
      	(FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
      	(FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
      	* auto-inc-dec.c (find_inc, merge_in_block): Use them.
      	* combine.c (create_log_links): Likewise.
      	* compare-elim.c (find_flags_uses_in_insn): Likewise.
      	(try_eliminate_compare): Likewise.
      	* cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
      	* dce.c (deletable_insn_p, find_call_stack_args): Likewise.
      	(remove_reg_equal_equiv_notes_for_defs): Likewise.
      	(reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
      	(word_dce_process_block, dce_process_block): Likewise.
      	* ddg.c (def_has_ccmode_p): Likewise.
      	* df-core.c (df_bb_regno_first_def_find): Likewise.
      	(df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
      	* df-problems.c (df_rd_simulate_one_insn): Likewise.
      	(df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
      	(df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
      	(df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
      	(df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
      	(df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
      	(df_simulate_find_defs, df_simulate_find_uses): Likewise.
      	(df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
      	(df_simulate_uses, df_md_simulate_one_insn): Likewise.
      	* df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
      	* fwprop.c (local_ref_killed_between_p): Likewise.
      	(all_uses_available_at, free_load_extend): Likewise.
      	* gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
      	* hw-doloop.c (scan_loop): Likewise.
      	* ifcvt.c (dead_or_predicable): Likewise.
      	* init-regs.c (initialize_uninitialized_regs): Likewise.
      	* ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
      	(process_bb_node_lives): Likewise.
      	* ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
      	(find_moveable_pseudos): Likewise.
      	* loop-invariant.c (check_dependencies, record_uses): Likewise.
      	* recog.c (peep2_find_free_register): Likewise.
      	* ree.c (get_defs): Likewise.
      	* regstat.c (regstat_bb_compute_ri): Likewise.
      	(regstat_bb_compute_calls_crossed): Likewise.
      	* sched-deps.c (find_inc, find_mem): Likewise.
      	* sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
      	(maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
      	* shrink-wrap.c (requires_stack_frame_p): Likewise.
      	(prepare_shrink_wrap): Likewise.
      	* store-motion.c (compute_store_table, build_store_vectors): Likewise.
      	* web.c (union_defs, pass_web::execute): Likewise.
      	* config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
      	(insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
      
      From-SVN: r211678
      Richard Sandiford committed
  8. 11 Jun, 2014 5 commits
    • common.md: New file. · 8677664e
      gcc/
      	* common.md: New file.
      	* doc/md.texi: Update description of generic, machine-independent
      	constraints.
      	* config/s390/constraints.md (e): Delete.
      	* Makefile.in (md_file): Include common.md.
      	* config/m32c/t-m32c (md_file): Likewise.
      	* genpreds.c (general_mem): New array.
      	(generic_constraint_letters): Remove constraints now defined by
      	common.md.
      	(add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
      	Allow the first character to be '<' or '>' as well.
      	* genoutput.c (general_mem): New array.
      	(indep_constraints): Remove constraints now defined by common.md.
      	(note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
      	Remove special handling of 'm'.
      	* ira-costs.c (record_reg_classes): Remove special handling of
      	constraints now defined by common.md.
      	* ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
      	* ira-lives.c (single_reg_class): Likewise.
      	(ira_implicitly_set_insn_hard_regs): Likewise.
      	* lra-constraints.c (reg_class_from_constraints): Likewise.
      	(process_alt_operands, process_address, curr_insn_transform): Likewise.
      	* postreload.c (reload_cse_simplify_operands): Likewise.
      	* reload.c (push_secondary_reload, scratch_reload_class)
      	(find_reloads, alternative_allows_const_pool_ref): Likewise.
      	* reload1.c (maybe_fix_stack_asms): Likewise.
      	* targhooks.c (default_secondary_reload): Likewise.
      	* stmt.c (parse_output_constraint): Likewise.
      	* recog.c (preprocess_constraints): Likewise.
      	(constrain_operands, peep2_find_free_register): Likewise.
      	(asm_operand_ok): Likewise, but add a comment saying why 'o'
      	must be handled specially.
      
      From-SVN: r211475
      Richard Sandiford committed
    • system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison. · 7fd308cf
      gcc/
      	* system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
      	* genpreds.c (have_const_dbl_constraints): Delete.
      	(add_constraint): Don't set it.
      	(write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
      	* ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
      	constraints using the lookup_constraint logic.
      	* ira-lives.c (single_reg_class): Likewise.
      	* ira.c (ira_setup_alts): Likewise.
      	* lra-constraints.c (process_alt_operands): Likewise.
      	* recog.c (asm_operand_ok, constrain_operands): Likewise.
      	* reload.c (find_reloads): Likewise.
      
      From-SVN: r211474
      Richard Sandiford committed
    • genpreds.c (const_int_start, [...]): New variables. · d9c35eee
      gcc/
      	* genpreds.c (const_int_start, const_int_end): New variables.
      	(choose_enum_order): Output CONST_INT constraints before memory
      	constraints.
      	(write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
      	Add CT_CONST_INT.
      	* ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
      	* ira.c (ira_setup_alts): Likewise.
      	* lra-constraints.c (process_alt_operands): Likewise.
      	* recog.c (asm_operand_ok, preprocess_constraints): Likewise.
      	* reload.c (find_reloads): Likewise.
      
      From-SVN: r211473
      Richard Sandiford committed
    • recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok, decmem_ok and incmem_ok. · 3c4c42e8
      gcc/
      	* recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
      	decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
      	* recog.c (preprocess_constraints): Update accordingly.
      
      From-SVN: r211472
      Richard Sandiford committed
    • system.h (REG_CLASS_FROM_CONSTRAINT): Poison. · 777e635f
      gcc/
      	* system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
      	(REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
      	(EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
      	* genpreds.c (print_type_tree): New function.
      	(write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
      	REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
      	EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
      	Write out enum constraint_type and get_constraint_type.
      	* lra-constraints.c (satisfies_memory_constraint_p): Take a
      	constraint_num rather than a constraint string.
      	(satisfies_address_constraint_p): Likewise.
      	(reg_class_from_constraints): Avoid old constraint macros.
      	(process_alt_operands, process_address_1): Likewise.
      	(curr_insn_transform): Likewise.
      	* ira-costs.c (record_reg_classes): Likewise.
      	(record_operand_costs): Likewise.
      	* ira-lives.c (single_reg_class): Likewise.
      	(ira_implicitly_set_insn_hard_regs): Likewise.
      	* ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
      	* postreload.c (reload_cse_simplify_operands): Likewise.
      	* recog.c (asm_operand_ok, preprocess_constraints): Likewise.
      	(constrain_operands, peep2_find_free_register): Likewise.
      	* reload.c (push_secondary_reload, scratch_reload_class): Likewise.
      	(find_reloads, alternative_allows_const_pool_ref): Likewise.
      	* reload1.c (maybe_fix_stack_asms): Likewise.
      	* stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
      	* targhooks.c (default_secondary_reload): Likewise.
      	* config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
      	to EXTRA_CONSTRAINT_STR.
      	* config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
      
      From-SVN: r211471
      Richard Sandiford committed
  9. 04 Jun, 2014 4 commits
    • recog.h (operand_alternative): Convert reg_class, reject, matched and matches into bitfields. · 1145837d
      gcc/
      	* recog.h (operand_alternative): Convert reg_class, reject,
      	matched and matches into bitfields.
      	(preprocess_constraints): New overload.
      	(preprocess_insn_constraints): New function.
      	(preprocess_constraints): Take the insn as parameter.
      	(recog_op_alt): Change into a pointer.
      	(target_recog): Add x_op_alt.
      	* recog.c (asm_op_alt): New variable.
      	(recog_op_alt): Change into a pointer.
      	(preprocess_constraints): New overload, replacing the old function
      	definition with one that doesn't use global state.
      	(preprocess_insn_constraints): New function.
      	(preprocess_constraints): Use them.  Take the insn as parameter.
      	Use asm_op_alt for asms.
      	(recog_init): Free existing x_op_alt entries.
      	* ira-lives.c (check_and_make_def_conflict): Make operand_alternative
      	pointer const.
      	(make_early_clobber_and_input_conflicts): Likewise.
      	(process_bb_node_lives): Pass the insn to process_constraints.
      	* reg-stack.c (check_asm_stack_operands): Likewise.
      	(subst_asm_stack_regs): Likewise.
      	* regcprop.c (copyprop_hardreg_forward_1): Likewise.
      	* regrename.c (build_def_use): Likewise.
      	* sched-deps.c (sched_analyze_insn): Likewise.
      	* sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
      	* config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
      	(note_invalid_constants): Likewise.
      	* config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
      	(ix86_legitimate_combined_insn): Make operand_alternative pointer
      	const.
      
      From-SVN: r211240
      Richard Sandiford committed
    • recog.c (preprocess_constraints): Don't skip disabled alternatives. · 5f2e0797
      gcc/
      	* recog.c (preprocess_constraints): Don't skip disabled alternatives.
      	* ira-lives.c (check_and_make_def_conflict): Check for disabled
      	alternatives.
      	(make_early_clobber_and_input_conflicts): Likewise.
      	* config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
      
      From-SVN: r211239
      Richard Sandiford committed
    • recog.h (recog_op_alt): Convert to a flat array. · 29d70a0f
      gcc/
      	* recog.h (recog_op_alt): Convert to a flat array.
      	(which_op_alt): New function.
      	* recog.c (recog_op_alt): Convert to a flat array.
      	(preprocess_constraints): Update accordingly, grouping all
      	operands of the same alternative together, rather than the
      	other way around.
      	* ira-lives.c (check_and_make_def_conflict): Likewise.
      	(make_early_clobber_and_input_conflicts): Likewise.
      	* config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
      	* reg-stack.c (check_asm_stack_operands): Use which_op_alt.
      	(subst_asm_stack_regs): Likewise.
      	* regcprop.c (copyprop_hardreg_forward_1): Likewise.
      	* regrename.c (hide_operands, record_out_operands): Likewise.
      	(build_def_use): Likewise.
      	* sel-sched.c (get_reg_class): Likewise.
      	* config/arm/arm.c (note_invalid_constants): Likewise.
      
      From-SVN: r211237
      Richard Sandiford committed
    • recog.c (peep2_attempt): Copy SIBLING_CALL_P flag from old call-instruction. · 0dac3001
      	* recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
      	from old call-instruction.
      
      From-SVN: r211213
      Kai Tietz committed
  10. 27 May, 2014 1 commit
    • system.h (TEST_BIT): New macro. · 4cc8d9d2
      gcc/
      	* system.h (TEST_BIT): New macro.
      	* recog.h (alternative_mask): New type.
      	(ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
      	(recog_data_d): Replace alternative_enabled_p array with
      	enabled_alternatives.
      	(target_recog): New structure.
      	(default_target_recog, this_target_recog): Declare.
      	(get_enabled_alternatives, recog_init): Likewise.
      	* recog.c (default_target_recog, this_target_recog): New variables.
      	(get_enabled_alternatives): New function.
      	(extract_insn): Use it.
      	(recog_init): New function.
      	(preprocess_constraints, constrain_operands): Adjust for change to
      	recog_data.
      	* postreload.c (reload_cse_simplify_operands): Likewise.
      	* reload.c (find_reloads): Likewise.
      	* ira-costs.c (record_reg_classes): Likewise.
      	* ira-lives.c (single_reg_class): Likewise.  Fix bug in which
      	all alternatives after a disabled one would be skipped.
      	(ira_implicitly_set_insn_hard_regs): Likewise.
      	* ira.c (ira_setup_alts): Adjust for change to recog_data.
      	* lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
      	with enabled_alternatives.
      	* lra.c (free_insn_recog_data): Update accordingly.
      	(lra_update_insn_recog_data): Likewise.
      	(lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
      	* lra-constraints.c (process_alt_operands): Likewise.  Handle
      	only_alternative as part of the enabled mask.
      	* target-globals.h (this_target_recog): Declare.
      	(target_globals): Add a recog field.
      	(restore_target_globals): Restore this_target_recog.
      	* target-globals.c: Include recog.h.
      	(default_target_globals): Initialize recog field.
      	(save_target_globals): Likewise.
      	* reginfo.c (reinit_regs): Call recog_init.
      	* toplev.c (backend_init_target): Likewise.
      
      From-SVN: r210964
      Richard Sandiford committed
  11. 06 May, 2014 2 commits
    • Merge in wide-int. · 807e902e
      From-SVN: r210113
      Kenneth Zadeck committed
    • tree-pass.h (TODO_verify_ssa, [...]): Remove. · 3bea341f
      2014-05-06  Richard Biener  <rguenther@suse.de>
      
      	* tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
      	TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
      	(TODO_verify_all): Adjust.
      	* asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
      	TODO_verify_stmts and TODO_verify_rtl_sharing.
      	* bb-reorder.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cprop.c: Likewise.
      	* cse.c: Likewise.
      	* function.c: Likewise.
      	* fwprop.c: Likewise.
      	* gcse.c: Likewise.
      	* gimple-ssa-isolate-paths.c: Likewise.
      	* gimple-ssa-strength-reduction.c: Likewise.
      	* ipa-split.c: Likewise.
      	* loop-init.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* lower-subreg.c: Likewise.
      	* modulo-sched.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* predict.c: Likewise.
      	* recog.c: Likewise.
      	* sched-rgn.c: Likewise.
      	* store-motion.c: Likewise.
      	* tracer.c: Likewise.
      	* trans-mem.c: Likewise.
      	* tree-call-cdce.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-complex.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-emutls.c: Likewise.
      	* tree-if-conv.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-pass.h: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-copy.c: Likewise.
      	* tree-ssa-copyrename.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-dse.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-ifcombine.c: Likewise.
      	* tree-ssa-loop-ch.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* tree-ssa-loop.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* tree-ssa-sink.c: Likewise.
      	* tree-ssa-strlen.c: Likewise.
      	* tree-ssa-tail-merge.c: Likewise.
      	* tree-ssa-uncprop.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-tailcall.c: Likewise.
      	* tree-vect-generic.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* tsan.c: Likewise.
      	* var-tracking.c: Likewise.
      	* bt-load.c: Likewise.
      	* cfgcleanup.c: Likewise.
      	* combine-stack-adj.c: Likewise.
      	* combine.c: Likewise.
      	* compare-elim.c: Likewise.
      	* config/epiphany/resolve-sw-modes.c: Likewise.
      	* config/i386/i386.c: Likewise.
      	* config/mips/mips.c: Likewise.
      	* config/s390/s390.c: Likewise.
      	* config/sh/sh_treg_combine.cc: Likewise.
      	* config/sparc/sparc.c: Likewise.
      	* dce.c: Likewise.
      	* dse.c: Likewise.
      	* final.c: Likewise.
      	* ifcvt.c: Likewise.
      	* mode-switching.c: Likewise.
      	* passes.c: Likewise.
      	* postreload.c: Likewise.
      	* ree.c: Likewise.
      	* reg-stack.c: Likewise.
      	* regcprop.c: Likewise.
      	* regrename.c: Likewise.
      	* web.c: Likewise.
      
      From-SVN: r210106
      Richard Biener committed
  12. 17 Apr, 2014 3 commits
    • pass cfun to pass::execute · be55bfe6
      gcc/
      	* passes.c (opt_pass::execute): Adjust.
      	(pass_manager::execute_pass_mode_switching): Likewise.
      	(early_local_passes::execute): Likewise.
      	(execute_one_pass): Pass cfun to the pass's execute method.
      	* tree-pass.h (opt_pass::execute): Add function * argument.
      	* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
      	cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
      	compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
      	config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
      	config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
      	config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
      	except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
      	gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
      	graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
      	ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
      	ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
      	lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
      	postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
      	reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
      	store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
      	tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
      	tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
      	tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
      	tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
      	tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
      	tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
      	tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
      	tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
      	tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
      	tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
      	tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
      	tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
      	tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
      	tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
      	Adjust.
      
      From-SVN: r209482
      Trevor Saunders committed
    • pass current function to opt_pass::gate () · 1a3d085c
      gcc/
      	* passes.c (opt_pass::gate): Take function * argument.
      	(gate_all_early_local_passes): Merge into
      	(early_local_passes::gate): this.
      	(gate_all_early_optimizations): Merge into
      	(all_early_optimizations::gate): this.
      	(gate_all_optimizations): Mege into
      	(all_optimizations::gate): this.
      	(gate_all_optimizations_g): Merge into
      	(all_optimizations_g::gate): this.
      	(gate_rest_of_compilation): Mege into
      	(rest_of_compilation::gate): this.
      	(gate_postreload): Merge into
      	(postreload::gate): this.
      	(dump_one_pass): Pass cfun to the pass's gate method.
      	(execute_ipa_summary_passes): Likewise.
      	(execute_one_pass): Likewise.
      	(ipa_write_summaries_2): Likewise.
      	(ipa_write_optimization_summaries_1): Likewise.
      	(ipa_read_summaries_1): Likewise.
      	(ipa_read_optimization_summaries_1): Likewise.
      	(execute_ipa_stmt_fixups): Likewise.
      	* tree-pass.h (opt_pass::gate): Add function * argument.
      	* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
      	combine-stack-adj.c, combine.c, compare-elim.c,
      	config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
      	config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
      	config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
      	dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
      	gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
      	graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
      	ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
      	loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
      	omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
      	reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
      	store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
      	tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
      	tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
      	tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
      	tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
      	tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
      	tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
      	tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
      	tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
      	tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
      	tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
      	tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
      	tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
      	tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
      	var-tracking.c, vtable-verify.c, web.c: Adjust.
      
      gcc/testsuite/
      	* g++.dg/plugin/dumb_plugin.c, g++.dg/plugin/selfasign.c,
      	gcc.dg/plugin/one_time_plugin.c, gcc.dg/plugin/selfasign.c: Adjust.
      
      From-SVN: r209481
      Trevor Saunders committed
    • remove has_gate · 0481253d
      gcc/
      	* passes.c (dump_one_pass): don't check pass->has_gate.
      	(execute_ipa_summary_passes): Likewise.
      	(execute_one_pass): Likewise.
      	(ipa_write_summaries_2): Likewise.
      	(ipa_write_optimization_summaries_1): Likewise.
      	(ipa_read_optimization_summaries_1): Likewise.
      	(execute_ipa_stmt_fixups): Likewise.
      	* tree-pass.h (pass_data::has_gate): Remove.
      	* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
      	cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
      	compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
      	config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
      	config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
      	config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
      	config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
      	dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
      	gimple-low.c, gimple-ssa-isolate-paths.c,
      	gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
      	ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
      	ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
      	ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
      	modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
      	recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
      	reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
      	trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
      	tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
      	tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
      	tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
      	tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
      	tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
      	tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
      	tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
      	tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
      	tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
      	tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
      	tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
      	tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
      	tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
      	tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
      	Adjust.
      
      gcc/testsuite/
      	* g++.dg/plugin/dumb_plugin.c, g++.dg/plugin/selfassign.c,
      	gcc.dg/plugin/one_time_plugin.c, gcc.dg/plugin/selfassign.c: Adjust.
      
      From-SVN: r209479
      Trevor Saunders committed
  13. 01 Apr, 2014 1 commit
  14. 04 Feb, 2014 1 commit
  15. 23 Jan, 2014 1 commit
    • re PR target/52125 (Problems with LO16 asm operands on MIPS) · f9ae4df8
      gcc/
      	PR target/52125
      	* rtl.h (get_referenced_operands): Declare.
      	* recog.c (get_referenced_operands): New function.
      	* config/mips/mips.c (mips_reorg_process_insns): Check which asm
      	operands have been referenced when recording LO_SUM references.
      
      gcc/testsuite/
      	PR target/52125
      	* gcc.dg/pr48774.c: Remove skip for mips_rel.
      	* gcc.target/mips/pr52125.c: New test.
      
      From-SVN: r206955
      Richard Sandiford committed
  16. 02 Jan, 2014 1 commit
  17. 16 Dec, 2013 1 commit
  18. 09 Dec, 2013 2 commits
    • Eliminate FOR_EACH_BB_REVERSE macro. · 4f42035e
      gcc/
      	* basic-block.h (FOR_EACH_BB_REVERSE): Eliminate macro.
      
      	* cfghooks.c (verify_flow_info): Replace uses of FOR_EACH_BB_REVERSE
      	with FOR_EACH_BB_REVERSE_FN, making uses of cfun explicit.
      	* cfgrtl.c (print_rtl_with_bb, rtl_verify_edges,
      	rtl_verify_bb_insns, rtl_verify_bb_pointers,
      	rtl_verify_bb_insn_chain, rtl_verify_fallthru): Likewise.
      	* config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
      	* config/sh/sh.c (sh_md_init_global): Likewise.
      	* config/sh/sh_optimize_sett_clrt.cc
      	(sh_optimize_sett_clrt::execute): Likewise.
      	* dce.c (reset_unmarked_insns_debug_uses, delete_unmarked_insns):
      	Likewise.
      	* dominance.c (calc_dfs_tree): Likewise.
      	* final.c (final): Likewise.
      	* function.c (thread_prologue_and_epilogue_insns): Likewise.
      	* gcse.c (compute_code_hoist_vbeinout): Likewise.
      	* ira.c (update_equiv_regs, build_insn_chain): Likewise.
      	* lcm.c (compute_antinout_edge): Likewise.
      	* mode-switching.c (optimize_mode_switching): Likewise.
      	* postreload.c (reload_combine): Likewise.
      	* recog.c (split_all_insns, peephole2_optimize): Likewise.
      	* tree-ssa-live.c (live_worklist): Likewise.
      
      From-SVN: r205829
      David Malcolm committed
    • Eliminate last_basic_block macro. · 8b1c6fd7
      	* basic-block.h (last_basic_block): Eliminate macro.
      
      	* asan.c (transform_statements): Eliminate use of last_basic_block
      	in favor of last_basic_block_for_fn, in order to make use of cfun
      	explicit.
      	* bb-reorder.c (copy_bb, reorder_basic_blocks): Likewise.
      	* bt-load.c (compute_defs_uses_and_gen, compute_kill, compute_out,
      	link_btr_uses, build_btr_def_use_webs, migrate_btr_defs): Likewise.
      	* cfg.c (compact_blocks): Likewise.
      	* cfganal.c (mark_dfs_back_edges,
      	control_dependences::control_dependences, post_order_compute,
      	pre_and_rev_post_order_compute_fn, dfs_enumerate_from, compute_idf,
      	single_pred_before_succ_order): Likewise.
      	* cfgbuild.c (make_edges): Likewise.
      	* cfgexpand.c (add_scope_conflicts, gimple_expand_cfg): Likewise.
      	* cfghooks.c (verify_flow_info): Likewise.
      	* cfgloop.c (verify_loop_structure): Likewise.
      	* cfgloopanal.c (just_once_each_iteration_p,
      	mark_irreducible_loops): Likewise.
      	* cfgloopmanip.c (fix_bb_placements, remove_path,
      	update_dominators_in_loop): Likewise.
      	* cfgrtl.c (create_basic_block_structure, rtl_create_basic_block,
      	break_superblocks, rtl_flow_call_edges_add): Likewise.
      	* config/epiphany/resolve-sw-modes.c (resolve_sw_modes): Likewise.
      	* config/frv/frv.c (frv_optimize_membar): Likewise.
      	* config/mips/mips.c (r10k_insert_cache_barriers): Likewise.
      	* config/spu/spu.c (spu_machine_dependent_reorg): Likewise.
      	* cprop.c (compute_local_properties, find_implicit_sets,
      	bypass_conditional_jumps, one_cprop_pass): Likewise.
      	* cse.c (cse_main): Likewise.
      	* df-core.c (rest_of_handle_df_initialize, df_worklist_dataflow,
      	df_analyze, df_grow_bb_info, df_compact_blocks): Likewise.
      	* df-problems.c (df_lr_verify_solution_start,
      	df_live_verify_solution_start, df_md_local_compute): Likewise.
      	* dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
      	calc_idoms): Likewise.
      	* domwalk.c (dom_walker::walk): Likewise.
      	* dse.c (dse_step0, dse_step3): Likewise.
      	* function.c (epilogue_done): Likewise.
      	* gcse.c (alloc_gcse_mem, compute_local_properties,
      	prune_insertions_deletions, compute_pre_data,
      	pre_expr_reaches_here_p, one_pre_gcse_pass,
      	compute_code_hoist_vbeinout, should_hoist_expr_to_dom, hoist_code,
      	one_code_hoisting_pass): Likewise.
      	* graph.c (draw_cfg_nodes_no_loops): Likewise.
      	* graphite-sese-to-poly.c (build_scop_bbs): Likewise.
      	* haifa-sched.c (unlink_bb_notes): Likewise.
      	* ipa-split.c (execute_split_functions): Likewise.
      	* ira-build.c (create_loop_tree_nodes,
      	remove_unnecessary_regions): Likewise.
      	* ira-emit.c (ira_emit): Likewise.
      	* ira.c (find_moveable_pseudos, ira): Likewise.
      	* lcm.c (compute_antinout_edge, compute_laterin,
      	compute_insert_delete, pre_edge_lcm, compute_available,
      	compute_nearerout, compute_rev_insert_delete,
      	pre_edge_rev_lcm): Likewise.
      	* loop-unroll.c (opt_info_start_duplication,
      	apply_opt_in_copies): Likewise.
      	* lower-subreg.c (decompose_multiword_subregs): Likewise.
      	* lra-lives.c (lra_create_live_ranges): Likewise.
      	* lra.c (lra): Likewise.
      	* mode-switching.c (optimize_mode_switching): Likewise.
      	* recog.c (split_all_insns): Likewise.
      	* regcprop.c (copyprop_hardreg_forward): Likewise.
      	* regrename.c (regrename_analyze): Likewise.
      	* reload1.c (reload): Likewise.
      	* resource.c (init_resource_info): Likewise.
      	* sched-rgn.c (haifa_find_rgns, extend_rgns, compute_trg_info,
      	realloc_bb_state_array, schedule_region, extend_regions): Likewise.
      	* sel-sched-ir.c (sel_extend_global_bb_info, extend_region_bb_info,
      	recompute_rev_top_order, sel_init_pipelining,
      	make_regions_from_the_rest): Likewise.
      	* store-motion.c (remove_reachable_equiv_notes,build_store_vectors)
      	Likewise.
      	* tracer.c (tail_duplicate): Likewise.
      	* trans-mem.c (tm_region_init, get_bb_regions_instrumented): Likewise.
      	* tree-cfg.c (create_bb, cleanup_dead_labels, gimple_dump_cfg,
      	gimple_flow_call_edges_add): Likewise.
      	* tree-cfgcleanup.c (split_bbs_on_noreturn_calls,
      	cleanup_tree_cfg_1): Likewise.
      	* tree-complex.c (tree_lower_complex): Likewise.
      	* tree-inline.c (copy_cfg_body): Likewise.
      	* tree-into-ssa.c (mark_phi_for_rewrite, rewrite_into_ssa,
      	prepare_def_site_for, update_ssa): Likewise.
      	* tree-ssa-dce.c (tree_dce_init, perform_tree_ssa_dce): Likewise.
      	* tree-ssa-dom.c (record_edge_info): Likewise.
      	* tree-ssa-live.c (new_tree_live_info, live_worklist): Likewise.
      	* tree-ssa-loop-im.c (fill_always_executed_in_1): Likewise.
      	* tree-ssa-loop-manip.c (copy_phi_node_args
      	gimple_duplicate_loop_to_header_edge): Likewise.
      	* tree-ssa-pre.c (compute_antic): Likewise.
      	* tree-ssa-propagate.c (ssa_prop_init): Likewise.
      	* tree-ssa-reassoc.c (init_reassoc): Likewise.
      	* tree-ssa-sccvn.c (init_scc_vn): Likewise.
      	* tree-ssa-tail-merge.c (init_worklist): Likewise.
      	* tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
      	* tree-stdarg.c (reachable_at_most_once): Likewise.
      	* tree-vrp.c (find_assert_locations): Likewise.
      	* var-tracking.c (vt_find_locations): Likewise.
      
      From-SVN: r205826
      David Malcolm committed
  19. 29 Nov, 2013 1 commit
  20. 20 Nov, 2013 1 commit
  21. 02 Nov, 2013 1 commit
    • gcse.c (pre_delete): Remove references to regmove from comments. · 337405fd
      	* gcse.c (pre_delete): Remove references to regmove from comments.
      	* recog.c: (validate_replace_rtx_1): Likewise.
      	* config/rl78/rl78.c: Likewise.
      	* config/v850/v850.h: Likewise, and remove unused ENABLE_REGMOVE_PASS.
      	* common/config/m32r/m32r-common.c: Don't manipulate OPT_fregmove.
      	* common/config/mmix/mmix-common.c: Likewise.
      
      From-SVN: r204309
      Steven Bosscher committed
  22. 25 Oct, 2013 1 commit
  23. 21 Oct, 2013 1 commit
    • Re-factor inclusion of tree.h. · 4d648807
      This moves tree.h out of every header. This exposes dependencies of
      tree.h in files that should probably not need it after tree and gimple
      are separated.
      
      After this change, no header should include tree.h directly. It should
      only be included by a .c file. Unfortunately, I did not find an
      automatic way of forcing this.
      
      Tested on x86_64 with all languages enabled and using
      contrib/config-list.mk.
      
      2013-10-21  Diego Novillo  <dnovillo@google.com>
      
      	* asan.c: Include tree.h
      	* bb-reorder.c: Likewise.
      	* cfgcleanup.c: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* data-streamer-in.c: Likewise.
      	* data-streamer-out.c: Likewise.
      	* data-streamer.c: Likewise.
      	* dwarf2cfi.c: Likewise.
      	* graphite-blocking.c: Likewise.
      	* graphite-clast-to-gimple.c: Likewise.
      	* graphite-dependences.c: Likewise.
      	* graphite-interchange.c: Likewise.
      	* graphite-optimize-isl.c: Likewise.
      	* graphite-poly.c: Likewise.
      	* graphite-scop-detection.c: Likewise.
      	* graphite-sese-to-poly.c: Likewise.
      	* graphite.c: Likewise.
      	* ipa-devirt.c: Likewise.
      	* ipa-profile.c: Likewise.
      	* ipa.c: Likewise.
      	* ira.c: Likewise.
      	* loop-init.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* lower-subreg.c: Likewise.
      	* lto/lto-object.c: Likewise.
      	* recog.c: Likewise.
      	* reginfo.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-ssa-strlen.c: Likewise.
      	* tree-streamer.c: Likewise.
      	* value-prof.c: Likewise.
      	* target-globals.c: Likewise.
      	* expr.h: Include tree-core.h instead of tree.h.
      	* gimple.h: Likewise.
      	* ipa-prop.h: Likewise.
      	* ipa-utils.h: Likewise.
      	* lto-streamer.h: Likewise.
      	* streamer-hooks.h: Likewise.
      	* ipa-reference.h: Include cgraph.h instead of tree.h.
      	* cgraph.h: Include basic-block.h instead of tree.h.
      	* tree-streamer.h: Do not include tree.h.
      	* genattrtab.c (write_header): Generate inclusion of
      	tree.h.
      	* genautomata.c (main): Likewise.
      	* genemit.c: Likewise.
      	* genopinit.c: Likewise.
      	* genoutput.c (output_prologue): Likewise.
      	* genpeep.c: Likewise.
      
      testsuite/ChangeLog
      
      	* g++.dg/plugin/selfassign.c: Include tree.h.
      	* gcc.dg/plugin/finish_unit_plugin.c: Likewise.
      	* gcc.dg/plugin/ggcplug.c: Likewise.
      	* gcc.dg/plugin/one_time_plugin.c: Likewise.
      	* gcc.dg/plugin/selfassign.c: Likewise.
      	* gcc.dg/plugin/start_unit_plugin.c: Likewise.
      
      From-SVN: r203908
      Diego Novillo committed
  24. 30 Sep, 2013 1 commit
    • basic-block.h (edge_list): Prefix member names with "m_". · 65d3284b
      gcc/
      	* basic-block.h (edge_list): Prefix member names with "m_".
      	* context.h (context): Likewise.
      	* domwalk.h (dom_walker): Likewise.
      	* gengtype-state.c (s_expr_writer, state_writer): Likewise.
      	* graphite-sese-to-poly.c (sese_dom_walker): Likewise.
      	* hash-table.h (hash_table): Likewise.
      	* machmode.h (bit_field_mode_iterator): Likewise.
      	* pass_manager.h (pass_list): Likewise.
      	* tree-into-ssa.c (mark_def_dom_walker): Likewise.
      	* tree-pass.h (pass_data): Likewise.
      	* tree-ssa-dom.c (dom_opt_dom_walker): Likewise.
      	* tree-ssa-phiopt.c (nontrapping_dom_walker): Likewise,
      	* tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
      	* asan.c (pass_data_asan): Update accordingly.
      	* cfganal.c (control_dependences::find_control_dependence): Likewise.
      	(control_dependences::control_dependences): Likewise.
      	(control_dependences::~control_dependences): Likewise.
      	(control_dependences::~control_dependences): Likewise.
      	(control_dependences::get_edges_dependent_on): Likewise.
      	* cgraphbuild.c (pass_data_rebuild_cgraph_edges::clone): Likewise.
      	(pass_data_remove_cgraph_callee_edges::clone): Likewise.
      	* context.c (gcc::context::context): Likewise.
      	* cprop.c (pass_rtl_cprop::clone): Likewise.
      	* domwalk.c (dom_walker::walk): Likewise.
      	* ipa-inline-analysis.c (pass_inline_parameters::clone): Likewise.
      	* ipa-pure-const.c (pass_local_pure_const::clone): Likewise.
      	* mode-switching.c (pass_mode_switching::clone): Likewise.
      	* passes.c (opt_pass::opt_pass): Likewise.
      	(pass_manager::pass_manager): Likewise.
      	* predict.c (pass_strip_predict_hints::clone): Likewise.
      	* recog.c (pass_data pass_data_peephole2::clone): Likewise.
      	(pass_split_all_insns::clone): Likewise.
      	* stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
      	Likewise.
      	(bit_field_mode_iterator::next_mode): Likewise.
      	(bit_field_mode_iterator::prefer_smaller_modes): Likewise.
      	* tree-cfg.c (pass_split_crit_edges::clone): Likewise.
      	* tree-cfgcleanup.c (pass_merge_phi::clone): Likewise.
      	* tree-complex.c (pass_lower_complex::clone): Likewise.
      	* tree-eh.c (pass_cleanup_eh::clone): Likewise.
      	* tree-object-size.c (pass_object_sizes::clone): Likewise.
      	* tree-optimize.c (pass_fixup_cfg::clone): Likewise.
      	* tree-ssa-ccp.c (pass_data_ccp::clone): Likewise.
      	(pass_fold_builtins::clone): Likewise.
      	* tree-ssa-copy.c (pass_data_copy_prop::clone): Likewise.
      	* tree-ssa-copyrename.c (pass_rename_ssa_copies::clone): Likewise.
      	* tree-ssa-dce.c (pass_dce::clone, pass_dce_loop::clone): Likewise.
      	(pass_cd_dce::clone): Likewise.
      	* tree-ssa-dom.c (pass_dominator::clone): Likewise.
      	(pass_phi_only_cprop::clone): Likewise.
      	* tree-ssa-dse.c (pass_dse::clone): Likewise.
      	* tree-ssa-forwprop.c (pass_forwprop::clone): Likewise.
      	* tree-ssa-loop.c (pass_lim::clone): Likewise.
      	* tree-ssa-phiopt.c (pass_phiopt::clone): Likewise.
      	* tree-ssa-pre.c (pass_fre::clone): Likewise.
      	* tree-ssa-reassoc.c (pass_reassoc::clone): Likewise.
      	* tree-ssa-uninit.c (pass_late_warn_uninitialized::clone): Likewise.
      	* tree-tailcall.c (pass_tail_recursion::clone): Likewise.
      	* tree-vect-generic.c (pass_lower_vector_ssa::clone): Likewise.
      	* tree-vrp.c (pass_vrp::clone): Likewise.
      	* tsan.c (pass_tsan::clone): Likewise.
      
      From-SVN: r203046
      Richard Sandiford committed
  25. 28 Sep, 2013 1 commit
    • alloc-pool.c, [...]: Add missing whitespace before "(". · c3284718
      gcc/
      	* alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
      	bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
      	cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
      	cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
      	combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
      	cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
      	df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
      	dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
      	errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
      	fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
      	gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
      	genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
      	genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
      	genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
      	gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
      	gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
      	gimple.h, godump.c, graphite-clast-to-gimple.c,
      	graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
      	graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
      	hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
      	ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
      	ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
      	ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
      	loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
      	lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
      	mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
      	pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
      	predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
      	profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
      	regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
      	reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
      	sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
      	statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
      	system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
      	tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
      	tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
      	tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
      	tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
      	tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
      	tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
      	tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
      	tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
      	tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
      	tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
      	tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
      	tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
      	tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
      	tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
      	tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
      	tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
      	tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
      	tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
      	tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
      	tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
      	varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
      	whitespace before "(".
      
      From-SVN: r203004
      Richard Sandiford committed
  26. 30 Aug, 2013 1 commit
  27. 07 Aug, 2013 1 commit
    • coretypes.h (rtl_opt_pass): Add. · 05555c4a
      2013-08-07  David Malcolm  <dmalcolm@redhat.com>
      
      	* coretypes.h (rtl_opt_pass): Add.
      	(gcc::context): Add.
      	* config/epiphany/epiphany.c (pass_mode_switch_use): New.
      	(epiphany_init): Port to new C++ pass API.
      	(epiphany_optimize_mode_switching): Likewise.
      	* pass_manager.h (pass_manager::get_pass_split_all_insns): New.
      	(pass_manager::get_pass_mode_switching): New.
      	(pass_manager::get_pass_peephole2): New.
      	* mode-switching.c (pass_mode_switching): Add clone method.
      	* recog.c (pass_peephole2): Add clone method.
      	(pass_split_all_insns): Add clone method.
      
      From-SVN: r201549
      David Malcolm committed
  28. 05 Aug, 2013 1 commit
    • Automated conversion of passes to C++ classes · 27a4cd48
      gcc/
      
      	Patch autogenerated by refactor_passes.py from
      	https://github.com/davidmalcolm/gcc-refactoring-scripts
      	revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
      
      	* asan.c (pass_asan): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_asan): ...new pass_data instance and...
      	(make_pass_asan): ...new function.
      	(pass_asan_O0): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_asan_O0): ...new pass_data instance and...
      	(make_pass_asan_O0): ...new function.
      	* auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_inc_dec): ...new pass_data instance and...
      	(make_pass_inc_dec): ...new function.
      	* bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
      	a subclass of rtl_opt_pass along with...
      	(pass_data_reorder_blocks): ...new pass_data instance and...
      	(make_pass_reorder_blocks): ...new function.
      	(pass_duplicate_computed_gotos): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_duplicate_computed_gotos): ...new pass_data instance and...
      	(make_pass_duplicate_computed_gotos): ...new function.
      	(pass_partition_blocks): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_partition_blocks): ...new pass_data instance and...
      	(make_pass_partition_blocks): ...new function.
      	* bt-load.c (pass_branch_target_load_optimize1): Convert from a global
      	struct to a subclass of rtl_opt_pass along with...
      	(pass_data_branch_target_load_optimize1): ...new pass_data instance
      	and...
      	(make_pass_branch_target_load_optimize1): ...new function.
      	(pass_branch_target_load_optimize2): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_branch_target_load_optimize2): ...new pass_data instance
      	and...
      	(make_pass_branch_target_load_optimize2): ...new function.
      	* cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_jump): ...new pass_data instance and...
      	(make_pass_jump): ...new function.
      	(pass_jump2): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_jump2): ...new pass_data instance and...
      	(make_pass_jump2): ...new function.
      	* cfgexpand.c (pass_expand): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_expand): ...new pass_data instance and...
      	(make_pass_expand): ...new function.
      	* cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_free_cfg): ...new pass_data instance and...
      	(make_pass_free_cfg): ...new function.
      	(pass_into_cfg_layout_mode): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_into_cfg_layout_mode): ...new pass_data instance and...
      	(make_pass_into_cfg_layout_mode): ...new function.
      	(pass_outof_cfg_layout_mode): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
      	(make_pass_outof_cfg_layout_mode): ...new function.
      	* cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
      	struct to a subclass of gimple_opt_pass along with...
      	(pass_data_build_cgraph_edges): ...new pass_data instance and...
      	(make_pass_build_cgraph_edges): ...new function.
      	(pass_rebuild_cgraph_edges): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
      	(make_pass_rebuild_cgraph_edges): ...new function.
      	(pass_remove_cgraph_callee_edges): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_remove_cgraph_callee_edges): ...new pass_data instance
      	and...
      	(make_pass_remove_cgraph_callee_edges): ...new function.
      	* combine-stack-adj.c (pass_stack_adjustments): Convert from a global
      	struct to a subclass of rtl_opt_pass along with...
      	(pass_data_stack_adjustments): ...new pass_data instance and...
      	(make_pass_stack_adjustments): ...new function.
      	* combine.c (pass_combine): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_combine): ...new pass_data instance and...
      	(make_pass_combine): ...new function.
      	* compare-elim.c (pass_compare_elim_after_reload): Convert from a
      	global struct to a subclass of rtl_opt_pass along with...
      	(pass_data_compare_elim_after_reload): ...new pass_data instance
      	and...
      	(make_pass_compare_elim_after_reload): ...new function.
      	* cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_rtl_cprop): ...new pass_data instance and...
      	(make_pass_rtl_cprop): ...new function.
      	* cse.c (pass_cse): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_cse): ...new pass_data instance and...
      	(make_pass_cse): ...new function.
      	(pass_cse2): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_cse2): ...new pass_data instance and...
      	(make_pass_cse2): ...new function.
      	(pass_cse_after_global_opts): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_cse_after_global_opts): ...new pass_data instance and...
      	(make_pass_cse_after_global_opts): ...new function.
      	* dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_ud_rtl_dce): ...new pass_data instance and...
      	(make_pass_ud_rtl_dce): ...new function.
      	(pass_fast_rtl_dce): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_fast_rtl_dce): ...new pass_data instance and...
      	(make_pass_fast_rtl_dce): ...new function.
      	* df-core.c (pass_df_initialize_opt): Convert from a global struct to
      	a subclass of rtl_opt_pass along with...
      	(pass_data_df_initialize_opt): ...new pass_data instance and...
      	(make_pass_df_initialize_opt): ...new function.
      	(pass_df_initialize_no_opt): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_df_initialize_no_opt): ...new pass_data instance and...
      	(make_pass_df_initialize_no_opt): ...new function.
      	(pass_df_finish): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_df_finish): ...new pass_data instance and...
      	(make_pass_df_finish): ...new function.
      	* dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_rtl_dse1): ...new pass_data instance and...
      	(make_pass_rtl_dse1): ...new function.
      	(pass_rtl_dse2): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_rtl_dse2): ...new pass_data instance and...
      	(make_pass_rtl_dse2): ...new function.
      	* dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_dwarf2_frame): ...new pass_data instance and...
      	(make_pass_dwarf2_frame): ...new function.
      	* except.c (pass_set_nothrow_function_flags): Convert from a global
      	struct to a subclass of rtl_opt_pass along with...
      	(pass_data_set_nothrow_function_flags): ...new pass_data instance
      	and...
      	(make_pass_set_nothrow_function_flags): ...new function.
      	(pass_convert_to_eh_region_ranges): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_convert_to_eh_region_ranges): ...new pass_data instance
      	and...
      	(make_pass_convert_to_eh_region_ranges): ...new function.
      	* final.c (pass_compute_alignments): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_compute_alignments): ...new pass_data instance and...
      	(make_pass_compute_alignments): ...new function.
      	(pass_final): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_final): ...new pass_data instance and...
      	(make_pass_final): ...new function.
      	(pass_shorten_branches): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_shorten_branches): ...new pass_data instance and...
      	(make_pass_shorten_branches): ...new function.
      	(pass_clean_state): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_clean_state): ...new pass_data instance and...
      	(make_pass_clean_state): ...new function.
      	* function.c (pass_instantiate_virtual_regs): Convert from a global
      	struct to a subclass of rtl_opt_pass along with...
      	(pass_data_instantiate_virtual_regs): ...new pass_data instance and...
      	(make_pass_instantiate_virtual_regs): ...new function.
      	(pass_leaf_regs): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_leaf_regs): ...new pass_data instance and...
      	(make_pass_leaf_regs): ...new function.
      	(pass_thread_prologue_and_epilogue): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_thread_prologue_and_epilogue): ...new pass_data instance
      	and...
      	(make_pass_thread_prologue_and_epilogue): ...new function.
      	(pass_match_asm_constraints): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_match_asm_constraints): ...new pass_data instance and...
      	(make_pass_match_asm_constraints): ...new function.
      	* fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_rtl_fwprop): ...new pass_data instance and...
      	(make_pass_rtl_fwprop): ...new function.
      	(pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_rtl_fwprop_addr): ...new pass_data instance and...
      	(make_pass_rtl_fwprop_addr): ...new function.
      	* gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_rtl_pre): ...new pass_data instance and...
      	(make_pass_rtl_pre): ...new function.
      	(pass_rtl_hoist): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_rtl_hoist): ...new pass_data instance and...
      	(make_pass_rtl_hoist): ...new function.
      	* gimple-low.c (pass_lower_cf): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_lower_cf): ...new pass_data instance and...
      	(make_pass_lower_cf): ...new function.
      	* gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
      	from a global struct to a subclass of gimple_opt_pass along with...
      	(pass_data_strength_reduction): ...new pass_data instance and...
      	(make_pass_strength_reduction): ...new function.
      	* ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_rtl_ifcvt): ...new pass_data instance and...
      	(make_pass_rtl_ifcvt): ...new function.
      	(pass_if_after_combine): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_if_after_combine): ...new pass_data instance and...
      	(make_pass_if_after_combine): ...new function.
      	(pass_if_after_reload): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_if_after_reload): ...new pass_data instance and...
      	(make_pass_if_after_reload): ...new function.
      	* init-regs.c (pass_initialize_regs): Convert from a global struct to
      	a subclass of rtl_opt_pass along with...
      	(pass_data_initialize_regs): ...new pass_data instance and...
      	(make_pass_initialize_regs): ...new function.
      	* ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
      	of ipa_opt_pass_d along with...
      	(pass_data_ipa_cp): ...new pass_data instance and...
      	(make_pass_ipa_cp): ...new function.
      	* ipa-inline-analysis.c (pass_inline_parameters): Convert from a
      	global struct to a subclass of gimple_opt_pass along with...
      	(pass_data_inline_parameters): ...new pass_data instance and...
      	(make_pass_inline_parameters): ...new function.
      	* ipa-inline.c (pass_early_inline): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_early_inline): ...new pass_data instance and...
      	(make_pass_early_inline): ...new function.
      	(pass_ipa_inline): Convert from a global struct to a subclass of
      	ipa_opt_pass_d along with...
      	(pass_data_ipa_inline): ...new pass_data instance and...
      	(make_pass_ipa_inline): ...new function.
      	* ipa-pure-const.c (pass_local_pure_const): Convert from a global
      	struct to a subclass of gimple_opt_pass along with...
      	(pass_data_local_pure_const): ...new pass_data instance and...
      	(make_pass_local_pure_const): ...new function.
      	(pass_ipa_pure_const): Convert from a global struct to a subclass of
      	ipa_opt_pass_d along with...
      	(pass_data_ipa_pure_const): ...new pass_data instance and...
      	(make_pass_ipa_pure_const): ...new function.
      	* ipa-reference.c (pass_ipa_reference): Convert from a global struct
      	to a subclass of ipa_opt_pass_d along with...
      	(pass_data_ipa_reference): ...new pass_data instance and...
      	(make_pass_ipa_reference): ...new function.
      	* ipa-split.c (pass_split_functions): Convert from a global struct to
      	a subclass of gimple_opt_pass along with...
      	(pass_data_split_functions): ...new pass_data instance and...
      	(make_pass_split_functions): ...new function.
      	(pass_feedback_split_functions): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_feedback_split_functions): ...new pass_data instance and...
      	(make_pass_feedback_split_functions): ...new function.
      	* ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
      	global struct to a subclass of simple_ipa_opt_pass along with...
      	(pass_data_ipa_function_and_variable_visibility): ...new pass_data
      	instance and...
      	(make_pass_ipa_function_and_variable_visibility): ...new function.
      	(pass_ipa_free_inline_summary): Convert from a global struct to a
      	subclass of simple_ipa_opt_pass along with...
      	(pass_data_ipa_free_inline_summary): ...new pass_data instance and...
      	(make_pass_ipa_free_inline_summary): ...new function.
      	(pass_ipa_whole_program_visibility): Convert from a global struct to a
      	subclass of ipa_opt_pass_d along with...
      	(pass_data_ipa_whole_program_visibility): ...new pass_data instance
      	and...
      	(make_pass_ipa_whole_program_visibility): ...new function.
      	(pass_ipa_profile): Convert from a global struct to a subclass of
      	ipa_opt_pass_d along with...
      	(pass_data_ipa_profile): ...new pass_data instance and...
      	(make_pass_ipa_profile): ...new function.
      	(pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
      	ipa_opt_pass_d along with...
      	(pass_data_ipa_cdtor_merge): ...new pass_data instance and...
      	(make_pass_ipa_cdtor_merge): ...new function.
      	* ira.c (pass_ira): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_ira): ...new pass_data instance and...
      	(make_pass_ira): ...new function.
      	(pass_reload): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_reload): ...new pass_data instance and...
      	(make_pass_reload): ...new function.
      	* jump.c (pass_cleanup_barriers): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_cleanup_barriers): ...new pass_data instance and...
      	(make_pass_cleanup_barriers): ...new function.
      	* loop-init.c (pass_loop2): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_loop2): ...new pass_data instance and...
      	(make_pass_loop2): ...new function.
      	(pass_rtl_loop_init): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_rtl_loop_init): ...new pass_data instance and...
      	(make_pass_rtl_loop_init): ...new function.
      	(pass_rtl_loop_done): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_rtl_loop_done): ...new pass_data instance and...
      	(make_pass_rtl_loop_done): ...new function.
      	(pass_rtl_move_loop_invariants): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
      	(make_pass_rtl_move_loop_invariants): ...new function.
      	(pass_rtl_unswitch): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_rtl_unswitch): ...new pass_data instance and...
      	(make_pass_rtl_unswitch): ...new function.
      	(pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
      	and...
      	(make_pass_rtl_unroll_and_peel_loops): ...new function.
      	(pass_rtl_doloop): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_rtl_doloop): ...new pass_data instance and...
      	(make_pass_rtl_doloop): ...new function.
      	* lower-subreg.c (pass_lower_subreg): Convert from a global struct to
      	a subclass of rtl_opt_pass along with...
      	(pass_data_lower_subreg): ...new pass_data instance and...
      	(make_pass_lower_subreg): ...new function.
      	(pass_lower_subreg2): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_lower_subreg2): ...new pass_data instance and...
      	(make_pass_lower_subreg2): ...new function.
      	* lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
      	struct to a subclass of ipa_opt_pass_d along with...
      	(pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
      	(make_pass_ipa_lto_gimple_out): ...new function.
      	(pass_ipa_lto_finish_out): Convert from a global struct to a subclass
      	of ipa_opt_pass_d along with...
      	(pass_data_ipa_lto_finish_out): ...new pass_data instance and...
      	(make_pass_ipa_lto_finish_out): ...new function.
      	* mode-switching.c (pass_mode_switching): Convert from a global struct
      	to a subclass of rtl_opt_pass along with...
      	(pass_data_mode_switching): ...new pass_data instance and...
      	(make_pass_mode_switching): ...new function.
      	* modulo-sched.c (pass_sms): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_sms): ...new pass_data instance and...
      	(make_pass_sms): ...new function.
      	* omp-low.c (pass_expand_omp): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_expand_omp): ...new pass_data instance and...
      	(make_pass_expand_omp): ...new function.
      	(pass_lower_omp): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_lower_omp): ...new pass_data instance and...
      	(make_pass_lower_omp): ...new function.
      	(pass_diagnose_omp_blocks): Convert from a global struct to a subclass
      	of gimple_opt_pass along with...
      	(pass_data_diagnose_omp_blocks): ...new pass_data instance and...
      	(make_pass_diagnose_omp_blocks): ...new function.
      	* passes.c (pass_early_local_passes): Convert from a global struct to
      	a subclass of simple_ipa_opt_pass along with...
      	(pass_data_early_local_passes): ...new pass_data instance and...
      	(make_pass_early_local_passes): ...new function.
      	(pass_all_early_optimizations): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_all_early_optimizations): ...new pass_data instance and...
      	(make_pass_all_early_optimizations): ...new function.
      	(pass_all_optimizations): Convert from a global struct to a subclass
      	of gimple_opt_pass along with...
      	(pass_data_all_optimizations): ...new pass_data instance and...
      	(make_pass_all_optimizations): ...new function.
      	(pass_all_optimizations_g): Convert from a global struct to a subclass
      	of gimple_opt_pass along with...
      	(pass_data_all_optimizations_g): ...new pass_data instance and...
      	(make_pass_all_optimizations_g): ...new function.
      	(pass_rest_of_compilation): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_rest_of_compilation): ...new pass_data instance and...
      	(make_pass_rest_of_compilation): ...new function.
      	(pass_postreload): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_postreload): ...new pass_data instance and...
      	(make_pass_postreload): ...new function.
      	* postreload-gcse.c (pass_gcse2): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_gcse2): ...new pass_data instance and...
      	(make_pass_gcse2): ...new function.
      	* postreload.c (pass_postreload_cse): Convert from a global struct to
      	a subclass of rtl_opt_pass along with...
      	(pass_data_postreload_cse): ...new pass_data instance and...
      	(make_pass_postreload_cse): ...new function.
      	* predict.c (pass_profile): Convert from a global struct to a subclass
      	of gimple_opt_pass along with...
      	(pass_data_profile): ...new pass_data instance and...
      	(make_pass_profile): ...new function.
      	(pass_strip_predict_hints): Convert from a global struct to a subclass
      	of gimple_opt_pass along with...
      	(pass_data_strip_predict_hints): ...new pass_data instance and...
      	(make_pass_strip_predict_hints): ...new function.
      	* recog.c (pass_peephole2): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_peephole2): ...new pass_data instance and...
      	(make_pass_peephole2): ...new function.
      	(pass_split_all_insns): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_split_all_insns): ...new pass_data instance and...
      	(make_pass_split_all_insns): ...new function.
      	(pass_split_after_reload): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_split_after_reload): ...new pass_data instance and...
      	(make_pass_split_after_reload): ...new function.
      	(pass_split_before_regstack): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_split_before_regstack): ...new pass_data instance and...
      	(make_pass_split_before_regstack): ...new function.
      	(pass_split_before_sched2): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_split_before_sched2): ...new pass_data instance and...
      	(make_pass_split_before_sched2): ...new function.
      	(pass_split_for_shorten_branches): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_split_for_shorten_branches): ...new pass_data instance
      	and...
      	(make_pass_split_for_shorten_branches): ...new function.
      	* ree.c (pass_ree): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_ree): ...new pass_data instance and...
      	(make_pass_ree): ...new function.
      	* reg-stack.c (pass_stack_regs): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_stack_regs): ...new pass_data instance and...
      	(make_pass_stack_regs): ...new function.
      	(pass_stack_regs_run): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_stack_regs_run): ...new pass_data instance and...
      	(make_pass_stack_regs_run): ...new function.
      	* regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_cprop_hardreg): ...new pass_data instance and...
      	(make_pass_cprop_hardreg): ...new function.
      	* reginfo.c (pass_reginfo_init): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_reginfo_init): ...new pass_data instance and...
      	(make_pass_reginfo_init): ...new function.
      	* regmove.c (pass_regmove): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_regmove): ...new pass_data instance and...
      	(make_pass_regmove): ...new function.
      	* regrename.c (pass_regrename): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_regrename): ...new pass_data instance and...
      	(make_pass_regrename): ...new function.
      	* reorg.c (pass_delay_slots): Convert from a global struct to a
      	subclass of rtl_opt_pass along with...
      	(pass_data_delay_slots): ...new pass_data instance and...
      	(make_pass_delay_slots): ...new function.
      	(pass_machine_reorg): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_machine_reorg): ...new pass_data instance and...
      	(make_pass_machine_reorg): ...new function.
      	* sched-rgn.c (pass_sched): Convert from a global struct to a subclass
      	of rtl_opt_pass along with...
      	(pass_data_sched): ...new pass_data instance and...
      	(make_pass_sched): ...new function.
      	(pass_sched2): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_sched2): ...new pass_data instance and...
      	(make_pass_sched2): ...new function.
      	* stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
      	to a subclass of rtl_opt_pass along with...
      	(pass_data_stack_ptr_mod): ...new pass_data instance and...
      	(make_pass_stack_ptr_mod): ...new function.
      	* store-motion.c (pass_rtl_store_motion): Convert from a global struct
      	to a subclass of rtl_opt_pass along with...
      	(pass_data_rtl_store_motion): ...new pass_data instance and...
      	(make_pass_rtl_store_motion): ...new function.
      	* tracer.c (pass_tracer): Convert from a global struct to a subclass
      	of gimple_opt_pass along with...
      	(pass_data_tracer): ...new pass_data instance and...
      	(make_pass_tracer): ...new function.
      	* trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
      	to a subclass of gimple_opt_pass along with...
      	(pass_data_diagnose_tm_blocks): ...new pass_data instance and...
      	(make_pass_diagnose_tm_blocks): ...new function.
      	(pass_lower_tm): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_lower_tm): ...new pass_data instance and...
      	(make_pass_lower_tm): ...new function.
      	(pass_tm_init): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_tm_init): ...new pass_data instance and...
      	(make_pass_tm_init): ...new function.
      	(pass_tm_mark): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_tm_mark): ...new pass_data instance and...
      	(make_pass_tm_mark): ...new function.
      	(pass_tm_edges): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_tm_edges): ...new pass_data instance and...
      	(make_pass_tm_edges): ...new function.
      	(pass_tm_memopt): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_tm_memopt): ...new pass_data instance and...
      	(make_pass_tm_memopt): ...new function.
      	(pass_ipa_tm): Convert from a global struct to a subclass of
      	simple_ipa_opt_pass along with...
      	(pass_data_ipa_tm): ...new pass_data instance and...
      	(make_pass_ipa_tm): ...new function.
      	* tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_call_cdce): ...new pass_data instance and...
      	(make_pass_call_cdce): ...new function.
      	* tree-cfg.c (pass_build_cfg): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_build_cfg): ...new pass_data instance and...
      	(make_pass_build_cfg): ...new function.
      	(pass_split_crit_edges): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_split_crit_edges): ...new pass_data instance and...
      	(make_pass_split_crit_edges): ...new function.
      	(pass_warn_function_return): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_warn_function_return): ...new pass_data instance and...
      	(make_pass_warn_function_return): ...new function.
      	(pass_warn_function_noreturn): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_warn_function_noreturn): ...new pass_data instance and...
      	(make_pass_warn_function_noreturn): ...new function.
      	(pass_warn_unused_result): Convert from a global struct to a subclass
      	of gimple_opt_pass along with...
      	(pass_data_warn_unused_result): ...new pass_data instance and...
      	(make_pass_warn_unused_result): ...new function.
      	* tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
      	a subclass of gimple_opt_pass along with...
      	(pass_data_merge_phi): ...new pass_data instance and...
      	(make_pass_merge_phi): ...new function.
      	* tree-complex.c (pass_lower_complex): Convert from a global struct to
      	a subclass of gimple_opt_pass along with...
      	(pass_data_lower_complex): ...new pass_data instance and...
      	(make_pass_lower_complex): ...new function.
      	(pass_lower_complex_O0): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_lower_complex_O0): ...new pass_data instance and...
      	(make_pass_lower_complex_O0): ...new function.
      	* tree-eh.c (pass_lower_eh): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_lower_eh): ...new pass_data instance and...
      	(make_pass_lower_eh): ...new function.
      	(pass_refactor_eh): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_refactor_eh): ...new pass_data instance and...
      	(make_pass_refactor_eh): ...new function.
      	(pass_lower_resx): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_lower_resx): ...new pass_data instance and...
      	(make_pass_lower_resx): ...new function.
      	(pass_lower_eh_dispatch): Convert from a global struct to a subclass
      	of gimple_opt_pass along with...
      	(pass_data_lower_eh_dispatch): ...new pass_data instance and...
      	(make_pass_lower_eh_dispatch): ...new function.
      	(pass_cleanup_eh): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_cleanup_eh): ...new pass_data instance and...
      	(make_pass_cleanup_eh): ...new function.
      	* tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
      	to a subclass of simple_ipa_opt_pass along with...
      	(pass_data_ipa_lower_emutls): ...new pass_data instance and...
      	(make_pass_ipa_lower_emutls): ...new function.
      	* tree-if-conv.c (pass_if_conversion): Convert from a global struct to
      	a subclass of gimple_opt_pass along with...
      	(pass_data_if_conversion): ...new pass_data instance and...
      	(make_pass_if_conversion): ...new function.
      	* tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_build_ssa): ...new pass_data instance and...
      	(make_pass_build_ssa): ...new function.
      	* tree-loop-distribution.c (pass_loop_distribution): Convert from a
      	global struct to a subclass of gimple_opt_pass along with...
      	(pass_data_loop_distribution): ...new pass_data instance and...
      	(make_pass_loop_distribution): ...new function.
      	* tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_mudflap_1): ...new pass_data instance and...
      	(make_pass_mudflap_1): ...new function.
      	(pass_mudflap_2): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_mudflap_2): ...new pass_data instance and...
      	(make_pass_mudflap_2): ...new function.
      	* tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_mudflap_1): ...new pass_data instance and...
      	(make_pass_mudflap_1): ...new function.
      	(pass_mudflap_2): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_mudflap_2): ...new pass_data instance and...
      	(make_pass_mudflap_2): ...new function.
      	* tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_nrv): ...new pass_data instance and...
      	(make_pass_nrv): ...new function.
      	(pass_return_slot): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_return_slot): ...new pass_data instance and...
      	(make_pass_return_slot): ...new function.
      	* tree-object-size.c (pass_object_sizes): Convert from a global struct
      	to a subclass of gimple_opt_pass along with...
      	(pass_data_object_sizes): ...new pass_data instance and...
      	(make_pass_object_sizes): ...new function.
      	* tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
      	global struct to a subclass of gimple_opt_pass along with...
      	(pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
      	and...
      	(make_pass_cleanup_cfg_post_optimizing): ...new function.
      	(pass_fixup_cfg): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_fixup_cfg): ...new pass_data instance and...
      	(make_pass_fixup_cfg): ...new function.
      	* tree-pass.h (pass_mudflap_1): Replace declaration with that of...
      	(make_pass_mudflap_1): ...new function.
      	(pass_mudflap_2): Replace declaration with that of...
      	(make_pass_mudflap_2): ...new function.
      	(pass_asan): Replace declaration with that of...
      	(make_pass_asan): ...new function.
      	(pass_asan_O0): Replace declaration with that of...
      	(make_pass_asan_O0): ...new function.
      	(pass_tsan): Replace declaration with that of...
      	(make_pass_tsan): ...new function.
      	(pass_tsan_O0): Replace declaration with that of...
      	(make_pass_tsan_O0): ...new function.
      	(pass_lower_cf): Replace declaration with that of...
      	(make_pass_lower_cf): ...new function.
      	(pass_refactor_eh): Replace declaration with that of...
      	(make_pass_refactor_eh): ...new function.
      	(pass_lower_eh): Replace declaration with that of...
      	(make_pass_lower_eh): ...new function.
      	(pass_lower_eh_dispatch): Replace declaration with that of...
      	(make_pass_lower_eh_dispatch): ...new function.
      	(pass_lower_resx): Replace declaration with that of...
      	(make_pass_lower_resx): ...new function.
      	(pass_build_cfg): Replace declaration with that of...
      	(make_pass_build_cfg): ...new function.
      	(pass_early_tree_profile): Replace declaration with that of...
      	(make_pass_early_tree_profile): ...new function.
      	(pass_cleanup_eh): Replace declaration with that of...
      	(make_pass_cleanup_eh): ...new function.
      	(pass_sra): Replace declaration with that of...
      	(make_pass_sra): ...new function.
      	(pass_sra_early): Replace declaration with that of...
      	(make_pass_sra_early): ...new function.
      	(pass_early_ipa_sra): Replace declaration with that of...
      	(make_pass_early_ipa_sra): ...new function.
      	(pass_tail_recursion): Replace declaration with that of...
      	(make_pass_tail_recursion): ...new function.
      	(pass_tail_calls): Replace declaration with that of...
      	(make_pass_tail_calls): ...new function.
      	(pass_tree_loop): Replace declaration with that of...
      	(make_pass_tree_loop): ...new function.
      	(pass_tree_loop_init): Replace declaration with that of...
      	(make_pass_tree_loop_init): ...new function.
      	(pass_lim): Replace declaration with that of...
      	(make_pass_lim): ...new function.
      	(pass_tree_unswitch): Replace declaration with that of...
      	(make_pass_tree_unswitch): ...new function.
      	(pass_predcom): Replace declaration with that of...
      	(make_pass_predcom): ...new function.
      	(pass_iv_canon): Replace declaration with that of...
      	(make_pass_iv_canon): ...new function.
      	(pass_scev_cprop): Replace declaration with that of...
      	(make_pass_scev_cprop): ...new function.
      	(pass_empty_loop): Replace declaration with that of...
      	(make_pass_empty_loop): ...new function.
      	(pass_record_bounds): Replace declaration with that of...
      	(make_pass_record_bounds): ...new function.
      	(pass_graphite): Replace declaration with that of...
      	(make_pass_graphite): ...new function.
      	(pass_graphite_transforms): Replace declaration with that of...
      	(make_pass_graphite_transforms): ...new function.
      	(pass_if_conversion): Replace declaration with that of...
      	(make_pass_if_conversion): ...new function.
      	(pass_loop_distribution): Replace declaration with that of...
      	(make_pass_loop_distribution): ...new function.
      	(pass_vectorize): Replace declaration with that of...
      	(make_pass_vectorize): ...new function.
      	(pass_slp_vectorize): Replace declaration with that of...
      	(make_pass_slp_vectorize): ...new function.
      	(pass_complete_unroll): Replace declaration with that of...
      	(make_pass_complete_unroll): ...new function.
      	(pass_complete_unrolli): Replace declaration with that of...
      	(make_pass_complete_unrolli): ...new function.
      	(pass_parallelize_loops): Replace declaration with that of...
      	(make_pass_parallelize_loops): ...new function.
      	(pass_loop_prefetch): Replace declaration with that of...
      	(make_pass_loop_prefetch): ...new function.
      	(pass_iv_optimize): Replace declaration with that of...
      	(make_pass_iv_optimize): ...new function.
      	(pass_tree_loop_done): Replace declaration with that of...
      	(make_pass_tree_loop_done): ...new function.
      	(pass_ch): Replace declaration with that of...
      	(make_pass_ch): ...new function.
      	(pass_ccp): Replace declaration with that of...
      	(make_pass_ccp): ...new function.
      	(pass_phi_only_cprop): Replace declaration with that of...
      	(make_pass_phi_only_cprop): ...new function.
      	(pass_build_ssa): Replace declaration with that of...
      	(make_pass_build_ssa): ...new function.
      	(pass_build_alias): Replace declaration with that of...
      	(make_pass_build_alias): ...new function.
      	(pass_build_ealias): Replace declaration with that of...
      	(make_pass_build_ealias): ...new function.
      	(pass_dominator): Replace declaration with that of...
      	(make_pass_dominator): ...new function.
      	(pass_dce): Replace declaration with that of...
      	(make_pass_dce): ...new function.
      	(pass_dce_loop): Replace declaration with that of...
      	(make_pass_dce_loop): ...new function.
      	(pass_cd_dce): Replace declaration with that of...
      	(make_pass_cd_dce): ...new function.
      	(pass_call_cdce): Replace declaration with that of...
      	(make_pass_call_cdce): ...new function.
      	(pass_merge_phi): Replace declaration with that of...
      	(make_pass_merge_phi): ...new function.
      	(pass_split_crit_edges): Replace declaration with that of...
      	(make_pass_split_crit_edges): ...new function.
      	(pass_pre): Replace declaration with that of...
      	(make_pass_pre): ...new function.
      	(pass_profile): Replace declaration with that of...
      	(make_pass_profile): ...new function.
      	(pass_strip_predict_hints): Replace declaration with that of...
      	(make_pass_strip_predict_hints): ...new function.
      	(pass_lower_complex_O0): Replace declaration with that of...
      	(make_pass_lower_complex_O0): ...new function.
      	(pass_lower_complex): Replace declaration with that of...
      	(make_pass_lower_complex): ...new function.
      	(pass_lower_vector): Replace declaration with that of...
      	(make_pass_lower_vector): ...new function.
      	(pass_lower_vector_ssa): Replace declaration with that of...
      	(make_pass_lower_vector_ssa): ...new function.
      	(pass_lower_omp): Replace declaration with that of...
      	(make_pass_lower_omp): ...new function.
      	(pass_diagnose_omp_blocks): Replace declaration with that of...
      	(make_pass_diagnose_omp_blocks): ...new function.
      	(pass_expand_omp): Replace declaration with that of...
      	(make_pass_expand_omp): ...new function.
      	(pass_expand_omp_ssa): Replace declaration with that of...
      	(make_pass_expand_omp_ssa): ...new function.
      	(pass_object_sizes): Replace declaration with that of...
      	(make_pass_object_sizes): ...new function.
      	(pass_strlen): Replace declaration with that of...
      	(make_pass_strlen): ...new function.
      	(pass_fold_builtins): Replace declaration with that of...
      	(make_pass_fold_builtins): ...new function.
      	(pass_stdarg): Replace declaration with that of...
      	(make_pass_stdarg): ...new function.
      	(pass_early_warn_uninitialized): Replace declaration with that of...
      	(make_pass_early_warn_uninitialized): ...new function.
      	(pass_late_warn_uninitialized): Replace declaration with that of...
      	(make_pass_late_warn_uninitialized): ...new function.
      	(pass_cse_reciprocals): Replace declaration with that of...
      	(make_pass_cse_reciprocals): ...new function.
      	(pass_cse_sincos): Replace declaration with that of...
      	(make_pass_cse_sincos): ...new function.
      	(pass_optimize_bswap): Replace declaration with that of...
      	(make_pass_optimize_bswap): ...new function.
      	(pass_optimize_widening_mul): Replace declaration with that of...
      	(make_pass_optimize_widening_mul): ...new function.
      	(pass_warn_function_return): Replace declaration with that of...
      	(make_pass_warn_function_return): ...new function.
      	(pass_warn_function_noreturn): Replace declaration with that of...
      	(make_pass_warn_function_noreturn): ...new function.
      	(pass_cselim): Replace declaration with that of...
      	(make_pass_cselim): ...new function.
      	(pass_phiopt): Replace declaration with that of...
      	(make_pass_phiopt): ...new function.
      	(pass_forwprop): Replace declaration with that of...
      	(make_pass_forwprop): ...new function.
      	(pass_phiprop): Replace declaration with that of...
      	(make_pass_phiprop): ...new function.
      	(pass_tree_ifcombine): Replace declaration with that of...
      	(make_pass_tree_ifcombine): ...new function.
      	(pass_dse): Replace declaration with that of...
      	(make_pass_dse): ...new function.
      	(pass_nrv): Replace declaration with that of...
      	(make_pass_nrv): ...new function.
      	(pass_rename_ssa_copies): Replace declaration with that of...
      	(make_pass_rename_ssa_copies): ...new function.
      	(pass_sink_code): Replace declaration with that of...
      	(make_pass_sink_code): ...new function.
      	(pass_fre): Replace declaration with that of...
      	(make_pass_fre): ...new function.
      	(pass_check_data_deps): Replace declaration with that of...
      	(make_pass_check_data_deps): ...new function.
      	(pass_copy_prop): Replace declaration with that of...
      	(make_pass_copy_prop): ...new function.
      	(pass_vrp): Replace declaration with that of...
      	(make_pass_vrp): ...new function.
      	(pass_uncprop): Replace declaration with that of...
      	(make_pass_uncprop): ...new function.
      	(pass_return_slot): Replace declaration with that of...
      	(make_pass_return_slot): ...new function.
      	(pass_reassoc): Replace declaration with that of...
      	(make_pass_reassoc): ...new function.
      	(pass_rebuild_cgraph_edges): Replace declaration with that of...
      	(make_pass_rebuild_cgraph_edges): ...new function.
      	(pass_remove_cgraph_callee_edges): Replace declaration with that of...
      	(make_pass_remove_cgraph_callee_edges): ...new function.
      	(pass_build_cgraph_edges): Replace declaration with that of...
      	(make_pass_build_cgraph_edges): ...new function.
      	(pass_local_pure_const): Replace declaration with that of...
      	(make_pass_local_pure_const): ...new function.
      	(pass_tracer): Replace declaration with that of...
      	(make_pass_tracer): ...new function.
      	(pass_warn_unused_result): Replace declaration with that of...
      	(make_pass_warn_unused_result): ...new function.
      	(pass_diagnose_tm_blocks): Replace declaration with that of...
      	(make_pass_diagnose_tm_blocks): ...new function.
      	(pass_lower_tm): Replace declaration with that of...
      	(make_pass_lower_tm): ...new function.
      	(pass_tm_init): Replace declaration with that of...
      	(make_pass_tm_init): ...new function.
      	(pass_tm_mark): Replace declaration with that of...
      	(make_pass_tm_mark): ...new function.
      	(pass_tm_memopt): Replace declaration with that of...
      	(make_pass_tm_memopt): ...new function.
      	(pass_tm_edges): Replace declaration with that of...
      	(make_pass_tm_edges): ...new function.
      	(pass_split_functions): Replace declaration with that of...
      	(make_pass_split_functions): ...new function.
      	(pass_feedback_split_functions): Replace declaration with that of...
      	(make_pass_feedback_split_functions): ...new function.
      	(pass_strength_reduction): Replace declaration with that of...
      	(make_pass_strength_reduction): ...new function.
      	(pass_ipa_lower_emutls): Replace declaration with that of...
      	(make_pass_ipa_lower_emutls): ...new function.
      	(pass_ipa_function_and_variable_visibility): Replace declaration with
      	that of...
      	(make_pass_ipa_function_and_variable_visibility): ...new function.
      	(pass_ipa_tree_profile): Replace declaration with that of...
      	(make_pass_ipa_tree_profile): ...new function.
      	(pass_early_local_passes): Replace declaration with that of...
      	(make_pass_early_local_passes): ...new function.
      	(pass_ipa_whole_program_visibility): Replace declaration with that
      	of...
      	(make_pass_ipa_whole_program_visibility): ...new function.
      	(pass_ipa_lto_gimple_out): Replace declaration with that of...
      	(make_pass_ipa_lto_gimple_out): ...new function.
      	(pass_ipa_increase_alignment): Replace declaration with that of...
      	(make_pass_ipa_increase_alignment): ...new function.
      	(pass_ipa_inline): Replace declaration with that of...
      	(make_pass_ipa_inline): ...new function.
      	(pass_ipa_free_lang_data): Replace declaration with that of...
      	(make_pass_ipa_free_lang_data): ...new function.
      	(pass_ipa_free_inline_summary): Replace declaration with that of...
      	(make_pass_ipa_free_inline_summary): ...new function.
      	(pass_ipa_cp): Replace declaration with that of...
      	(make_pass_ipa_cp): ...new function.
      	(pass_ipa_reference): Replace declaration with that of...
      	(make_pass_ipa_reference): ...new function.
      	(pass_ipa_pure_const): Replace declaration with that of...
      	(make_pass_ipa_pure_const): ...new function.
      	(pass_ipa_pta): Replace declaration with that of...
      	(make_pass_ipa_pta): ...new function.
      	(pass_ipa_lto_finish_out): Replace declaration with that of...
      	(make_pass_ipa_lto_finish_out): ...new function.
      	(pass_ipa_tm): Replace declaration with that of...
      	(make_pass_ipa_tm): ...new function.
      	(pass_ipa_profile): Replace declaration with that of...
      	(make_pass_ipa_profile): ...new function.
      	(pass_ipa_cdtor_merge): Replace declaration with that of...
      	(make_pass_ipa_cdtor_merge): ...new function.
      	(pass_cleanup_cfg_post_optimizing): Replace declaration with that
      	of...
      	(make_pass_cleanup_cfg_post_optimizing): ...new function.
      	(pass_init_datastructures): Replace declaration with that of...
      	(make_pass_init_datastructures): ...new function.
      	(pass_fixup_cfg): Replace declaration with that of...
      	(make_pass_fixup_cfg): ...new function.
      	(pass_expand): Replace declaration with that of...
      	(make_pass_expand): ...new function.
      	(pass_instantiate_virtual_regs): Replace declaration with that of...
      	(make_pass_instantiate_virtual_regs): ...new function.
      	(pass_rtl_fwprop): Replace declaration with that of...
      	(make_pass_rtl_fwprop): ...new function.
      	(pass_rtl_fwprop_addr): Replace declaration with that of...
      	(make_pass_rtl_fwprop_addr): ...new function.
      	(pass_jump): Replace declaration with that of...
      	(make_pass_jump): ...new function.
      	(pass_jump2): Replace declaration with that of...
      	(make_pass_jump2): ...new function.
      	(pass_lower_subreg): Replace declaration with that of...
      	(make_pass_lower_subreg): ...new function.
      	(pass_cse): Replace declaration with that of...
      	(make_pass_cse): ...new function.
      	(pass_fast_rtl_dce): Replace declaration with that of...
      	(make_pass_fast_rtl_dce): ...new function.
      	(pass_ud_rtl_dce): Replace declaration with that of...
      	(make_pass_ud_rtl_dce): ...new function.
      	(pass_rtl_dce): Replace declaration with that of...
      	(make_pass_rtl_dce): ...new function.
      	(pass_rtl_dse1): Replace declaration with that of...
      	(make_pass_rtl_dse1): ...new function.
      	(pass_rtl_dse2): Replace declaration with that of...
      	(make_pass_rtl_dse2): ...new function.
      	(pass_rtl_dse3): Replace declaration with that of...
      	(make_pass_rtl_dse3): ...new function.
      	(pass_rtl_cprop): Replace declaration with that of...
      	(make_pass_rtl_cprop): ...new function.
      	(pass_rtl_pre): Replace declaration with that of...
      	(make_pass_rtl_pre): ...new function.
      	(pass_rtl_hoist): Replace declaration with that of...
      	(make_pass_rtl_hoist): ...new function.
      	(pass_rtl_store_motion): Replace declaration with that of...
      	(make_pass_rtl_store_motion): ...new function.
      	(pass_cse_after_global_opts): Replace declaration with that of...
      	(make_pass_cse_after_global_opts): ...new function.
      	(pass_rtl_ifcvt): Replace declaration with that of...
      	(make_pass_rtl_ifcvt): ...new function.
      	(pass_into_cfg_layout_mode): Replace declaration with that of...
      	(make_pass_into_cfg_layout_mode): ...new function.
      	(pass_outof_cfg_layout_mode): Replace declaration with that of...
      	(make_pass_outof_cfg_layout_mode): ...new function.
      	(pass_loop2): Replace declaration with that of...
      	(make_pass_loop2): ...new function.
      	(pass_rtl_loop_init): Replace declaration with that of...
      	(make_pass_rtl_loop_init): ...new function.
      	(pass_rtl_move_loop_invariants): Replace declaration with that of...
      	(make_pass_rtl_move_loop_invariants): ...new function.
      	(pass_rtl_unswitch): Replace declaration with that of...
      	(make_pass_rtl_unswitch): ...new function.
      	(pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
      	(make_pass_rtl_unroll_and_peel_loops): ...new function.
      	(pass_rtl_doloop): Replace declaration with that of...
      	(make_pass_rtl_doloop): ...new function.
      	(pass_rtl_loop_done): Replace declaration with that of...
      	(make_pass_rtl_loop_done): ...new function.
      	(pass_web): Replace declaration with that of...
      	(make_pass_web): ...new function.
      	(pass_cse2): Replace declaration with that of...
      	(make_pass_cse2): ...new function.
      	(pass_df_initialize_opt): Replace declaration with that of...
      	(make_pass_df_initialize_opt): ...new function.
      	(pass_df_initialize_no_opt): Replace declaration with that of...
      	(make_pass_df_initialize_no_opt): ...new function.
      	(pass_reginfo_init): Replace declaration with that of...
      	(make_pass_reginfo_init): ...new function.
      	(pass_inc_dec): Replace declaration with that of...
      	(make_pass_inc_dec): ...new function.
      	(pass_stack_ptr_mod): Replace declaration with that of...
      	(make_pass_stack_ptr_mod): ...new function.
      	(pass_initialize_regs): Replace declaration with that of...
      	(make_pass_initialize_regs): ...new function.
      	(pass_combine): Replace declaration with that of...
      	(make_pass_combine): ...new function.
      	(pass_if_after_combine): Replace declaration with that of...
      	(make_pass_if_after_combine): ...new function.
      	(pass_ree): Replace declaration with that of...
      	(make_pass_ree): ...new function.
      	(pass_partition_blocks): Replace declaration with that of...
      	(make_pass_partition_blocks): ...new function.
      	(pass_match_asm_constraints): Replace declaration with that of...
      	(make_pass_match_asm_constraints): ...new function.
      	(pass_regmove): Replace declaration with that of...
      	(make_pass_regmove): ...new function.
      	(pass_split_all_insns): Replace declaration with that of...
      	(make_pass_split_all_insns): ...new function.
      	(pass_fast_rtl_byte_dce): Replace declaration with that of...
      	(make_pass_fast_rtl_byte_dce): ...new function.
      	(pass_lower_subreg2): Replace declaration with that of...
      	(make_pass_lower_subreg2): ...new function.
      	(pass_mode_switching): Replace declaration with that of...
      	(make_pass_mode_switching): ...new function.
      	(pass_sms): Replace declaration with that of...
      	(make_pass_sms): ...new function.
      	(pass_sched): Replace declaration with that of...
      	(make_pass_sched): ...new function.
      	(pass_ira): Replace declaration with that of...
      	(make_pass_ira): ...new function.
      	(pass_reload): Replace declaration with that of...
      	(make_pass_reload): ...new function.
      	(pass_clean_state): Replace declaration with that of...
      	(make_pass_clean_state): ...new function.
      	(pass_branch_prob): Replace declaration with that of...
      	(make_pass_branch_prob): ...new function.
      	(pass_value_profile_transformations): Replace declaration with that
      	of...
      	(make_pass_value_profile_transformations): ...new function.
      	(pass_postreload_cse): Replace declaration with that of...
      	(make_pass_postreload_cse): ...new function.
      	(pass_gcse2): Replace declaration with that of...
      	(make_pass_gcse2): ...new function.
      	(pass_split_after_reload): Replace declaration with that of...
      	(make_pass_split_after_reload): ...new function.
      	(pass_branch_target_load_optimize1): Replace declaration with that
      	of...
      	(make_pass_branch_target_load_optimize1): ...new function.
      	(pass_thread_prologue_and_epilogue): Replace declaration with that
      	of...
      	(make_pass_thread_prologue_and_epilogue): ...new function.
      	(pass_stack_adjustments): Replace declaration with that of...
      	(make_pass_stack_adjustments): ...new function.
      	(pass_peephole2): Replace declaration with that of...
      	(make_pass_peephole2): ...new function.
      	(pass_if_after_reload): Replace declaration with that of...
      	(make_pass_if_after_reload): ...new function.
      	(pass_regrename): Replace declaration with that of...
      	(make_pass_regrename): ...new function.
      	(pass_cprop_hardreg): Replace declaration with that of...
      	(make_pass_cprop_hardreg): ...new function.
      	(pass_reorder_blocks): Replace declaration with that of...
      	(make_pass_reorder_blocks): ...new function.
      	(pass_branch_target_load_optimize2): Replace declaration with that
      	of...
      	(make_pass_branch_target_load_optimize2): ...new function.
      	(pass_leaf_regs): Replace declaration with that of...
      	(make_pass_leaf_regs): ...new function.
      	(pass_split_before_sched2): Replace declaration with that of...
      	(make_pass_split_before_sched2): ...new function.
      	(pass_compare_elim_after_reload): Replace declaration with that of...
      	(make_pass_compare_elim_after_reload): ...new function.
      	(pass_sched2): Replace declaration with that of...
      	(make_pass_sched2): ...new function.
      	(pass_stack_regs): Replace declaration with that of...
      	(make_pass_stack_regs): ...new function.
      	(pass_stack_regs_run): Replace declaration with that of...
      	(make_pass_stack_regs_run): ...new function.
      	(pass_df_finish): Replace declaration with that of...
      	(make_pass_df_finish): ...new function.
      	(pass_compute_alignments): Replace declaration with that of...
      	(make_pass_compute_alignments): ...new function.
      	(pass_duplicate_computed_gotos): Replace declaration with that of...
      	(make_pass_duplicate_computed_gotos): ...new function.
      	(pass_variable_tracking): Replace declaration with that of...
      	(make_pass_variable_tracking): ...new function.
      	(pass_free_cfg): Replace declaration with that of...
      	(make_pass_free_cfg): ...new function.
      	(pass_machine_reorg): Replace declaration with that of...
      	(make_pass_machine_reorg): ...new function.
      	(pass_cleanup_barriers): Replace declaration with that of...
      	(make_pass_cleanup_barriers): ...new function.
      	(pass_delay_slots): Replace declaration with that of...
      	(make_pass_delay_slots): ...new function.
      	(pass_split_for_shorten_branches): Replace declaration with that of...
      	(make_pass_split_for_shorten_branches): ...new function.
      	(pass_split_before_regstack): Replace declaration with that of...
      	(make_pass_split_before_regstack): ...new function.
      	(pass_convert_to_eh_region_ranges): Replace declaration with that
      	of...
      	(make_pass_convert_to_eh_region_ranges): ...new function.
      	(pass_shorten_branches): Replace declaration with that of...
      	(make_pass_shorten_branches): ...new function.
      	(pass_set_nothrow_function_flags): Replace declaration with that of...
      	(make_pass_set_nothrow_function_flags): ...new function.
      	(pass_dwarf2_frame): Replace declaration with that of...
      	(make_pass_dwarf2_frame): ...new function.
      	(pass_final): Replace declaration with that of...
      	(make_pass_final): ...new function.
      	(pass_rtl_seqabstr): Replace declaration with that of...
      	(make_pass_rtl_seqabstr): ...new function.
      	(pass_release_ssa_names): Replace declaration with that of...
      	(make_pass_release_ssa_names): ...new function.
      	(pass_early_inline): Replace declaration with that of...
      	(make_pass_early_inline): ...new function.
      	(pass_inline_parameters): Replace declaration with that of...
      	(make_pass_inline_parameters): ...new function.
      	(pass_update_address_taken): Replace declaration with that of...
      	(make_pass_update_address_taken): ...new function.
      	(pass_convert_switch): Replace declaration with that of...
      	(make_pass_convert_switch): ...new function.
      	* tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
      	to a subclass of simple_ipa_opt_pass along with...
      	(pass_data_ipa_tree_profile): ...new pass_data instance and...
      	(make_pass_ipa_tree_profile): ...new function.
      	* tree-sra.c (pass_sra_early): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_sra_early): ...new pass_data instance and...
      	(make_pass_sra_early): ...new function.
      	(pass_sra): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_sra): ...new pass_data instance and...
      	(make_pass_sra): ...new function.
      	(pass_early_ipa_sra): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_early_ipa_sra): ...new pass_data instance and...
      	(make_pass_early_ipa_sra): ...new function.
      	* tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_ccp): ...new pass_data instance and...
      	(make_pass_ccp): ...new function.
      	(pass_fold_builtins): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_fold_builtins): ...new pass_data instance and...
      	(make_pass_fold_builtins): ...new function.
      	* tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_copy_prop): ...new pass_data instance and...
      	(make_pass_copy_prop): ...new function.
      	* tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
      	global struct to a subclass of gimple_opt_pass along with...
      	(pass_data_rename_ssa_copies): ...new pass_data instance and...
      	(make_pass_rename_ssa_copies): ...new function.
      	* tree-ssa-dce.c (pass_dce): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_dce): ...new pass_data instance and...
      	(make_pass_dce): ...new function.
      	(pass_dce_loop): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_dce_loop): ...new pass_data instance and...
      	(make_pass_dce_loop): ...new function.
      	(pass_cd_dce): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_cd_dce): ...new pass_data instance and...
      	(make_pass_cd_dce): ...new function.
      	* tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_dominator): ...new pass_data instance and...
      	(make_pass_dominator): ...new function.
      	(pass_phi_only_cprop): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_phi_only_cprop): ...new pass_data instance and...
      	(make_pass_phi_only_cprop): ...new function.
      	* tree-ssa-dse.c (pass_dse): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_dse): ...new pass_data instance and...
      	(make_pass_dse): ...new function.
      	* tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
      	a subclass of gimple_opt_pass along with...
      	(pass_data_forwprop): ...new pass_data instance and...
      	(make_pass_forwprop): ...new function.
      	* tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
      	struct to a subclass of gimple_opt_pass along with...
      	(pass_data_tree_ifcombine): ...new pass_data instance and...
      	(make_pass_tree_ifcombine): ...new function.
      	* tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_ch): ...new pass_data instance and...
      	(make_pass_ch): ...new function.
      	* tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_tree_loop): ...new pass_data instance and...
      	(make_pass_tree_loop): ...new function.
      	(pass_tree_loop_init): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_tree_loop_init): ...new pass_data instance and...
      	(make_pass_tree_loop_init): ...new function.
      	(pass_lim): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_lim): ...new pass_data instance and...
      	(make_pass_lim): ...new function.
      	(pass_tree_unswitch): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_tree_unswitch): ...new pass_data instance and...
      	(make_pass_tree_unswitch): ...new function.
      	(pass_predcom): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_predcom): ...new pass_data instance and...
      	(make_pass_predcom): ...new function.
      	(pass_vectorize): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_vectorize): ...new pass_data instance and...
      	(make_pass_vectorize): ...new function.
      	(pass_graphite): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_graphite): ...new pass_data instance and...
      	(make_pass_graphite): ...new function.
      	(pass_graphite_transforms): Convert from a global struct to a subclass
      	of gimple_opt_pass along with...
      	(pass_data_graphite_transforms): ...new pass_data instance and...
      	(make_pass_graphite_transforms): ...new function.
      	(pass_check_data_deps): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_check_data_deps): ...new pass_data instance and...
      	(make_pass_check_data_deps): ...new function.
      	(pass_iv_canon): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_iv_canon): ...new pass_data instance and...
      	(make_pass_iv_canon): ...new function.
      	(pass_scev_cprop): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_scev_cprop): ...new pass_data instance and...
      	(make_pass_scev_cprop): ...new function.
      	(pass_record_bounds): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_record_bounds): ...new pass_data instance and...
      	(make_pass_record_bounds): ...new function.
      	(pass_complete_unroll): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_complete_unroll): ...new pass_data instance and...
      	(make_pass_complete_unroll): ...new function.
      	(pass_complete_unrolli): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_complete_unrolli): ...new pass_data instance and...
      	(make_pass_complete_unrolli): ...new function.
      	(pass_parallelize_loops): Convert from a global struct to a subclass
      	of gimple_opt_pass along with...
      	(pass_data_parallelize_loops): ...new pass_data instance and...
      	(make_pass_parallelize_loops): ...new function.
      	(pass_loop_prefetch): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_loop_prefetch): ...new pass_data instance and...
      	(make_pass_loop_prefetch): ...new function.
      	(pass_iv_optimize): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_iv_optimize): ...new pass_data instance and...
      	(make_pass_iv_optimize): ...new function.
      	(pass_tree_loop_done): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_tree_loop_done): ...new pass_data instance and...
      	(make_pass_tree_loop_done): ...new function.
      	* tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
      	struct to a subclass of gimple_opt_pass along with...
      	(pass_data_cse_reciprocals): ...new pass_data instance and...
      	(make_pass_cse_reciprocals): ...new function.
      	(pass_cse_sincos): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_cse_sincos): ...new pass_data instance and...
      	(make_pass_cse_sincos): ...new function.
      	(pass_optimize_bswap): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_optimize_bswap): ...new pass_data instance and...
      	(make_pass_optimize_bswap): ...new function.
      	(pass_optimize_widening_mul): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_optimize_widening_mul): ...new pass_data instance and...
      	(make_pass_optimize_widening_mul): ...new function.
      	* tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_phiopt): ...new pass_data instance and...
      	(make_pass_phiopt): ...new function.
      	(pass_cselim): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_cselim): ...new pass_data instance and...
      	(make_pass_cselim): ...new function.
      	* tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_phiprop): ...new pass_data instance and...
      	(make_pass_phiprop): ...new function.
      	* tree-ssa-pre.c (pass_pre): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_pre): ...new pass_data instance and...
      	(make_pass_pre): ...new function.
      	(pass_fre): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_fre): ...new pass_data instance and...
      	(make_pass_fre): ...new function.
      	* tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_reassoc): ...new pass_data instance and...
      	(make_pass_reassoc): ...new function.
      	* tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_sink_code): ...new pass_data instance and...
      	(make_pass_sink_code): ...new function.
      	* tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_strlen): ...new pass_data instance and...
      	(make_pass_strlen): ...new function.
      	* tree-ssa-structalias.c (pass_build_alias): Convert from a global
      	struct to a subclass of gimple_opt_pass along with...
      	(pass_data_build_alias): ...new pass_data instance and...
      	(make_pass_build_alias): ...new function.
      	(pass_build_ealias): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_build_ealias): ...new pass_data instance and...
      	(make_pass_build_ealias): ...new function.
      	(pass_ipa_pta): Convert from a global struct to a subclass of
      	simple_ipa_opt_pass along with...
      	(pass_data_ipa_pta): ...new pass_data instance and...
      	(make_pass_ipa_pta): ...new function.
      	* tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_uncprop): ...new pass_data instance and...
      	(make_pass_uncprop): ...new function.
      	* tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
      	global struct to a subclass of gimple_opt_pass along with...
      	(pass_data_late_warn_uninitialized): ...new pass_data instance and...
      	(make_pass_late_warn_uninitialized): ...new function.
      	* tree-ssa.c (pass_init_datastructures): Convert from a global struct
      	to a subclass of gimple_opt_pass along with...
      	(pass_data_init_datastructures): ...new pass_data instance and...
      	(make_pass_init_datastructures): ...new function.
      	(pass_early_warn_uninitialized): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_early_warn_uninitialized): ...new pass_data instance and...
      	(make_pass_early_warn_uninitialized): ...new function.
      	(pass_update_address_taken): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_update_address_taken): ...new pass_data instance and...
      	(make_pass_update_address_taken): ...new function.
      	* tree-ssanames.c (pass_release_ssa_names): Convert from a global
      	struct to a subclass of gimple_opt_pass along with...
      	(pass_data_release_ssa_names): ...new pass_data instance and...
      	(make_pass_release_ssa_names): ...new function.
      	* tree-stdarg.c (pass_stdarg): Convert from a global struct to a
      	subclass of gimple_opt_pass along with...
      	(pass_data_stdarg): ...new pass_data instance and...
      	(make_pass_stdarg): ...new function.
      	* tree-switch-conversion.c (pass_convert_switch): Convert from a
      	global struct to a subclass of gimple_opt_pass along with...
      	(pass_data_convert_switch): ...new pass_data instance and...
      	(make_pass_convert_switch): ...new function.
      	* tree-tailcall.c (pass_tail_recursion): Convert from a global struct
      	to a subclass of gimple_opt_pass along with...
      	(pass_data_tail_recursion): ...new pass_data instance and...
      	(make_pass_tail_recursion): ...new function.
      	(pass_tail_calls): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_tail_calls): ...new pass_data instance and...
      	(make_pass_tail_calls): ...new function.
      	* tree-vect-generic.c (pass_lower_vector): Convert from a global
      	struct to a subclass of gimple_opt_pass along with...
      	(pass_data_lower_vector): ...new pass_data instance and...
      	(make_pass_lower_vector): ...new function.
      	(pass_lower_vector_ssa): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_lower_vector_ssa): ...new pass_data instance and...
      	(make_pass_lower_vector_ssa): ...new function.
      	* tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
      	to a subclass of gimple_opt_pass along with...
      	(pass_data_slp_vectorize): ...new pass_data instance and...
      	(make_pass_slp_vectorize): ...new function.
      	(pass_ipa_increase_alignment): Convert from a global struct to a
      	subclass of simple_ipa_opt_pass along with...
      	(pass_data_ipa_increase_alignment): ...new pass_data instance and...
      	(make_pass_ipa_increase_alignment): ...new function.
      	* tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_vrp): ...new pass_data instance and...
      	(make_pass_vrp): ...new function.
      	* tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
      	subclass of simple_ipa_opt_pass along with...
      	(pass_data_ipa_free_lang_data): ...new pass_data instance and...
      	(make_pass_ipa_free_lang_data): ...new function.
      	* tsan.c (pass_tsan): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_tsan): ...new pass_data instance and...
      	(make_pass_tsan): ...new function.
      	(pass_tsan_O0): Convert from a global struct to a subclass of
      	gimple_opt_pass along with...
      	(pass_data_tsan_O0): ...new pass_data instance and...
      	(make_pass_tsan_O0): ...new function.
      	* var-tracking.c (pass_variable_tracking): Convert from a global
      	struct to a subclass of rtl_opt_pass along with...
      	(pass_data_variable_tracking): ...new pass_data instance and...
      	(make_pass_variable_tracking): ...new function.
      	* web.c (pass_web): Convert from a global struct to a subclass of
      	rtl_opt_pass along with...
      	(pass_data_web): ...new pass_data instance and...
      	(make_pass_web): ...new function.
      	* config/epiphany/epiphany.h (pass_mode_switch_use): Replace
      	declaration with that of...
      	(make_pass_mode_switch_use): ...new function.
      	(pass_resolve_sw_modes): Replace declaration with that of...
      	(make_pass_resolve_sw_modes): ...new function.
      	* config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
      	from a global struct to a subclass of rtl_opt_pass along with...
      	(pass_data_mode_switch_use): ...new pass_data instance and...
      	(make_pass_mode_switch_use): ...new function.
      	* config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
      	from a global struct to a subclass of rtl_opt_pass along with...
      	(pass_data_resolve_sw_modes): ...new pass_data instance and...
      	(make_pass_resolve_sw_modes): ...new function.
      	* config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
      	struct to a subclass of rtl_opt_pass along with...
      	(pass_data_insert_vzeroupper): ...new pass_data instance and...
      	(make_pass_insert_vzeroupper): ...new function.
      	* config/sparc/sparc.c (pass_work_around_errata): Convert from a
      	global struct to a subclass of rtl_opt_pass along with...
      	(pass_data_work_around_errata): ...new pass_data instance and...
      	(make_pass_work_around_errata): ...new function.
      	* config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
      	struct to a subclass of rtl_opt_pass along with...
      	(pass_data_mips_machine_reorg2): ...new pass_data instance and...
      	(make_pass_mips_machine_reorg2): ...new function.
      
      gcc/testsuite/
      
      	Patch autogenerated by refactor_passes.py from
      	https://github.com/davidmalcolm/gcc-refactoring-scripts
      	revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
      
      	* gcc.dg/plugin/one_time_plugin.c (one_pass): Convert from a global
      	struct to a subclass of gimple_opt_pass along with...
      	(pass_data_one_pass): ...new pass_data instance and...
      	(make_one_pass): ...new function.
      	* gcc.dg/plugin/selfassign.c (pass_warn_self_assign): Convert from a
      	global struct to a subclass of gimple_opt_pass along with...
      	(pass_data_warn_self_assign): ...new pass_data instance and...
      	(make_pass_warn_self_assign): ...new function.
      	* g++.dg/plugin/dumb_plugin.c (pass_dumb_plugin_example): Convert from
      	a global struct to a subclass of gimple_opt_pass along with...
      	(pass_data_dumb_plugin_example): ...new pass_data instance and...
      	(make_pass_dumb_plugin_example): ...new function.
      	* g++.dg/plugin/selfassign.c (pass_warn_self_assign): Convert from a
      	global struct to a subclass of gimple_opt_pass along with...
      	(pass_data_warn_self_assign): ...new pass_data instance and...
      	(make_pass_warn_self_assign): ...new function.
      
      From-SVN: r201508
      David Malcolm committed