1. 22 Sep, 2014 1 commit
    • tree-ssa-ccp.c (prop_value_d): Rename to ... · 11478306
      	* tree-ssa-ccp.c (prop_value_d): Rename to ...
      	(ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
      	* ipa-prop.c (struct type_change_info): Rename to ...
      	(prop_type_change_info): ... this; update uses.
      	* ggc-page.c (globals): Rename to ...
      	(static struct ggc_globals): ... this; update uses.
      	* tree-ssa-loop-im.c (mem_ref): Rename to ...
      	(im_mem_ref): ... this; update uses.
      	* ggc-common.c (loc_descriptor): Rename to ...
      	(ggc_loc_descriptor): ... this; update uses.
      	* lra-eliminations.c (elim_table): Rename to ...
      	(lra_elim_table): ... this; update uses.
      	* bitmap.c (output_info): Rename to ...
      	(bitmap_output_info): ... this; update uses.
      	* gcse.c (expr): Rename to ...
      	(gcse_expr) ... this; update uses.
      	(occr): Rename to ...
      	(gcse_occr): .. this; update uses.
      	* tree-ssa-copy.c (prop_value_d): Rename to ...
      	(prop_value_t): ... this.
      	* predict.c (block_info_def): Rename to ...
      	(block_info): ... this; update uses.
      	(edge_info_def): Rename to ...
      	(edge_info): ... this; update uses.
      	* profile.c (bb_info): Rename to ...
      	(bb_profile_info): ... this; update uses.
      	* alloc-pool.c (output_info): Rename to ...
      	(pool_output_info): ... this; update uses.
      	* ipa-cp.c (topo_info): Rename to ..
      	(ipa_topo_info): ... this; update uses.
      	* tree-nrv.c (nrv_data): Rename to ...
      	(nrv_data_t): ... this; update uses.
      	* ipa-split.c (bb_info): Rename to ...
      	(split_bb_info): ... this one.
      	* profile.h (edge_info): Rename to ...
      	(edge_profile_info): ... this one; update uses.
      	* dse.c (bb_info): Rename to ...
      	(dse_bb_info): ... this one; update uses.
      	* cprop.c (occr): Rename to ...
      	(cprop_occr): ... this one; update uses.
      	(expr): Rename to ...
      	(cprop_expr): ... this one; update uses.
      
      From-SVN: r215480
      Jan Hubicka committed
  2. 16 Sep, 2014 1 commit
    • Replace INSN_DELETED_P with rtx_insn member functions · 4654c0cf
      gcc/
      
      	* cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
      	config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
      	emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
      	reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
      	macro with statically checked member functions.
      	* rtl.h (rtx_insn::deleted): New method.
      	(rtx_insn::set_deleted): Likewise.
      	(rtx_insn::set_undeleted): Likewise.
      	(INSN_DELETED_P): Remove.
      
      From-SVN: r215282
      Trevor Saunders committed
  3. 11 Sep, 2014 1 commit
    • Introduce LABEL_REF_LABEL · a827d9b1
      gcc/ChangeLog:
      2014-09-11  David Malcolm  <dmalcolm@redhat.com>
      
      	* rtl.h (LABEL_REF_LABEL): New macro.
      
      	* alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
      	of XEXP (, 0), where we know that we have a LABEL_REF.
      	* cfgbuild.c (make_edges): Likewise.
      	(purge_dead_tablejump_edges): Likewise.
      	* cfgexpand.c (convert_debug_memory_address): Likewise.
      	* cfgrtl.c (patch_jump_insn): Likewise.
      	* combine.c (distribute_notes): Likewise.
      	* cse.c (hash_rtx_cb): Likewise.
      	(exp_equiv_p): Likewise.
      	(fold_rtx): Likewise.
      	(check_for_label_ref): Likewise.
      	* cselib.c (rtx_equal_for_cselib_1): Likewise.
      	(cselib_hash_rtx): Likewise.
      	* emit-rtl.c (mark_label_nuses): Likewise.
      	* explow.c (convert_memory_address_addr_space): Likewise.
      	* final.c (output_asm_label): Likewise.
      	(output_addr_const): Likewise.
      	* gcse.c (add_label_notes): Likewise.
      	* genconfig.c (walk_insn_part): Likewise.
      	* genrecog.c (validate_pattern): Likewise.
      	* ifcvt.c (cond_exec_get_condition): Likewise.
      	(noce_emit_store_flag): Likewise.
      	(noce_get_alt_condition): Likewise.
      	(noce_get_condition): Likewise.
      	* jump.c (maybe_propagate_label_ref): Likewise.
      	(mark_jump_label_1): Likewise.
      	(redirect_exp_1): Likewise.
      	(rtx_renumbered_equal_p): Likewise.
      	* lra-constraints.c (operands_match_p): Likewise.
      	* reload.c (operands_match_p): Likewise.
      	(find_reloads): Likewise.
      	* reload1.c (set_label_offsets): Likewise.
      	* reorg.c (get_branch_condition): Likewise.
      	* rtl.c (rtx_equal_p_cb): Likewise.
      	(rtx_equal_p): Likewise.
      	* rtlanal.c (reg_mentioned_p): Likewise.
      	(rtx_referenced_p): Likewise.
      	(get_condition): Likewise.
      	* sched-vis.c (print_value): Likewise.
      	* varasm.c (const_hash_1): Likewise.
      	(compare_constant): Likewise.
      	(const_rtx_hash_1): Likewise.
      	(output_constant_pool_1): Likewise.
      
      From-SVN: r215190
      David Malcolm committed
  4. 09 Sep, 2014 2 commits
    • single_set takes an insn · e8a54173
      gcc/ChangeLog:
      2014-09-09  David Malcolm  <dmalcolm@redhat.com>
      
      	* rtl.h (single_set_2): Strengthen first param from const_rtx to
      	const rtx_insn *, and move prototype to above...
      	(single_set): ...this.  Convert this from a macro to an inline
      	function, enforcing the requirement that the param is a const
      	rtx_insn *.
      	(find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
      
      	* config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
      	Strengthen both params from rtx to rtx_insn *.
      	* config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
      	Likewise; introduce locals "producer_set", "consumer_set", using
      	them in place of "producer" and "consumer" when dealing with SET
      	rather than insn.
      	* config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
      	when invoking single_set in region guarded by INSN_P.
      	(avr_out_bitop): Likewise.
      	(_reg_unused_after): Introduce local rtx_sequence * "seq" in
      	region guarded by GET_CODE check, using methods to strengthen
      	local "this_insn" from rtx to rtx_insn *, and for clarity.
      	* config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
      	Strengthen local "insn" from rtx to rtx_insn *.
      	(define_insn_and_split "xload<mode>_A"): Likewise.
      	* config/bfin/bfin.c (trapping_loads_p): Likewise for param
      	"insn".
      	(find_load): Likewise for return type.
      	(workaround_speculation): Likewise for both locals named
      	"load_insn".
      	* config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
      	local "cc0_user".
      	* config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
      	for local "prev".
      	* config/h8300/h8300-protos.h (notice_update_cc): Likewise for
      	param 2.
      	* config/h8300/h8300.c (notice_update_cc): Likewise.
      	* config/i386/i386.c (ix86_flags_dependent): Likewise for params
      	"insn" and "dep_insn".
      	(exact_store_load_dependency): Likewise for both params.
      	(ix86_macro_fusion_pair_p): Eliminate local named "single_set"
      	since this now clashes with inline function.  Instead, delay
      	calling single_set until the point where its needed, and then
      	assign the result to "compare_set" and rework the conditional that
      	follows.
      	* config/ia64/ia64.md (define_expand "tablejump"): Strengthen
      	local "last" from rtx to rtx_insn *.
      	* config/mips/mips-protos.h (mips_load_store_insns): Likewise for
      	second param.
      	(mips_store_data_bypass_p): Likewise for both params.
      	* config/mips/mips.c (mips_load_store_insns): Likewise for second
      	param.
      	(mips_store_data_bypass_p): Likewise for both params.
      	(mips_orphaned_high_part_p): Likewise for param "insn".
      	* config/mn10300/mn10300.c (extract_bundle): Likewise.
      	(mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
      	Introduce local rtx "insn2_pat".
      	* config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
      	"ninsn".
      	(rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
      	Introduce local rtx "set", using it in place of "insn" for the
      	result of single_set.  This appears to fix a bug, since the call
      	to find_regno_note on a SET does nothing.
      	* config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
      	params from rtx to rtx_insn *.
      	(set_to_load_agen): Likewise.
      	* config/s390/s390.c (s390_label_align): Likewise for local
      	"prev_insn".  Introduce new rtx locals "set" and "src", using
      	them in place of "prev_insn" for the results of single_set
      	and SET_SRC respectively.
      	(s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
      	Introduce new rtx local "set" using in place of "jump" for the
      	result of single_set.  Use SET_SRC (set) rather than plain
      	XEXP (set, 1).
      	* config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
      	rtx to rtx_insn *.
      	(noncall_uses_reg): Likewise.
      	(reg_unused_after): Introduce local rtx_sequence * "seq" in region
      	guarded by GET_CODE check, using its methods for clarity, and to
      	enable strengthening local "this_insn" from rtx to rtx_insn *.
      	* config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
      	"insn" from rtx to rtx_insn *.
      	(define_expand "umulhisi3"): Likewise.
      	(define_expand "smulsi3_highpart"): Likewise.
      	(define_expand "umulsi3_highpart"): Likewise.
      	* config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
      	local "after".  Replace GET_CODE check with a dyn_cast,
      	introducing new local rtx_sequence * "seq", using insn method for
      	typesafety.
      
      	* dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
      	from rtx to rtx_insn *.  Introduce local rtx "pat", using it in
      	place of "insn" once we're dealing with patterns rather than the
      	input insn.
      	(scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
      	(scan_trace): Likewise for local "elt", updating lookups within
      	sequence to use insn method rather than element method.
      	* expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
      	to rtx_insn *.
      	* gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
      	* ifcvt.c (noce_try_abs): Likewise for local "insn".
      	* ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
      	invoking single_set.
      	* lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
      	"insn" from rtx to rtx_insn *.
      	(skip_usage_debug_insns): Likewise for return type, adding a
      	checked cast.
      	(check_secondary_memory_needed_p): Likewise for local "insn".
      	(inherit_reload_reg): Likewise.
      	* modulo-sched.c (sms_schedule): Likewise for local "count_init".
      	* recog.c (peep2_attempt): Likewise for local "old_insn", adding
      	checked casts.
      	(store_data_bypass_p): Likewise for both params.
      	(if_test_bypass_p): Likewise.
      	* recog.h (store_data_bypass_p): Likewise for both params.
      	(if_test_bypass_p): Likewise.
      	* reload.c (find_equiv_reg): Likewise for local "where".
      	* reorg.c (delete_jump): Likewise for param "insn".
      	* rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
      	to const rtx_insn *.
      	* store-motion.c (replace_store_insn): Likewise for param "del".
      	(delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
      	and use its methods for clarity, and to strengthen local "del"
      	from rtx to rtx_insn *.
      	(build_store_vectors): Use insn method of "st" when calling
      	replace_store_insn for typesafety and clarity.
      
      From-SVN: r215089
      David Malcolm committed
    • recog_memoized works on an rtx_insn * · 647d790d
      gcc/ChangeLog:
      2014-09-09  David Malcolm  <dmalcolm@redhat.com>
      
      	* caller-save.c (rtx saveinsn): Strengthen this variable from rtx
      	to rtx_insn *.
      	(restinsn): Likewise.
      	* config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
      	Likewise for param.
      	* config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
      	Likewise.
      	* config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
      	first param.
      	(arc_hazard): Likewise for both params.
      	* config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
      	checked casts to rtx_sequence * and uses of the insn method for
      	type-safety.
      	(arc_hazard): Strengthen both params from rtx to rtx_insn *.
      	(arc_adjust_insn_length): Likewise for param "insn".
      	(struct insn_length_parameters_s): Likewise for first param of
      	"get_variants" callback field.
      	(arc_get_insn_variants): Likewise for first param and local
      	"inner".  Replace a check of GET_CODE with a dyn_cast to
      	rtx_sequence *, using methods for type-safety and clarity.
      	* config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
      	rtx_sequence * and uses of the insn method for type-safety when
      	invoking arc_adjust_insn_length.
      	* config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
      	for param.
      	(arm_address_offset_is_imm): Likewise.
      	(struct tune_params): Likewise for params 1 and 3 of the
      	"sched_adjust_cost" callback field.
      	* config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
      	params 1 and 3 ("insn" and "dep").
      	(xscale_sched_adjust_cost): Likewise.
      	(fa726te_sched_adjust_cost): Likewise.
      	(cortexa7_older_only): Likewise for param "insn".
      	(cortexa7_younger): Likewise.
      	(arm_attr_length_move_neon): Likewise.
      	(arm_address_offset_is_imm): Likewise.
      	* config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
      	* config/avr/avr.c (avr_notice_update_cc): Likewise.
      	* config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
      	(workaround_speculation): Likewise for local "last_condjump".
      	* config/c6x/c6x.c (shadow_p): Likewise for param "insn".
      	(shadow_or_blockage_p): Likewise.
      	(get_unit_reqs): Likewise.
      	(get_unit_operand_masks): Likewise.
      	(c6x_registers_update): Likewise.
      	(returning_call_p): Likewise.
      	(can_use_callp): Likewise.
      	(convert_to_callp): Likewise.
      	(find_last_same_clock): Likwise for local "t".
      	(reorg_split_calls): Likewise for local "shadow".
      	(hwloop_pattern_reg): Likewise for param "insn".
      	* config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
      	* config/frv/frv.c (frv_final_prescan_insn): Likewise.
      	(frv_extract_membar): Likewise.
      	(frv_optimize_membar_local): Strengthen param "last_membar" from
      	rtx * to rtx_insn **.
      	(frv_optimize_membar_global): Strengthen param "membar" from rtx
      	to rtx_insn *.
      	(frv_optimize_membar): Strengthen local "last_membar" from rtx *
      	to rtx_insn **.
      	* config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
      	both params from rtx to rtx_insn *.
      	(ia64_ld_address_bypass_p): Likewise.
      	* config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
      	"insn".
      	(ia64_safe_type): Likewise.
      	(group_barrier_needed): Likewise.
      	(safe_group_barrier_needed): Likewise.
      	(ia64_single_set): Likewise.
      	(is_load_p): Likewise.
      	(record_memory_reference): Likewise.
      	(get_mode_no_for_insn): Likewise.
      	(important_for_bundling_p): Likewise.
      	(unknown_for_bundling_p): Likewise.
      	(ia64_st_address_bypass_p): Likewise for both params.
      	(ia64_ld_address_bypass_p): Likewise.
      	(expand_vselect): Introduce new local rtx_insn * "insn", using it
      	in place of rtx "x" after the emit_insn call.
      	* config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
      	Strengthen param from rtx to rtx_insn *.
      	(ix86_agi_dependent): Likewise for both params.
      	(ix86_attr_length_immediate_default): Likewise for param 1.
      	(ix86_attr_length_address_default): Likewise for param.
      	(ix86_attr_length_vex_default): Likewise for param 1.
      	* config/i386/i386.c (ix86_attr_length_immediate_default):
      	Likewise for param "insn".
      	(ix86_attr_length_address_default): Likewise.
      	(ix86_attr_length_vex_default): Likewise.
      	(ix86_agi_dependent): Likewise for both params.
      	(x86_extended_QIreg_mentioned_p): Likewise for param "insn".
      	(vselect_insn): Likewise for this variable.
      	* config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
      	for param 1.
      	(m68k_sched_attr_opy_type): Likewise.
      	* config/m68k/m68k.c (sched_get_operand): Likewise.
      	(sched_attr_op_type): Likewise.
      	(m68k_sched_attr_opx_type): Likewise.
      	(m68k_sched_attr_opy_type): Likewise.
      	(sched_get_reg_operand): Likewise.
      	(sched_get_mem_operand): Likewise.
      	(m68k_sched_address_bypass_p): Likewise for both params.
      	(sched_get_indexed_address_scale): Likewise.
      	(m68k_sched_indexed_address_bypass_p): Likewise.
      	* config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
      	(m68k_sched_indexed_address_bypass_p): Likewise.
      	* config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
      	"label", "ret" from rtx to rtx_insn *, adding a checked cast and
      	removing another.
      	* config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
      	params from rtx to rtx_insn *.
      	(mips_fmadd_bypass): Likewise.
      	* config/mips/mips.c (mips_fmadd_bypass): Likewise.
      	(mips_linked_madd_p): Likewise.
      	(mips_macc_chains_last_hilo): Likewise for this variable.
      	(mips_macc_chains_record): Likewise for param.
      	(vr4130_last_insn): Likewise for this variable.
      	(vr4130_swap_insns_p): Likewise for both params.
      	(mips_ls2_variable_issue): Likewise for param.
      	(mips_need_noat_wrapper_p): Likewise for param "insn".
      	(mips_expand_vselect): Add a new local rtx_insn * "insn", using it
      	in place of "x" after the emit_insn.
      	* config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
      	params from rtx to rtx_insn *.
      	* config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
      	(pa_combine_instructions): Introduce local "par" for result of
      	gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
      	to make_insn_raw.
      	(pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
      	* config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
      	(rl78_alloc_physical_registers_op1): Likewise.
      	(rl78_alloc_physical_registers_op2): Likewise.
      	(rl78_alloc_physical_registers_ro1): Likewise.
      	(rl78_alloc_physical_registers_cmp): Likewise.
      	(rl78_alloc_physical_registers_umul): Likewise.
      	(rl78_alloc_address_registers_macax): Likewise.
      	(rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
      	* config/s390/predicates.md (execute_operation): Likewise for
      	local "insn".
      	* config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
      	params.
      	* config/s390/s390.c (s390_safe_attr_type): Likewise for param.
      	(addr_generation_dependency_p): Likewise for param "insn".
      	(s390_agen_dep_p): Likewise for both params.
      	(s390_fpload_toreg): Likewise for param "insn".
      	* config/sh/sh-protos.h (sh_loop_align): Likewise for param.
      	* config/sh/sh.c (sh_loop_align): Likewise for param and local
      	"next".
      	* config/sh/sh.md (define_peephole2): Likewise for local "insn2".
      	* config/sh/sh_treg_combine.cc
      	(sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
      	and local "i".
      	(sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
      	* config/stormy16/stormy16.c (combine_bnp): Likewise for locals
      	"and_insn", "load", "shift".
      	* config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
      	"insn".
      	* final.c (final_scan_insn): Introduce local rtx_insn * "other"
      	for XEXP (note, 0) of the REG_CC_SETTER note.
      	(cleanup_subreg_operands): Strengthen param "insn" from rtx to
      	rtx_insn *, eliminating a checked cast made redundant by this.
      	* gcse.c (process_insert_insn): Strengthen local "insn" from rtx
      	to rtx_insn *.
      	* genattr.c (main): When writing out the prototype to
      	const_num_delay_slots, strengthen the param from rtx to
      	rtx_insn *.
      	* genattrtab.c (write_const_num_delay_slots): Likewise when
      	writing out the implementation of const_num_delay_slots.
      	* hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
      	"insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
      	* ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
      	favor of new rtx locals "src" and "set" and new local rtx_insn *
      	"insn" and "seq".
      	(noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
      	to rtx_insn *.
      	(noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
      	locals "cond", "if_then_else", "set" and new rtx_insn * locals
      	"insn" and "seq".
      	(noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
      	"last" from rtx to rtx_insn *.  Likewise for a local "tmp",
      	renaming to "tmp_insn".  Eliminate the other local rtx "tmp" from
      	the top-level scope, replacing with new more tightly-scoped rtx
      	locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
      	"new_insn", "copy_of_insn_b", and make local rtx "set" more
      	tightly-scoped.
      	* ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
      	rtx_insn *.
      	* ira.c (setup_prohibited_mode_move_regs): Likewise for local
      	"move_insn".
      	(ira_setup_alts): Likewise for param "insn".
      	* lra-constraints.c (emit_inc): Likewise for local "add_insn".
      	* lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
      	and an rtx_insn *.
      	(lra_emit_add): Eliminate top-level local rtx "insn" in favor of
      	new more-tightly scoped rtx locals "add3_insn", "insn",
      	"add2_insn" and rtx_insn * "move_insn".
      	* postreload-gcse.c (eliminate_partially_redundant_load): Add
      	checked cast on result of gen_move_insn when invoking
      	extract_insn.
      	* recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
      	rtx_insn *.
      	(verify_changes): Add a checked cast on "object" when invoking
      	insn_invalid_p.
      	(extract_insn_cached): Strengthen param "insn" from rtx to
      	rtx_insn *.
      	(extract_constrain_insn_cached): Likewise.
      	(extract_insn): Likewise.
      	* recog.h (insn_invalid_p): Likewise for param 1.
      	(recog_memoized): Likewise for param.
      	(extract_insn): Likewise.
      	(extract_constrain_insn_cached): Likewise.
      	(extract_insn_cached): Likewise.
      	* reload.c (can_reload_into): Likewise for local "test_insn".
      	* reload.h (cleanup_subreg_operands): Likewise for param.
      	* reload1.c (emit_insn_if_valid_for_reload): Rename param from
      	"insn" to "pat", reintroducing "insn" as an rtx_insn * on the
      	result of emit_insn.  Remove a checked cast made redundant by this
      	change.
      	* sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
      	rtx to rtx_insn *.
      	* sel-sched.c (get_reg_class): Likewise.
      
      From-SVN: r215087
      David Malcolm committed
  5. 08 Sep, 2014 1 commit
    • gcse.c's modify_mem_list is a list of insns · e26d1bb2
      gcc/ChangeLog:
      2014-09-08  David Malcolm  <dmalcolm@redhat.com>
      
      	* gcse.c (modify_mem_list): Strengthen this variable from
      	vec<rtx> * to vec<rtx_insn *> *.
      	(vec_rtx_heap): Strengthen this typedef from vec<rtx> to
      	vec<rtx_insn *>.
      	(load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
      	vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
      	(record_last_mem_set_info): Strengthen param "insn" from rtx to
      	rtx_insn *.
      	(record_last_set_info): Likewise for local "last_set_insn".
      
      From-SVN: r215027
      David Malcolm committed
  6. 28 Aug, 2014 1 commit
    • 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
  7. 27 Aug, 2014 1 commit
    • Use rtx_insn_list in various places · 3dc99c19
      gcc/
      2014-08-27  David Malcolm  <dmalcolm@redhat.com>
      
      	* rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
      	rtx_insn_list **.
      	(alloc_INSN_LIST): Strengthen return type from rtx to
      	rtx_insn_list *.
      	(copy_INSN_LIST): Likewise for return type and param.
      	(concat_INSN_LIST): Likewise for both params and return type.
      	(remove_free_INSN_LIST_elem): Strenghten first param from rtx to
      	rtx_insn *.  Strengthen second param from rtx * to rtx_insn_list **.
      	(remove_free_INSN_LIST_node): Strenghten return type from rtx to
      	rtx_insn *.  Strengthen param from rtx * to rtx_insn_list **.
      
      	* sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
      	"implicit_sets", "control_uses", "clobbers" from rtx to
      	rtx_insn_list *.
      	(struct deps_desc): Likewise for fields "pending_read_insns",
      	"pending_write_insns", "pending_jump_insns",
      	"last_pending_memory_flush", "last_function_call",
      	"last_function_call_may_noreturn", "sched_before_next_call",
      	"sched_before_next_jump".
      	(struct _haifa_deps_insn_data): Likewise for field "cond_deps".
      	(remove_from_deps): Strengthen second param from rtx to rtx_insn *.
      
      	* gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
      	from rtx to rtx_insn_list *.
      	(ldst_entry): Replace use of NULL_RTX with NULL when dealing with
      	rtx_insn_list *.
      
      	* haifa-sched.c (insn_queue): Strengthen this variable from rtx *
      	to rtx_insn_list **.
      	(dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
      	rtx_insn_list *.
      	(queue_insn): Likewise for local "link".
      	(struct haifa_saved_data): Strengthen field "insn_queue" from
      	rtx * to rtx_insn_list **.
      	(save_backtrack_point): Update allocation of save->insn_queue to
      	reflect the strengthening of elements from rtx to rtx_insn_list *.
      	(queue_to_ready): Strengthen local "link" from rtx to
      	rtx_insn_list *; use methods "next" and "insn" when traversing the
      	list.
      	(early_queue_to_ready): Likewise for locals "link", "next_link",
      	"prev_link".
      	(schedule_block): Update allocation of insn_queue to reflect the
      	strengthening of elements from rtx to rtx_insn_list *.  Strengthen
      	local "link" from rtx to rtx_insn_list *, and use methods when
      	working it.
      	(add_to_speculative_block): Strengthen locals "twins" and
      	"next_node" from rtx to rtx_insn_list *, and use methods when
      	working with them.  Strengthen local "twin" from rtx to
      	rtx_insn *, eliminating a checked cast.
      	(fix_recovery_deps): Strengthen locals "ready_list" and "link"
      	from rtx to rtx_insn_list *, and use methods when working with
      	them.
      
      	* lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
      	from rtx to rtx_insn_list *, adding a checked cast.
      	(free_INSN_LIST_list): Strengthen param "listp" from rtx * to
      	rtx_insn_list **.
      	(copy_INSN_LIST): Strengthen return type and locals "new_queue",
      	"newlink" from rtx to rtx_insn_list *.  Strengthen local
      	"pqueue" from rtx * to rtx_insn_list **.  Strengthen local "x"
      	from rtx to rtx_insn *.
      	(concat_INSN_LIST): Strengthen return type and local "new_rtx",
      	from rtx to rtx_insn_list *.  Use methods of the latter class.
      	(remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
      	rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
      	(remove_free_INSN_LIST_node): Strengthen return type and local
      	"elem" from rtx to rtx_insn *.  Strenghten param "listp" from
      	rtx * to rtx_insn_list **.  Strengthen local "node" from rtx to
      	rtx_insn_list *, using "insn" method.
      
      	* sched-deps.c (add_dependence_list):  Strengthen param "list"
      	from rtx to rtx_insn_list *, and use methods when working with it.
      	(add_dependence_list_and_free):  Strengthen param "listp" from
      	rtx * to rtx_insn_list **.
      	(remove_from_dependence_list): Strenghten param "listp" from rtx *
      	to rtx_insn_list **, and use methods when working with *listp.
      	(remove_from_both_dependence_lists): Strengthen param "listp" from
      	rtx * to rtx_insn_list **
      	(add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
      	to rtx_insn_list **.  Eliminate local "link", in favor of two new
      	locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
      	respectively.
      	(deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
      	by introducing local "cond_deps".
      	(remove_from_deps): Strengthen param "insn" from rtx to
      	rtx_insn *.
      
      	* sched-rgn.c (concat_insn_mem_list): Strengthen param
      	"copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
      	Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
      	Use methods of rtx_insn_list.
      
      	* store-motion.c (struct st_expr): Strengthen fields
      	"antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
      	(st_expr_entry): Replace NULL_RTX with NULL when dealing with
      	rtx_insn_list *.
      	(find_moveable_store): Split out "tmp" into multiple more-tightly
      	scoped locals.  Use methods of rtx_insn_list *.
      	(compute_store_table): Strengthen local "tmp" from rtx to
      	rtx_insn *.  Use methods of rtx_insn_list *.
      
      From-SVN: r214590
      David Malcolm committed
  8. 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
  9. 22 Aug, 2014 1 commit
    • gcse.c: Use rtx_insn · cf92a178
      gcc/
      	* gcse.c (struct occr): Strengthen field "insn" from rtx to
      	rtx_insn *.
      	(test_insn): Likewise for this global.
      	(oprs_unchanged_p): Strengthen param "insn" from const_rtx to
      	const rtx_insn *.
      	(oprs_anticipatable_p): Likewise.
      	(oprs_available_p): Likewise.
      	(insert_expr_in_table): Strengthen param "insn" from  rtx to
      	rtx_insn *.
      	(hash_scan_set): Likewise.
      	(hash_scan_clobber): Likewise.
      	(hash_scan_call): Likewise.
      	(hash_scan_insn): Likewise.
      	(compute_hash_table_work): Likewise for local "insn".
      	(process_insert_insn): Likewise for return type and local "pat".
      	(insert_insn_end_basic_block): Likewise for locals "new_insn",
      	"pat", "pat_end", "maybe_cc0_setter".
      	(pre_edge_insert): Likewise for local "insn".
      	(pre_insert_copy_insn): Likewise for param "insn".
      	(pre_insert_copies): Likewise for local "insn".
      	(struct set_data): Likewise for field "insn".
      	(single_set_gcse): Likewise for param "insn".
      	(gcse_emit_move_after): Likewise.
      	(pre_delete): Likewise for local "insn".
      	(update_bb_reg_pressure): Likewise for param "from" and local
      	"insn".
      	(should_hoist_expr_to_dom): Likewise for param "from".
      	(hoist_code): Likewise for local "insn".
      	(get_pressure_class_and_nregs): Likewise for param "insn".
      	(calculate_bb_reg_pressure): Likewise for local "insn".
      	(compute_ld_motion_mems): Likewise.
      
      From-SVN: r214331
      David Malcolm committed
  10. 19 Aug, 2014 1 commit
    • Split NEXT_INSN/PREV_INSN into lvalue and rvalue forms · 0f82e5c9
      /
      2014-08-19  David Malcolm  <dmalcolm@redhat.com>
      
      	* rtx-classes-status.txt: Add SET_NEXT_INSN, SET_PREV_INSN.
      
      gcc/
      2014-08-19  David Malcolm  <dmalcolm@redhat.com>
      
      	* rtl.h (PREV_INSN): Split macro in two: the existing one,
      	for rvalues, and...
      	(SET_PREV_INSN): New macro, for use as an lvalue.
      	(NEXT_INSN, SET_NEXT_INSN): Likewise.
      
      	* caller-save.c (save_call_clobbered_regs): Convert lvalue use of
      	PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
      	* cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
      	(fixup_abnormal_edges): Likewise.
      	(unlink_insn_chain): Likewise.
      	(fixup_reorder_chain): Likewise.
      	(cfg_layout_delete_block): Likewise.
      	(cfg_layout_merge_blocks): Likewise.
      	* combine.c (update_cfg_for_uncondjump): Likewise.
      	* emit-rtl.c (link_insn_into_chain): Likewise.
      	(remove_insn): Likewise.
      	(delete_insns_since): Likewise.
      	(reorder_insns_nobb): Likewise.
      	(emit_insn_after_1): Likewise.
      	* final.c (rest_of_clean_state): Likewise.
      	(final_scan_insn): Likewise.
      	* gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
      	* haifa-sched.c (concat_note_lists): Likewise.
      	(remove_notes): Likewise.
      	(restore_other_notes): Likewise.
      	(move_insn): Likewise.
      	(unlink_bb_notes): Likewise.
      	(restore_bb_notes): Likewise.
      	* jump.c (delete_for_peephole): Likewise.
      	* optabs.c (emit_libcall_block_1): Likewise.
      	* reorg.c (emit_delay_sequence): Likewise.
      	(fill_simple_delay_slots): Likewise.
      	* sel-sched-ir.c (sel_move_insn): Likewise.
      	(sel_remove_insn): Likewise.
      	(get_bb_note_from_pool): Likewise.
      	* sel-sched.c (move_nop_to_previous_block): Likewise.
      
      	* config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
      	* config/c6x/c6x.c (gen_one_bundle): Likewise.
      	(c6x_gen_bundles): Likewise.
      	(hwloop_optimize): Likewise.
      	* config/frv/frv.c (frv_function_prologue): Likewise.
      	(frv_register_nop): Likewise.
      	* config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
      	(ia64_reorg): Likewise.
      	* config/mep/mep.c (mep_reorg_addcombine): Likewise.
      	(mep_make_bundle): Likewise.
      	(mep_bundle_insns): Likewise.
      	* config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
      	* config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
      	* config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
      
      From-SVN: r214128
      David Malcolm committed
  11. 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
  12. 24 Jun, 2014 1 commit
    • Remove a layer of indirection from hash_table · c203e8a7
      gcc/
      
      	* hash-table.h: Remove a layer of indirection from hash_table so that
      	it contains the hash table's data instead of a pointer to the data.
      	* alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
      	config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
      	config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
      	data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
      	fold-const.c, gcse.c, ggc-common.c,
      	gimple-ssa-strength-reduction.c, gimplify.c,
      	graphite-clast-to-gimple.c, graphite-dependences.c,
      	graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
      	ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
      	loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
      	lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
      	postreload-gcse.c, sese.c, statistics.c, store-motion.c,
      	trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
      	tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
      	tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
      	tree-ssa-live.c, tree-ssa-loop-im.c,
      	tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
      	tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
      	tree-ssa-structalias.c, tree-ssa-tail-merge.c,
      	tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
      tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
      tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
      vtable-verify.c, vtable-verify.h: Adjust.
      
      gcc/c/
      
      	* c-decl.c: Adjust.
      
      gcc/cp/
      
      	* class.c, semantics.c, tree.c, vtable-class-hierarchy.c:
      	Adjust.
      
      gcc/java/
      
      	* jcf-io.c: Adjust.
      
      gcc/lto/
      
      	* lto.c: Adjust.
      
      gcc/objc/
      
      	* objc-act.c: Adjust.
      
      From-SVN: r211936
      Trevor Saunders committed
  13. 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
  14. 07 Jun, 2014 1 commit
  15. 06 May, 2014 1 commit
    • 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
  16. 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
  17. 04 Apr, 2014 1 commit
  18. 12 Feb, 2014 1 commit
  19. 02 Jan, 2014 1 commit
  20. 09 Dec, 2013 4 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 FOR_EACH_BB macro. · 11cd3bed
      gcc/
      	* basic-block.h (FOR_EACH_BB): Eliminate macro.
      
      	* asan.c (transform_statements, execute_sanopt): Eliminate
      	use of FOR_EACH_BB in favor of FOR_EACH_BB_FN, to make use of cfun
      	explicit.
      	* auto-inc-dec.c (rest_of_handle_auto_inc_dec): Likewise.
      	* bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges,
      	set_edge_can_fallthru_flag, fix_up_fall_thru_edges,
      	fix_crossing_unconditional_branches, add_reg_crossing_jump_notes,
      	insert_section_boundary_note, rest_of_handle_reorder_blocks,
      	duplicate_computed_gotos): Likewise.
      	* cfg.c (clear_edges, compact_blocks, brief_dump_cfg): Likewise.
      	* cfganal.c (find_unreachable_blocks, add_noreturn_fake_exit_edges,
      	compute_dominance_frontiers_1, single_pred_before_succ_order): Likewise.
      	* cfgbuild.c (find_many_sub_basic_blocks): Likewise.
      	* cfgcleanup.c (try_optimize_cfg, delete_dead_jumptables): Likewise.
      	* cfgexpand.c (add_scope_conflicts, discover_nonconstant_array_refs):
      	Likewise.
      	* cfgloop.c (flow_loops_cfg_dump, get_loop_body, record_loop_exits,
      	verify_loop_structure): Likewise.
      	* cfgloopanal.c (mark_loop_exit_edges): Likewise.
      	* cfgrtl.c (compute_bb_for_insn, find_partition_fixes,
      	verify_hot_cold_block_grouping, purge_all_dead_edges,
      	fixup_abnormal_edges, record_effective_endpoints,
      	outof_cfg_layout_mode, fixup_reorder_chain, force_one_exit_fallthru,
      	break_superblocks): Likewise.
      	* cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges,
      	cgraph_rebuild_references): Likewise.
      	* combine-stack-adj.c (combine_stack_adjustments): Likewise.
      	* combine.c (delete_noop_moves, create_log_links,
      	combine_instructions): Likewise.
      	* config/arm/arm.c (thumb1_reorg, thumb2_reorg): Likewise.
      	* config/bfin/bfin.c (bfin_gen_bundles, reorder_var_tracking_notes):
      	Likewise.
      	* config/c6x/c6x.c (c6x_gen_bundles, conditionalize_after_sched,
      	c6x_reorg): Likewise.
      	* config/epiphany/resolve-sw-modes.c (resolve_sw_modes): Likewise.
      	* config/frv/frv.c (frv_optimize_membar): Likewise.
      	* config/i386/i386.c (ix86_finalize_stack_realign_flags): Likewise.
      	* config/ia64/ia64.c (ia64_reorg): Likewise.
      	* config/mips/mips.c (mips_annotate_pic_calls): Likewise.
      	* config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
      	* config/rs6000/rs6000.c (rs6000_alloc_sdmode_stack_slot): Likewise.
      	* config/s390/s390.c (s390_regs_ever_clobbered): Likewise.
      	* config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Likewise.
      	* config/spu/spu.c (spu_machine_dependent_reorg): Likewise.
      	* config/tilegx/tilegx.c (tilegx_gen_bundles,
      	reorder_var_tracking_notes): Likewise.
      	* config/tilepro/tilepro.c (tilepro_gen_bundles,
      	reorder_var_tracking_notes): Likewise.
      	* coverage.c (coverage_compute_cfg_checksum): Likewise.
      	* cprop.c (compute_hash_table_work, compute_cprop_data,
      	local_cprop_pass, find_implicit_sets): Likewise.
      	* cse.c (cse_condition_code_reg): Likewise.
      	* dce.c (prescan_insns_for_dce): Likewise.
      	* df-core.c (df_compact_blocks): Likewise.
      	* df-problems.c (df_word_lr_alloc): Likewise.
      	* df-scan.c (df_scan_start_dump, df_scan_blocks, df_insn_rescan_all,
      	df_update_entry_exit_and_calls): Likewise.
      	* dominance.c (calculate_dominance_info, verify_dominators,
      	debug_dominance_info): Likewise.
      	* dse.c (dse_step5_nospill): Likewise.
      	* except.c (finish_eh_generation): Likewise.
      	* final.c (compute_alignments): Likewise.
      	* function.c (thread_prologue_and_epilogue_insns,
      	rest_of_match_asm_constraints): Likewise.
      	* gcse.c (compute_hash_table_work, prune_expressions,
      	compute_pre_data, compute_code_hoist_vbeinout, hoist_code,
      	calculate_bb_reg_pressure, compute_ld_motion_mems): Likewise.
      	* gimple-iterator.c (gsi_commit_edge_inserts): Likewise.
      	* gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour,
      	find_explicit_erroneous_behaviour): Likewise.
      	* graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa,
      	rewrite_cross_bb_scalar_deps_out_of_ssa): Likewise.
      	* haifa-sched.c (haifa_sched_init): Likewise.
      	* hw-doloop.c (discover_loops, set_bb_indices, reorder_loops):
      	Likewise.
      	* ifcvt.c (if_convert): Likewise.
      	* init-regs.c (initialize_uninitialized_regs): Likewise.
      	* ipa-prop.c (ipcp_transform_function): Likewise.
      	* ipa-pure-const.c (analyze_function): Likewise.
      	* ipa-split.c (find_split_points, execute_split_functions): Likewise.
      	* ira-build.c (form_loop_tree): Likewise.
      	* ira-costs.c (find_costs_and_classes): Likewise.
      	* ira-emit.c (emit_moves, add_ranges_and_copies, ira_emit): Likewise.
      	* ira.c (decrease_live_ranges_number, compute_regs_asm_clobbered,
      	mark_elimination, update_equiv_regs, find_moveable_pseudos,
      	split_live_ranges_for_shrink_wrap, allocate_initial_values): Likewise.
      	* jump.c (mark_all_labels): Likewise.
      	* lcm.c (compute_laterin, compute_insert_delete, compute_available,
      	compute_nearerout, compute_rev_insert_delete): Likewise.
      	* loop-init.c (fix_loop_structure): Likewise.
      	* loop-invariant.c (calculate_loop_reg_pressure): Likewise.
      	* lower-subreg.c (decompose_multiword_subregs,
      	decompose_multiword_subregs): Likewise.
      	* lra-assigns.c (assign_by_spills): Likewise.
      	* lra-coalesce.c (lra_coalesce): Likewise.
      	* lra-constraints.c (lra_inheritance, remove_inheritance_pseudos):
      	Likewise.
      	* lra-eliminations.c (lra_init_elimination): Likewise.
      	* lra-spills.c (assign_spill_hard_regs, spill_pseudos,
      	lra_final_code_change): Likewise.
      	* lra.c (remove_scratches, check_rtl, has_nonexceptional_receiver,
      	update_inc_notes): Likewise.
      	* mcf.c (adjust_cfg_counts): Likewise.
      	* mode-switching.c (optimize_mode_switching): Likewise.
      	* modulo-sched.c (rest_of_handle_sms): Likewise.
      	* omp-low.c (optimize_omp_library_calls, expand_omp_taskreg,
      	expand_omp_target): Likewise.
      	* postreload-gcse.c (alloc_mem, compute_hash_table): Likewise.
      	* postreload.c (reload_cse_regs_1): Likewise.
      	* predict.c (strip_predict_hints, tree_bb_level_predictions,
      	tree_estimate_probability, expensive_function_p,
      	estimate_bb_frequencies, compute_function_frequency): Likewise.
      	* profile.c (is_inconsistent, compute_branch_probabilities,
      	branch_prob): Likewise.
      	* ree.c (find_removable_extensions): Likewise.
      	* reg-stack.c (compensate_edges, convert_regs, reg_to_stack): Likewise.
      	* regcprop.c (copyprop_hardreg_forward): Likewise.
      	* reginfo.c (init_subregs_of_mode): Likewise.
      	* regrename.c (regrename_analyze): Likewise.
      	* regstat.c (regstat_compute_ri, regstat_compute_calls_crossed):
      	Likewise.
      	* reload1.c (has_nonexceptional_receiver, reload,
      	calculate_elim_costs_all_insns): Likewise.
      	* resource.c (init_resource_info, free_resource_info): Likewise.
      	* sched-ebb.c (schedule_ebbs): Likewise.
      	* sched-rgn.c (is_cfg_nonregular, find_single_block_region,
      	haifa_find_rgns, sched_rgn_local_init): Likewise.
      	* sel-sched-dump.c (sel_dump_cfg_2): Likewise.
      	* sel-sched-ir.c (init_lv_sets, free_lv_sets,
      	make_regions_from_the_rest): Likewise.
      	* sese.c (build_sese_loop_nests, sese_build_liveouts): Likewise.
      	* stack-ptr-mod.c (notice_stack_pointer_modification): Likewise.
      	* store-motion.c (compute_store_table, build_store_vectors,
      	one_store_motion_pass): Likewise.
      	* tracer.c (tail_duplicate): Likewise.
      	* trans-mem.c (compute_transaction_bits): Likewise.
      	* tree-call-cdce.c (tree_call_cdce): Likewise.
      	* tree-cfg.c (replace_loop_annotate, factor_computed_gotos,
      	fold_cond_expr_cond, make_edges, assign_discriminators,
      	make_abnormal_goto_edges, cleanup_dead_labels, group_case_labels,
      	dump_cfg_stats, gimple_verify_flow_info, print_loop,
      	execute_fixup_cfg): Likewise.
      	* tree-cfgcleanup.c (cleanup_tree_cfg_1, merge_phi_nodes): Likewise.
      	* tree-complex.c (init_dont_simulate_again, tree_lower_complex):
      	Likewise.
      	* tree-dfa.c (collect_dfa_stats, dump_enumerated_decls): Likewise.
      	* tree-eh.c (execute_lower_resx, execute_lower_eh_dispatch,
      	mark_reachable_handlers): Likewise.
      	* tree-emutls.c (lower_emutls_function_body): Likewise.
      	* tree-if-conv.c (main_tree_if_conversion): Likewise.
      	* tree-inline.c (optimize_inline_calls): Likewise.
      	* tree-into-ssa.c (rewrite_into_ssa, update_ssa): Likewise.
      	* tree-nrv.c (tree_nrv, execute_return_slot_opt): Likewise.
      	* tree-object-size.c (compute_object_sizes): Likewise.
      	* tree-outof-ssa.c (eliminate_useless_phis, rewrite_trees,
      	insert_backedge_copies, tree_profiling): Likewise.
      	* tree-scalar-evolution.c (scev_const_prop): Likewise.
      	* tree-sra.c (scan_function, sra_modify_function_body,
      	propagate_dereference_distances, ipa_sra_modify_function_body,
      	convert_callers): Likewise.
      	* tree-ssa-ccp.c (ccp_initialize, execute_fold_all_builtins): Likewise.
      	* tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
      	create_outofssa_var_map, coalesce_partitions): Likewise.
      	* tree-ssa-copy.c (init_copy_prop): Likewise.
      	* tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
      	* tree-ssa-dce.c (find_obviously_necessary_stmts,
      	eliminate_unnecessary_stmts): Likewise.
      	* tree-ssa-dom.c (free_all_edge_infos, tree_ssa_dominator_optimize):
      	Likewise.
      	* tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
      	* tree-ssa-live.c (clear_unused_block_pointer, remove_unused_locals,
      	new_tree_live_info, calculate_live_on_exit, dump_live_info,
      	analyze_memory_references, fill_always_executed_in,
      	tree_ssa_lim_finalize): Likewise.
      	* tree-ssa-loop-manip.c (find_uses_to_rename, verify_loop_closed_ssa):
      	Likewise.
      	* tree-ssa-math-opts.c (execute_cse_reciprocals, execute_cse_sincos,
      	execute_optimize_bswap, execute_optimize_widening_mul): Likewise.
      	* tree-ssa-propagate.c (substitute_and_fold): Likewise.
      	* tree-ssa-structalias.c (compute_points_to_sets): Likewise.
      	* tree-ssa-tail-merge.c (find_same_succ, reset_cluster_vectors):
      	Likewise.
      	* tree-ssa-ter.c (find_replaceable_exprs): Likewise.
      	* tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
      	* tree-ssa-uncprop.c (associate_equivalences_with_edges,
      	tree_ssa_uncprop): Likewise.
      	* tree-ssa-uninit.c (warn_uninitialized_vars,
      	execute_late_warn_uninitialized): Likewise.
      	* tree-ssa.c (verify_ssa, execute_update_addresses_taken): Likewise.
      	* tree-stdarg.c (check_all_va_list_escapes, execute_optimize_stdarg):
      	Likewise.
      	* tree-switch-conversion.c (do_switchconv): Likewise.
      	* tree-vect-generic.c (expand_vector_operations): Likewise.
      	* tree-vectorizer.c (adjust_simduid_builtins, note_simd_array_uses,
      	execute_vect_slp): Likewise.
      	* tree-vrp.c (check_all_array_refs, remove_range_assertions,
      	vrp_initialize, identify_jump_threads, instrument_memory_accesses):
      	Likewise.
      	* ubsan.c (ubsan_pass): Likewise.
      	* value-prof.c (verify_histograms, gimple_value_profile_transformations,
      	gimple_find_values_to_profile): Likewise.
      	* var-tracking.c (vt_find_locations, dump_dataflow_sets, vt_emit_notes,
      	vt_initialize, delete_debug_insns, vt_finalize): Likewise.
      
      gcc/testsuite/
      	* g++.dg/plugin/selfassign.c (execute_warn_self_assign): Eliminate
      	use of FOR_EACH_BB in favor of FOR_EACH_BB_FN, to make use of cfun
      	explicit.
      	* gcc.dg/plugin/selfassign.c (execute_warn_self_assign): Likewise.
      
      From-SVN: r205828
      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
    • Eliminate BASIC_BLOCK macro. · 06e28de2
      gcc/
      	* basic-block.h (BASIC_BLOCK): Eliminate macro.
      
      	* alias.c (init_alias_analysis): Eliminate BASIC_BLOCK macro in
      	favor of uses of BASIC_BLOCK_FOR_FN, making uses of cfun explicit.
      	* bt-load.c (compute_defs_uses_and_gen, compute_out, link_btr_uses,
      	block_at_edge_of_live_range_p, migrate_btr_defs): Likewise.
      	* caller-save.c (insert_one_insn): Likewise.
      	* cfg.c (debug_bb, get_bb_original, get_bb_copy): Likewise.
      	* cfgexpand.c (add_scope_conflicts): Likewise.
      	* cfghooks.c (verify_flow_info): Likewise.
      	* cfgloop.c (flow_loops_find): Likewise.
      	* cfgrtl.c (rtl_flow_call_edges_add): Likewise.
      	* config/mips/mips.c (r10k_insert_cache_barriers): Likewise.
      	* config/s390/s390.c (s390_optimize_nonescaping_tx): Likewise.
      	* config/spu/spu.c (spu_machine_dependent_reorg): Likewise.
      	* cse.c (cse_main): Likewise.
      	* dce.c (fast_dce): Likewise.
      	* df-core.c (df_set_blocks, df_worklist_propagate_forward,
      	df_worklist_propagate_backward, df_worklist_dataflow_doublequeue,
      	df_bb_replace, df_dump_region): Likewise.
      	* df-problems.c (df_rd_bb_local_compute, df_lr_bb_local_compute,
      	df_live_bb_local_compute, df_chain_remove_problem)
      	df_chain_create_bb, df_word_lr_bb_local_compute, df_note_bb_compute,
      	df_md_bb_local_compute, df_md_local_compute,
      	df_md_transfer_function): Likewise.
      	* df-scan.c (df_scan_blocks, df_reorganize_refs_by_reg_by_insn,
      	df_reorganize_refs_by_insn, df_bb_refs_collect,
      	df_record_entry_block_defs, df_update_entry_block_defs,
      	df_record_exit_block_uses): Likewise.
      	* dominance.c (nearest_common_dominator_for_set): Likewise.
      	* gcse.c (hoist_code): Likewise.
      	* graph.c (draw_cfg_nodes_no_loops): Likewise.
      	* ipa-inline-analysis.c (param_change_prob,
      	estimate_function_body_sizes): Likewise.
      	* ipa-split.c (dominated_by_forbidden): Likewise.
      	* loop-unroll.c (apply_opt_in_copies): Likewise.
      	* lower-subreg.c (decompose_multiword_subregs): Likewise.
      	* lra-lives.c (lra_create_live_ranges): Likewise.
      	* predict.c (propagate_freq): Likewise.
      	* regrename.c (regrename_analyze): Likewise.
      	* regstat.c (regstat_bb_compute_ri,
      	regstat_bb_compute_calls_crossed): Likewise.
      	* resource.c (mark_target_live_regs): Likewise.
      	* sched-ebb.c (ebb_fix_recovery_cfg): Likewise.
      	* sched-int.h (EBB_FIRST_BB, EBB_LAST_BB): Likewise.
      	* sched-rgn.c (debug_region, dump_region_dot, too_large,
      	haifa_find_rgns, extend_rgns, compute_dom_prob_ps, update_live,
      	propagate_deps, sched_is_disabled_for_current_region_p): Likewise.
      	* sched-vis.c (debug_bb_n_slim): Likewise.
      	* sel-sched-ir.c (sel_finish_global_and_expr, verify_backedges,
      	purge_empty_blocks, sel_remove_loop_preheader): Likewise.
      	* sel-sched.c (remove_insns_that_need_bookkeeping)
      	(current_region_empty_p, sel_region_init,
      	simplify_changed_insns): Likewise.
      	* trans-mem.c (execute_tm_mark, execute_tm_edges,
      	tm_memopt_compute_antic, ipa_tm_scan_irr_function): Likewise.
      	* tree-cfg.c (make_edges, end_recording_case_labels,
      	label_to_block_fn, gimple_debug_bb, gimple_flow_call_edges_add,
      	remove_edge_and_dominated_blocks, remove_edge_and_dominated_blocks,
      	gimple_purge_all_dead_eh_edges,
      	gimple_purge_all_dead_abnormal_call_edges): Likewise.
      	* tree-cfgcleanup.c (fixup_noreturn_call,
      	split_bbs_on_noreturn_calls, cleanup_tree_cfg_1): Likewise.
      	* tree-inline.c (copy_cfg_body, fold_marked_statements): Likewise.
      	* tree-into-ssa.c (set_livein_block, prune_unused_phi_nodes,
      	insert_phi_nodes_for, insert_updated_phi_nodes_for): Likewise.
      	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
      	* tree-ssa-live.c (live_worklist): Likewise.
      	* tree-ssa-loop-manip.c (compute_live_loop_exits,
      	add_exit_phis_var, find_uses_to_rename, copy_phi_node_args): Likewise.
      	* tree-ssa-pre.c (compute_antic): Likewise.
      	* tree-ssa-reassoc.c (update_range_test, optimize_range_tests): Likewise.
      	* tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
      	* tree-ssa-tail-merge.c (same_succ_hash, same_succ_def::equal,
      	same_succ_flush_bbs, update_worklist, set_cluster,
      	same_phi_alternatives, find_clusters_1, apply_clusters,
      	update_debug_stmts): Likewise.
      	* tree-ssa-threadupdate.c (mark_threaded_blocks,
      	thread_through_all_blocks): Likewise.
      	* tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
      	* tree-vrp.c (find_assert_locations): Likewise.
      
      From-SVN: r205822
      David Malcolm committed
  21. 28 Nov, 2013 1 commit
    • re PR target/57293 (not needed frame pointers on IA-32 (performance regression?)) · 8d49e7ef
      2013-11-28  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR target/57293
      	* ira.h (ira_setup_eliminable_regset): Remove parameter.
      	* ira.c (ira_setup_eliminable_regset): Ditto.  Add
      	SUPPORTS_STACK_ALIGNMENT for crtl->stack_realign_needed.
      	Don't call lra_init_elimination.
      	(ira): Call ira_setup_eliminable_regset without arguments.
      	* loop-invariant.c (calculate_loop_reg_pressure): Remove argument
      	from ira_setup_eliminable_regset call.
      	* gcse.c (calculate_bb_reg_pressure): Ditto.
      	* haifa-sched.c (sched_init): Ditto.
      	* lra.h (lra_init_elimination): Remove the prototype.
      	* lra-int.h (lra_insn_recog_data): New member sp_offset.  Move
      	used_insn_alternative upper.
      	(lra_eliminate_regs_1): Add one more parameter.
      	(lra-eliminate): Ditto.
      	* lra.c (lra_invalidate_insn_data): Set sp_offset.
      	(setup_sp_offset): New.
      	(lra_process_new_insns): Call setup_sp_offset.
      	(lra): Add argument to lra_eliminate calls.
      	* lra-constraints.c (get_equiv_substitution): Rename to get_equiv.
      	(get_equiv_with_elimination): New.
      	(process_addr_reg): Call get_equiv_with_elimination instead of
      	get_equiv_substitution.
      	(equiv_address_substitution): Ditto.
      	(loc_equivalence_change_p): Ditto.
      	(loc_equivalence_callback, lra_constraints): Ditto.
      	(curr_insn_transform): Ditto.  Print the sp offset
      	(process_alt_operands): Prevent stack pointer reloads.
      	(lra_constraints): Remove one argument from lra_eliminate call.
      	Move it up.  Mark used hard regs bfore it.  Use
      	get_equiv_with_elimination instead of get_equiv_substitution.
      	* lra-eliminations.c (lra_eliminate_regs_1): Add parameter and
      	assert for param values combination.  Use sp offset.  Add argument
      	to lra_eliminate_regs_1 calls.
      	(lra_eliminate_regs): Add argument to lra_eliminate_regs_1 call.
      	(curr_sp_change): New static var.
      	(mark_not_eliminable): Add parameter.  Update curr_sp_change.
      	Don't prevent elimination to sp if we can calculate its change.
      	Pass the argument to mark_not_eliminable calls.
      	(eliminate_regs_in_insn): Add a parameter.  Use sp offset.  Add
      	argument to lra_eliminate_regs_1 call.
      	(update_reg_eliminate): Move calculation of hard regs for spill
      	lower.  Switch off lra_in_progress temporarily to generate regs
      	involved into elimination.
      	(lra_init_elimination): Rename to init_elimination.  Make it
      	static.  Set up insn sp offset, check the offsets at the end of
      	BBs.
      	(process_insn_for_elimination): Add parameter.  Pass its value to
      	eliminate_regs_in_insn.
      	(lra_eliminate): : Add parameter.  Pass its value to
      	process_insn_for_elimination.  Add assert for param values
      	combination.  Call init_elimination.  Don't update offsets in
      	equivalence substitutions.
      	* lra-spills.c (assign_mem_slot): Don't call lra_eliminate_regs_1
      	for created stack slot.
      	(remove_pseudos): Call lra_eliminate_regs_1 before changing memory
      	onto stack slot.
      
      2013-11-28  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR target/57293
      	* gcc.target/i386/pr57293.c: New.
      
      From-SVN: r205498
      Vladimir Makarov committed
  22. 19 Nov, 2013 3 commits
    • Eliminate ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR macros · fefa31b5
      gcc/
      
      	* basic-block.h (ENTRY_BLOCK_PTR_FOR_FUNCTION): Rename macro to...
      	(EXIT_BLOCK_PTR_FOR_FUNCTION): ...this.
      	(ENTRY_BLOCK_PTR_FOR_FN): Renamed macro to...
      	(EXIT_BLOCK_PTR_FOR_FN): ...this.
      	(ENTRY_BLOCK_PTR): Eliminate macro as work towards making uses of
      	cfun be explicit.
      	(EXIT_BLOCK_PTR): Likewise.
      	(FOR_ALL_BB): Rework for now to eliminate use of "ENTRY_BLOCK_PTR".
      	(FOR_ALL_BB_FN): Update for renaming of
      	"ENTRY_BLOCK_PTR_FOR_FUNCTION" to "ENTRY_BLOCK_PTR_FOR_FN".
      
      	* cfg.c (init_flow): Likewise.
      	(check_bb_profile): Likewise.
      	* cfganal.c (pre_and_rev_post_order_compute_fn): Likewise.
      	* cfgcleanup.c (walk_to_nondebug_insn): Likewise.
      	* cfghooks.c (account_profile_record): Likewise.
      	* cfgloop.c (init_loops_structure): Likewise.
      	* cgraphbuild.c (record_eh_tables): Likewise.
      	(compute_call_stmt_bb_frequency): Likewise.
      	* ipa-inline-analysis.c (compute_bb_predicates): Likewise.
      	* lto-streamer-in.c (input_cfg): Likewise.
      	* predict.c (maybe_hot_frequency_p): Likewise.
      	* tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
      	* tree-inline.c (initialize_cfun): Likewise.
      	(copy_cfg_body): Likewise.
      	(copy_body): Likewise.
      	(tree_function_versioning): Likewise.
      
      	* bb-reorder.c (add_labels_and_missing_jumps): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(duplicate_computed_gotos): Remove usage of EXIT_BLOCK_PTR macro.
      	(find_rarely_executed_basic_blocks_and_crossing_edges): Remove uses of
      	macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(connect_traces): Likewise.
      	(rest_of_handle_reorder_blocks): Remove usage of EXIT_BLOCK_PTR macro.
      	(bb_to_key): Remove usage of ENTRY_BLOCK_PTR macro.
      	(fix_crossing_conditional_branches): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	(find_traces_1_round): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(fix_up_fall_thru_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(find_traces): Remove usage of ENTRY_BLOCK_PTR macro.
      	(fix_up_crossing_landing_pad): Remove usage of EXIT_BLOCK_PTR macro.
      	(rotate_loop): Likewise.
      	* bt-load.c (migrate_btr_def): Remove usage of ENTRY_BLOCK_PTR macro.
      	* cfg.c (clear_aux_for_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(alloc_aux_for_edges): Likewise.
      	(clear_bb_flags): Remove usage of ENTRY_BLOCK_PTR macro.
      	(cached_make_edge): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(compact_blocks): Likewise.
      	(clear_edges): Likewise.
      	* cfganal.c (single_pred_before_succ_order): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(bitmap_union_of_succs): Remove usage of EXIT_BLOCK_PTR macro.
      	(bitmap_union_of_preds): Remove usage of ENTRY_BLOCK_PTR macro.
      	(bitmap_intersection_of_succs): Remove usage of EXIT_BLOCK_PTR macro.
      	(bitmap_intersection_of_preds): Remove usage of ENTRY_BLOCK_PTR macro.
      	(inverted_post_order_compute): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(compute_dominance_frontiers_1): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(post_order_compute): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(connect_infinite_loops_to_exit): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	(remove_fake_edges): Remove usage of ENTRY_BLOCK_PTR macro.
      	(add_noreturn_fake_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(find_pdom): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(remove_fake_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(verify_edge_list): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(print_edge_list): Likewise.
      	(create_edge_list): Likewise.
      	(find_unreachable_blocks): Remove usage of ENTRY_BLOCK_PTR macro.
      	(mark_dfs_back_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	* cfgbuild.c (find_bb_boundaries): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(find_many_sub_basic_blocks): Remove usage of EXIT_BLOCK_PTR macro.
      	(make_edges): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* cfgcleanup.c (delete_unreachable_blocks): Likewise.
      	(try_optimize_cfg): Likewise.
      	(try_head_merge_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(try_crossjump_to_edge): Remove usage of ENTRY_BLOCK_PTR macro.
      	(try_crossjump_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(merge_blocks_move): Remove usage of ENTRY_BLOCK_PTR macro.
      	(outgoing_edges_match): Remove usage of EXIT_BLOCK_PTR macro.
      	(try_forward_edges): Likewise.
      	(try_simplify_condjump): Likewise.
      	* cfgexpand.c (gimple_expand_cfg): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(construct_exit_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(construct_init_block): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(expand_gimple_basic_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(expand_gimple_tailcall): Likewise.
      	* cfghooks.c (can_duplicate_block_p): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(tidy_fallthru_edges): Likewise.
      	(verify_flow_info): Likewise.
      	* cfgloop.c (flow_bb_inside_loop_p): Likewise.
      	(num_loop_branches): Remove usage of EXIT_BLOCK_PTR macro.
      	(disambiguate_multiple_latches): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(get_loop_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(bb_loop_header_p): Remove usage of ENTRY_BLOCK_PTR macro.
      	(get_loop_body_in_bfs_order): Remove usage of EXIT_BLOCK_PTR macro.
      	(get_loop_body_in_dom_order): Likewise.
      	(get_loop_body): Likewise.
      	* cfgloopanal.c (mark_irreducible_loops): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* cfgloopmanip.c (create_preheader): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(remove_path): Remove usage of EXIT_BLOCK_PTR macro.
      	(fix_bb_placement): Likewise.
      	* cfgrtl.c (rtl_block_empty_p): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(rtl_can_remove_branch_p): Remove usage of EXIT_BLOCK_PTR macro.
      	(cfg_layout_split_edge): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(rtl_flow_call_edges_add): Remove usage of EXIT_BLOCK_PTR macro.
      	(cfg_layout_can_merge_blocks_p): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(cfg_layout_redirect_edge_and_branch): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(fixup_fallthru_exit_predecessor): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(fixup_reorder_chain): Likewise.
      	(relink_block_chain): Likewise.
      	(cfg_layout_delete_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(rtl_verify_bb_layout): Remove usage of ENTRY_BLOCK_PTR macro.
      	(cfg_layout_duplicate_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(force_one_exit_fallthru): Likewise.
      	(rtl_verify_fallthru): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(rtl_verify_edges): Likewise.
      	(commit_edge_insertions): Likewise.
      	(commit_one_edge_insertion): Likewise.
      	(rtl_split_edge): Likewise.
      	(force_nonfallthru_and_redirect): Likewise.
      	(outof_cfg_layout_mode): Remove usage of EXIT_BLOCK_PTR macro.
      	(skip_insns_after_block): Likewise.
      	(fixup_partition_crossing): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(purge_dead_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(rtl_can_merge_blocks): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(contains_no_active_insn_p): Likewise.
      	(emit_insn_at_entry): Remove usage of ENTRY_BLOCK_PTR macro.
      	(entry_of_function): Likewise.
      	(last_bb_in_partition): Remove usage of EXIT_BLOCK_PTR macro.
      	(fixup_new_cold_bb): Likewise.
      	(patch_jump_insn): Likewise.
      	(try_redirect_by_replacing_jump): Likewise.
      	(block_label): Likewise.
      	(could_fall_through): Likewise.
      	(can_fallthru): Likewise.
      	* cgraphbuild.c (cgraph_rebuild_references): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(rebuild_cgraph_edges): Likewise.
      	* cgraphunit.c (init_lowered_empty_function): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(expand_thunk): Remove usage of EXIT_BLOCK_PTR macro.
      	* combine.c (get_last_value): Remove usage of ENTRY_BLOCK_PTR macro.
      	(distribute_links): Remove usage of EXIT_BLOCK_PTR macro.
      	(get_last_value_validate): Remove usage of ENTRY_BLOCK_PTR macro.
      	(try_combine): Remove usage of EXIT_BLOCK_PTR macro.
      	(reg_num_sign_bit_copies_for_combine): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(reg_nonzero_bits_for_combine): Likewise.
      	(set_nonzero_bits_and_sign_copies): Likewise.
      	(combine_instructions): Likewise.
      	* cprop.c (one_cprop_pass): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(bypass_conditional_jumps): Likewise.
      	(bypass_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(find_implicit_sets): Likewise.
      	(cprop_jump): Likewise.
      	* cse.c (cse_cc_succs): Likewise.
      	(cse_find_path): Likewise.
      	* df-problems.c (df_lr_confluence_0): Likewise.
      	* df-scan.c (df_entry_block_defs_collect): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(df_exit_block_uses_collect): Remove usage of EXIT_BLOCK_PTR macro.
      	* dominance.c (iterate_fix_dominators): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(calc_idoms): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(determine_dominators_for_sons): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(calc_dfs_tree): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(prune_bbs_to_update_dominators): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(calc_dfs_tree_nonrec): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	* domwalk.c (cmp_bb_postorder): Likewise.
      	* dse.c (dse_step1): Remove usage of EXIT_BLOCK_PTR macro.
      	* except.c (finish_eh_generation): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(sjlj_emit_function_enter): Likewise.
      	* final.c (compute_alignments): Likewise.
      	* function.c (thread_prologue_and_epilogue_insns): Remove uses of
      	macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(reposition_prologue_and_epilogue_notes): Remove usage of
      	EXIT_BLOCK_PTR macro.
      	(convert_jumps_to_returns): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(regno_clobbered_at_setjmp): Remove usage of ENTRY_BLOCK_PTR macro.
      	(next_block_for_reg): Remove usage of EXIT_BLOCK_PTR macro.
      	* gcse.c (hoist_code): Remove usage of ENTRY_BLOCK_PTR macro.
      	(update_bb_reg_pressure): Remove usage of EXIT_BLOCK_PTR macro.
      	(compute_code_hoist_vbeinout): Likewise.
      	(should_hoist_expr_to_dom): Remove usage of ENTRY_BLOCK_PTR macro.
      	(pre_expr_reaches_here_p_work): Likewise.
      	* gimple-iterator.c (gsi_commit_edge_inserts): Likewise.
      	(gimple_find_edge_insert_loc): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	* gimple-ssa-strength-reduction.c (slsr_process_phi): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* graph.c (draw_cfg_nodes_for_loop): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	* graphite-clast-to-gimple.c (translate_clast_user): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* graphite-scop-detection.c (build_scops): Likewise.
      	(create_sese_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(scopdet_basic_block_info): Remove usage of ENTRY_BLOCK_PTR macro.
      	* haifa-sched.c (restore_bb_notes): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	(unlink_bb_notes): Likewise.
      	(create_check_block_twin): Likewise.
      	(init_before_recovery): Likewise.
      	(sched_extend_bb): Likewise.
      	(priority): Likewise.
      	* hw-doloop.c (reorder_loops): Likewise.
      	(discover_loop): Likewise.
      	* ifcvt.c (dead_or_predicable): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(find_if_case_1): Remove usage of EXIT_BLOCK_PTR macro.
      	(block_has_only_trap): Likewise.
      	(cond_exec_find_if_block): Likewise.
      	(merge_if_block): Likewise.
      	* ipa-inline-analysis.c (param_change_prob): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(record_modified): Likewise.
      	* ipa-pure-const.c (execute_warn_function_noreturn): Remove usage of
      	EXIT_BLOCK_PTR macro.
      	(local_pure_const): Likewise.
      	* ipa-split.c (split_function): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(find_split_points): Likewise.
      	(consider_split): Likewise.
      	(find_return_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(verify_non_ssa_vars): Remove usage of ENTRY_BLOCK_PTR macro.
      	* ira-build.c (ira_loop_tree_body_rev_postorder): Likewise.
      	* ira-color.c (print_loop_title): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	* ira-emit.c (entered_from_non_parent_p): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(ira_emit): Remove usage of EXIT_BLOCK_PTR macro.
      	* ira-int.h (ira_assert): Remove usage of ENTRY_BLOCK_PTR macro.
      	* ira.c (split_live_ranges_for_shrink_wrap): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* lcm.c (compute_rev_insert_delete): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(compute_nearerout): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(compute_farthest): Likewise.
      	(compute_available): Likewise.
      	(compute_insert_delete): Remove usage of EXIT_BLOCK_PTR macro.
      	(compute_laterin): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(compute_earliest): Likewise.
      	(compute_antinout_edge): Likewise.
      	* loop-iv.c (simplify_using_initial_values): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* loop-unswitch.c (unswitch_loop): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	* lra-assigns.c (find_hard_regno_for): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	* lra-constraints.c (lra_inheritance): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	* lra-lives.c (lra_create_live_ranges): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* lra.c (has_nonexceptional_receiver): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	* lto-streamer-in.c (input_function): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	* lto-streamer-out.c (output_cfg): Likewise.
      	* mcf.c (adjust_cfg_counts): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(create_fixup_graph): Remove usage of ENTRY_BLOCK_PTR macro.
      	* mode-switching.c (optimize_mode_switching): Likewise.
      	(create_pre_exit): Remove usage of EXIT_BLOCK_PTR macro.
      	* modulo-sched.c (rest_of_handle_sms): Likewise.
      	(canon_loop): Likewise.
      	* omp-low.c (build_omp_regions): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	* postreload-gcse.c (eliminate_partially_redundant_loads): Remove uses
      	of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* predict.c (rebuild_frequencies): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(propagate_freq): Remove usage of EXIT_BLOCK_PTR macro.
      	(estimate_bb_frequencies): Remove usage of ENTRY_BLOCK_PTR macro.
      	(tree_estimate_probability_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(expensive_function_p): Remove usage of ENTRY_BLOCK_PTR macro.
      	(tree_bb_level_predictions): Remove usage of EXIT_BLOCK_PTR macro.
      	(counts_to_freqs): Remove usage of ENTRY_BLOCK_PTR macro.
      	(apply_return_prediction): Remove usage of EXIT_BLOCK_PTR macro.
      	(estimate_loops): Remove usage of ENTRY_BLOCK_PTR macro.
      	(gimple_predict_edge): Likewise.
      	(probably_never_executed): Likewise.
      	* profile.c (find_spanning_tree): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(branch_prob): Likewise.
      	(compute_branch_probabilities): Likewise.
      	(compute_frequency_overlap): Remove usage of ENTRY_BLOCK_PTR macro.
      	(is_inconsistent): Remove usage of EXIT_BLOCK_PTR macro.
      	(read_profile_edge_counts): Remove usage of ENTRY_BLOCK_PTR macro.
      	(set_bb_counts): Likewise.
      	(correct_negative_edge_counts): Likewise.
      	(get_exec_counts): Likewise.
      	(instrument_values): Likewise.
      	(instrument_edges): Likewise.
      	* reg-stack.c (convert_regs): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(compensate_edges): Remove usage of ENTRY_BLOCK_PTR macro.
      	(convert_regs_exit): Remove usage of EXIT_BLOCK_PTR macro.
      	(convert_regs_entry): Remove usage of ENTRY_BLOCK_PTR macro.
      	(reg_to_stack): Likewise.
      	* regs.h (REG_N_SETS): Likewise.
      	* reload.c (find_dummy_reload): Likewise.
      	(combine_reloads): Likewise.
      	(push_reload): Likewise.
      	* reload1.c (has_nonexceptional_receiver): Remove usage of
      	EXIT_BLOCK_PTR macro.
      	* resource.c (mark_target_live_regs): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(find_basic_block): Likewise.
      	* sched-ebb.c (ebb_add_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(schedule_ebbs): Likewise.
      	* sched-int.h (sel_sched_p): Likewise.
      	* sched-rgn.c (compute_dom_prob_ps): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(rgn_add_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(haifa_find_rgns): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(propagate_deps): Remove usage of EXIT_BLOCK_PTR macro.
      	(extend_rgns): Likewise.
      	(find_single_block_region): Likewise.
      	* sel-sched-ir.c (sel_remove_loop_preheader): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(setup_nop_and_exit_insns): Remove usage of EXIT_BLOCK_PTR macro.
      	(sel_create_recovery_block): Likewise.
      	(bb_ends_ebb_p): Likewise.
      	(sel_bb_end): Likewise.
      	(sel_bb_head): Likewise.
      	(free_lv_sets): Likewise.
      	(init_lv_sets): Likewise.
      	(tidy_control_flow): Likewise.
      	(maybe_tidy_empty_bb): Likewise.
      	* sel-sched-ir.h (_succ_iter_cond): Likewise.
      	(_succ_iter_start): Likewise.
      	(sel_bb_empty_or_nop_p): Likewise.
      	(get_loop_exit_edges_unique_dests): Likewise.
      	(inner_loop_header_p): Likewise.
      	* sel-sched.c (create_block_for_bookkeeping): Likewise.
      	(find_block_for_bookkeeping): Likewise.
      	* store-motion.c (remove_reachable_equiv_notes): Likewise.
      	(insert_store): Likewise.
      	* trans-mem.c (ipa_tm_transform_clone): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(tm_memopt_compute_available): Remove usage of EXIT_BLOCK_PTR macro.
      	(ipa_tm_scan_irr_function): Remove usage of ENTRY_BLOCK_PTR macro.
      	(gate_tm_init): Likewise.
      	(tm_region_init): Likewise.
      	* tree-cfg.c (execute_fixup_cfg): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(execute_warn_function_return): Remove usage of EXIT_BLOCK_PTR macro.
      	(split_critical_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(print_loops): Remove usage of ENTRY_BLOCK_PTR macro.
      	(move_sese_region_to_fn): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(gimple_redirect_edge_and_branch): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(gimple_verify_flow_info): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(remove_edge_and_dominated_blocks): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	(make_edges): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(gimple_flow_call_edges_add): Remove usage of EXIT_BLOCK_PTR macro.
      	(make_blocks): Remove usage of ENTRY_BLOCK_PTR macro.
      	(build_gimple_cfg): Likewise.
      	(gimple_duplicate_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(gimple_can_merge_blocks_p): Likewise.
      	* tree-cfgcleanup.c (tree_forwarder_block_p): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* tree-complex.c (update_parameter_components): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* tree-if-conv.c (get_loop_body_in_if_conv_order): Remove usage of
      	EXIT_BLOCK_PTR macro.
      	* tree-inline.c (tree_function_versioning): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(delete_unreachable_blocks_update_callgraph): Likewise.
      	(initialize_cfun): Likewise.
      	(copy_cfg_body): Remove usage of ENTRY_BLOCK_PTR macro.
      	(copy_edges_for_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(remap_ssa_name): Remove usage of ENTRY_BLOCK_PTR macro.
      	* tree-into-ssa.c (update_ssa): Likewise.
      	(maybe_register_def): Remove usage of EXIT_BLOCK_PTR macro.
      	(insert_updated_phi_nodes_for): Remove usage of ENTRY_BLOCK_PTR macro.
      	(rewrite_into_ssa): Likewise.
      	(rewrite_debug_stmt_uses): Likewise.
      	* tree-outof-ssa.c (expand_phi_nodes): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* tree-profile.c (gimple_gen_ic_func_profiler): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* tree-scalar-evolution.h (block_before_loop): Likewise.
      	* tree-sra.c (sra_ipa_reset_debug_stmts): Likewise.
      	(dump_dereferences_table): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(analyze_caller_dereference_legality): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(propagate_dereference_distances): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(initialize_parameter_reductions): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	* tree-ssa-ccp.c (gsi_prev_dom_bb_nondebug): Likewise.
      	(optimize_stack_restore): Remove usage of EXIT_BLOCK_PTR macro.
      	* tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
      	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(remove_dead_stmt): Remove usage of EXIT_BLOCK_PTR macro.
      	(propagate_necessity): Remove usage of ENTRY_BLOCK_PTR macro.
      	(mark_control_dependent_edges_necessary): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* tree-ssa-dom.c (eliminate_degenerate_phis): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(tree_ssa_dominator_optimize): Remove usage of EXIT_BLOCK_PTR macro.
      	* tree-ssa-live.c (verify_live_on_entry): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(calculate_live_on_exit): Likewise.
      	(set_var_live_on_entry): Remove usage of ENTRY_BLOCK_PTR macro.
      	(loe_visit_block): Likewise.
      	* tree-ssa-live.h (live_on_exit): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(live_on_entry): Likewise.
      	* tree-ssa-loop-ivopts.c (find_interesting_uses): Remove usage of
      	EXIT_BLOCK_PTR macro.
      	* tree-ssa-loop-manip.c (compute_live_loop_exits): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* tree-ssa-loop-niter.c (simplify_using_initial_conditions): Likewise.
      	(bound_difference): Likewise.
      	* tree-ssa-loop-prefetch.c (may_use_storent_in_loop_p): Remove usage
      	of EXIT_BLOCK_PTR macro.
      	* tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Remove usage
      	of ENTRY_BLOCK_PTR macro.
      	* tree-ssa-math-opts.c (register_division_in): Likewise.
      	* tree-ssa-phiprop.c (tree_ssa_phiprop): Likewise.
      	* tree-ssa-pre.c (compute_avail): Likewise.
      	(compute_antic): Remove usage of EXIT_BLOCK_PTR macro.
      	(insert): Remove usage of ENTRY_BLOCK_PTR macro.
      	* tree-ssa-propagate.c (ssa_prop_init): Likewise.
      	(simulate_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(cfg_blocks_add): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(add_control_edge): Remove usage of EXIT_BLOCK_PTR macro.
      	* tree-ssa-reassoc.c (do_reassoc): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(build_and_add_sum): Remove usage of ENTRY_BLOCK_PTR macro.
      	* tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
      	(execute_sink_code): Remove usage of EXIT_BLOCK_PTR macro.
      	* tree-ssa-uninit.c (find_dom): Remove usage of ENTRY_BLOCK_PTR macro.
      	(compute_control_dep_chain): Remove usage of EXIT_BLOCK_PTR macro.
      	(find_pdom): Likewise.
      	(warn_uninitialized_vars): Remove usage of ENTRY_BLOCK_PTR macro.
      	* tree-stdarg.c (reachable_at_most_once): Likewise.
      	* tree-tailcall.c (tree_optimize_tail_calls_1): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(eliminate_tail_call): Likewise.
      	* tsan.c (instrument_func_entry): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(instrument_func_exit): Remove usage of EXIT_BLOCK_PTR macro.
      	* var-tracking.c (vt_initialize): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(vt_add_function_parameter): Remove usage of ENTRY_BLOCK_PTR macro.
      	(vt_find_locations): Remove usage of EXIT_BLOCK_PTR macro.
      	(vt_stack_adjustments): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	* varasm.c (assemble_start_function): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	* config/bfin/bfin.c (hwloop_optimize): Likewise.
      	* config/nds32/nds32.c (nds32_fp_as_gp_check_available): Remove usage
      	of EXIT_BLOCK_PTR macro.
      	* config/arm/arm.c (require_pic_register): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(arm_r3_live_at_start_p): Likewise.
      	(any_sibcall_could_use_r3): Remove usage of EXIT_BLOCK_PTR macro.
      	* config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
      	* config/frv/frv.c (frv_optimize_membar_global): Likewise.
      	* config/alpha/alpha.c (alpha_gp_save_rtx): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* config/i386/i386.c (ix86_count_insn): Likewise.
      	(ix86_seh_fixup_eh_fallthru): Remove usage of EXIT_BLOCK_PTR macro.
      	(ix86_pad_short_function): Likewise.
      	(ix86_compute_frame_layout): Remove usage of ENTRY_BLOCK_PTR macro.
      	(ix86_pad_returns): Remove usage of EXIT_BLOCK_PTR macro.
      	(ix86_eax_live_at_start_p): Remove usage of ENTRY_BLOCK_PTR macro.
      	(add_condition_to_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(ix86_expand_epilogue): Likewise.
      	* config/ia64/ia64.c (ia64_asm_unwind_emit): Likewise.
      	(ia64_expand_prologue): Likewise.
      
      From-SVN: r205055
      David Malcolm committed
    • Eliminate n_edges macro · dc936fb2
      	* basic-block.h (n_edges_for_function): Rename macro to...
      	(n_edges_for_fn): ...this.
      	(n_edges): Eliminate macro as work towards making uses of
      	cfun be explicit.
      
      	* cfg.c (init_flow): Update for renaming of "n_edges_for_function"
      	to "n_edges_for_fn".
      
      	* cfg.c (unchecked_make_edge): Remove usage of n_edges macro.
      	(clear_edges): Likewise.
      	(free_edge): Likewise.
      	* cfghooks.c (dump_flow_info): Likewise.
      	* cprop.c (is_too_expensive): Likewise.
      	* df-core.c (df_worklist_dataflow_doublequeue): Likewise.
      	* gcse.c (is_too_expensive): Likewise.
      	(prune_insertions_deletions): Likewise.
      	* mcf.c (create_fixup_graph): Likewise.
      	* sched-rgn.c (haifa_find_rgns): Likewise.
      	* tree-cfg.c (gimple_dump_cfg): Likewise.
      	* var-tracking.c (variable_tracking_main_1): Likewise.
      
      From-SVN: r205044
      David Malcolm committed
    • Eliminate n_basic_blocks macro · 0cae8d31
      gcc/
      	* basic-block.h (n_basic_blocks_for_function): Rename macro to...
      	(n_basic_blocks_for_fn): ...this.
      
      	(n_basic_blocks): Eliminate macro as work towards making uses of
      	cfun be explicit.
      
      	* cfgloop.c (init_loops_structure): Update for renaming of
      	"n_basic_blocks_for_function" to "n_basic_blocks_for_fn".
      	* graph.c (draw_cfg_nodes_no_loops): Likewise.
      	* ipa-utils.c (ipa_merge_profiles): Likewise.
      	* lto-streamer-in.c (make_new_block): Likewise.
      	* tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
      	(dump_function_to_file): Likewise.
      
      	* alias.c (init_alias_analysis): Replace usage of "n_basic_blocks"
      	macro with "n_basic_blocks_for_fn (cfun)".
      	* bb-reorder.c (partition_hot_cold_basic_blocks): Likewise.
      	(duplicate_computed_gotos): Likewise.
      	(reorder_basic_blocks): Likewise.
      	* bt-load.c (augment_live_range): Likewise.
      	* cfg.c (expunge_block): Likewise.
      	(compact_blocks): Likewise.
      	* cfganal.c (single_pred_before_succ_order): Likewise.
      	(compute_idf): Likewise.
      	(flow_dfs_compute_reverse_init): Likewise.
      	(pre_and_rev_post_order_compute): Likewise.
      	(pre_and_rev_post_order_compute_fn): Likewise.
      	(inverted_post_order_compute): Likewise.
      	(post_order_compute): Likewise.
      	(print_edge_list): Likewise.
      	(find_unreachable_blocks): Likewise.
      	(mark_dfs_back_edges): Likewise.
      	* cfgcleanup.c (try_optimize_cfg): Likewise.
      	(try_forward_edges): Likewise.
      	* cfghooks.c (dump_flow_info): Likewise.
      	* cfgloop.c (verify_loop_structure): Likewise.
      	(get_loop_body): Likewise.
      	(flow_loops_find): Likewise.
      	* cfgloopmanip.c (add_loop): Likewise.
      	(remove_path): Likewise.
      	(find_path): Likewise.
      	* cfgrtl.c (rtl_flow_call_edges_add): Likewise.
      	(rtl_verify_bb_layout): Likewise.
      	(entry_of_function): Likewise.
      	(rtl_create_basic_block): Likewise.
      	* coverage.c (coverage_compute_cfg_checksum): Likewise.
      	* cprop.c (one_cprop_pass): Likewise.
      	(is_too_expensive): Likewise.
      	* df-core.c (df_compute_cfg_image): Likewise.
      	(df_compact_blocks): Likewise.
      	(df_worklist_dataflow_doublequeue): Likewise.
      	* dominance.c (calculate_dominance_info): Likewise.
      	(calc_dfs_tree): Likewise.
      	(calc_dfs_tree_nonrec): Likewise.
      	(init_dom_info): Likewise.
      	* domwalk.c (cmp_bb_postorder): Likewise.
      	* function.c (thread_prologue_and_epilogue_insns): Likewise.
      	(generate_setjmp_warnings): Likewise.
      	* fwprop.c (build_single_def_use_links): Likewise.
      	* gcse.c (is_too_expensive): Likewise.
      	(one_code_hoisting_pass): Likewise.
      	(one_pre_gcse_pass): Likewise.
      	* graphite.c (graphite_initialize): Likewise.
      	* haifa-sched.c (haifa_sched_init): Likewise.
      	* ipa-inline-analysis.c (estimate_function_body_sizes): Likewise.
      	* ira.c (split_live_ranges_for_shrink_wrap): Likewise.
      	* ira-build.c (ira_build): Likewise.
      	* lcm.c (compute_nearerout): Likewise.
      	(compute_available): Likewise.
      	(compute_laterin): Likewise.
      	(compute_antinout_edge): Likewise.
      	* lra-lives.c (lra_create_live_ranges): Likewise.
      	* lra.c (has_nonexceptional_receiver): Likewise.
      	* mcf.c (create_fixup_graph): Likewise.
      	* profile.c (branch_prob): Likewise.
      	* reg-stack.c (convert_regs_2): Likewise.
      	* regrename.c (regrename_analyze): Likewise.
      	* reload1.c (has_nonexceptional_receiver): Likewise.
      	* reorg.c (dbr_schedule): Likewise.
      	* sched-deps.c (sched_deps_init): Likewise.
      	* sched-ebb.c (schedule_ebbs): Likewise.
      	* sched-rgn.c (extend_regions): Likewise.
      	(schedule_insns): Likewise.
      	(sched_rgn_init): Likewise.
      	(extend_rgns): Likewise.
      	(haifa_find_rgns): Likewise.
      	* sel-sched-ir.c (recompute_rev_top_order): Likewise.
      	(sel_recompute_toporder): Likewise.
      	* sel-sched.c (run_selective_scheduling): Likewise.
      	* store-motion.c (one_store_motion_pass): Likewise.
      	(remove_reachable_equiv_notes): Likewise.
      	* tracer.c (tracer): Likewise.
      	(tail_duplicate): Likewise.
      	* tree-cfg.c (gimple_flow_call_edges_add): Likewise.
      	(dump_cfg_stats): Likewise.
      	(gimple_dump_cfg): Likewise.
      	(create_bb): Likewise.
      	(build_gimple_cfg): Likewise.
      	* tree-cfgcleanup.c (merge_phi_nodes): Likewise.
      	* tree-inline.c (optimize_inline_calls): Likewise.
      	(fold_marked_statements): Likewise.
      	* tree-ssa-ifcombine.c (tree_ssa_ifcombine): Likewise.
      	* tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
      	* tree-ssa-loop-im.c (analyze_memory_references): Likewise.
      	* tree-ssa-loop-manip.c (compute_live_loop_exits): Likewise.
      	* tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
      	* tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
      	* tree-ssa-pre.c (do_pre): Likewise.
      	(init_pre): Likewise.
      	(compute_avail): Likewise.
      	* tree-ssa-reassoc.c (init_reassoc): Likewise.
      	* tree-ssa-sccvn.c (init_scc_vn): Likewise.
      	* tree-ssa-tail-merge.c (alloc_cluster_vectors): Likewise.
      	(init_worklist): Likewise.
      	* tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
      	* var-tracking.c (variable_tracking_main_1): Likewise.
      	(vt_find_locations): Likewise.
      	(vt_stack_adjustments): Likewise.
      	* config/s390/s390.c (s390_optimize_nonescaping_tx): Likewise.
      	* config/spu/spu.c (spu_machine_dependent_reorg): Likewise.
      
      From-SVN: r204995
      David Malcolm committed
  23. 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
  24. 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
  25. 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
  26. 21 Jul, 2013 1 commit
  27. 18 May, 2013 1 commit
  28. 26 Apr, 2013 1 commit
    • This patch is the main part of a consolodation of the hash_table patches to the... · 4a8fb1a1
      This patch is the main part of a consolodation of the hash_table
      patches to the cxx-conversion branch for files not under gcc/config.
      
      Update various hash tables from htab_t to hash_table.
      Modify types and calls to match.
      
      * tree-parloops.c'reduction
      * tree-parloops.c'name_to_copy
      
      Fold reduction_info_hash and reduction_info_eq into new struct
      reduction_hasher.  Fold name_to_copy_elt_eq and name_to_copy_elt_hash
      into new struct name_to_copy_hasher.
      
      * trans-mem.c'tm_log
      
      Fold tm_log_hash, tm_log_eq, tm_log_free into new struct log_entry_hasher.
      
      * trans-mem.c'tm_memopt_value_numbers
      
      Fold tm_memop_hash, tm_memop_eq into new struct tm_memop_hasher.
      
      * tree-ssa-strlen.c'decl_to_stridxlist_htab
      
      Fold decl_to_stridxlist_hash into new struct stridxlist_hasher.
      
      * tree-ssa-loop-ivopts.c'ivopts_data::inv_expr_tab
      
      Fold htab_inv_expr_hash and htab_inv_expr_eq into new struct
      iv_inv_expr_hasher.
      
      * tree-ssa-uncprop.c'equiv
      
      Equiv renamed to val_ssa_equiv because of name ambiguity with local variables.
      
      Fold equiv_hash, equiv_eq and equiv_free into new struct val_ssa_equiv_hasher.
      
      Renamed variables equiv_hash_elt to an_equiv_elt because of name ambiguity
      with struct type.  Changed equiv_hash_elt_p to an_equiv_elt_p to match.
      
      * tree-ssa-phiopt.c'seen_ssa_names
      
      Fold name_to_bb_hash and name_to_bb_eq into new struct ssa_names_hasher.
      
      * tree-ssa-structalias.c'pointer_equiv_class_table
      * tree-ssa-structalias.c'location_equiv_class_table
      
      Fold equiv_class_label_hash and equiv_class_label_eq into new
      struct equiv_class_hasher.
      
      * tree-ssa-structalias.c'shared_bitmap_table
      
      Fold shared_bitmap_hash and shared_bitmap_eq into new struct
      shared_bitmap_hasher.
      
      * tree-ssa-live.c'var_map_base_init::tree_to_index
      
      New struct tree_int_map_hasher.
      
      * tree-sra.c'candidates
      
      Fold uid_decl_map_hash and uid_decl_map_eq into new struct
      uid_decl_hasher.  This change moves the definitions from tree-ssa.c
      into tree-sra.c and removes the declarations from tree-flow.h
      
      tree-browser.c
      
      Remove stale declaration of removed TB_parent_eq.
      Fix template parameter for base class to match value_type.
      
      gimple.h
      
      Use gimplify_hasher::hash rather than gimple_tree_hash in the
        assertion check.
      Change return values to match return type. (I.e. no conversions.)
      
      * graphite-clast-to-gimple.c'ivs_params::newivs_index
      * graphite-clast-to-gimple.c'ivs_params::params_index
      * graphite-clast-to-gimple.c'print_generated_program::params_index
      * graphite-clast-to-gimple.c'gloog::newivs_index
      * graphite-clast-to-gimple.c'gloog::params_index
      * graphite.c graphite_transform_loops::bb_pbb_mapping
      * sese.c copy_bb_and_scalar_dependences::rename_map
      
      Move hash table declarations to a new graphite-htab.h, because they
      are used in few places.
      
      Remove unused:
      
      htab_t scop::original_pddrs
      SCOP_ORIGINAL_PDDRS
      
      Remove unused:
      
      insert_loop_close_phis
      insert_guard_phis
      debug_ivtype_map
      ivtype_map_elt_info
      new_ivtype_map_elt
      
      * gimplify.c'gimplify_ctx::temp_htab
      
      Move struct gimple_temp_hash_elt and struct gimplify_ctx to a new
      gimplify-ctx.h, because they are used few places.
      
      * cselib.c'cselib_hash_table
      * gcse.c'pre_ldst_table
      * gimple-ssa-strength-reduction.c'base_cand_map
      * haifa-sched.c'delay_htab
      * haifa-sched.c'delay_htab_i2
      * ira-color.c'allocno_hard_regs_htab
      * ira-costs.c'cost_classes_htab
      * loop-invariant.c'merge_identical_invariants::eq
      * loop-iv.c'bivs
      * loop-unroll.c'opt_info::insns_to_split
      * loop-unroll.c'opt_info::insns_with_var_to_expand
      * passes.c'name_to_pass_map
      * plugin.c'event_tab
      * postreload-gcse.c'expr_table
      * store-motion.c'store_motion_mems_table
      * tree-cfg.c'discriminator_per_locus
      * tree-scalar-evolution.c'resolve_mixers::cache
      * tree-ssa-dom.c'avail_exprs
      
      Remove unused:
      dse.c bitmap clear_alias_sets
      dse.c bitmap disqualified_clear_alias_sets
      dse.c alloc_pool clear_alias_mode_pool
      dse.c dse_step2_spill
      dse.c dse_step5_spill
      graphds.h htab_t graph::indices
      
      * attribs.c'scoped_attributes::attribute_hash
      * bitmap.c'bitmap_desc_hash
      * dwarf2cfi.c'trace_index
      * dwarf2out.c'break_out_includes::cu_hash_table
      * dwarf2out.c'copy_decls_for_unworthy_types::decl_table
      * dwarf2out.c'optimize_external_refs::map
      * dwarf2out.c'output_comp_unit::extern_map
      * dwarf2out.c'output_comdat_type_unit::extern_map
      * dwarf2out.c'output_macinfo::macinfo_htab
      * dwarf2out.c'optimize_location_lists::htab
      * dwarf2out.c'dwarf2out_finish::comdat_type_table
      * except.c'ehspec_hash_type
      * except.c'assign_filter_values::ttypes
      * except.c'assign_filter_values::ehspec
      * except.c'sjlj_assign_call_site_values::ar_hash
      * except.c'convert_to_eh_region_ranges::ar_hash
      * trans-mem.c'tm_new_mem_hash
      * tree-browser.c'TB_up_ht
      * tree-eh.c'finally_tree
      
      Move the declaration of hash_table <alloc_pool_hasher> alloc_pool_hash
      in alloc-pool.c to after the method definitions for its parameter
      class.
      
      * ggc-common.c'loc_hash
      * ggc-common.c'ptr_hash
      
      Add a new hash_table method elements_with_deleted to meet the needs of
      gcc-common.c.
      
      Correct many methods with parameter types compare_type to the correct
      value_type.  (Correct code was unlikely to notice the change, but
      incorrect code will.)
      
      * tree-complex.c'complex_variable_components
      * tree-parloops.c'eliminate_local_variables_stmt::decl_address
      * tree-parloops.c'separate_decls_in_region::decl_copies
      
      Move hash table declarations to a new tree-hasher.h, to resolve
      compilation dependences and because they are used in few places.
      
      * lto-streamer.h'output_block::string_hash_table
      * lto-streamer-in.c'file_name_hash_table
      * lto-streamer.c'tree_htab
      
      The struct string_slot moves from data-streamer.h to lto-streamer.h to
      resolve compilation dependences.
      
      Tested on x86_64.
      
      
      Index: gcc/ChangeLog
      
      2013-04-25  Lawrence Crowl  <crowl@google.com>
      
      	* Makefile.in: Update as needed below.
      
      	* alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
      	Move declaration to after the type's method definitons.
      
      	* attribs.c (htab_t scoped_attributes::attribute_hash):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* bitmap.c (htab_t bitmap_desc_hash):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* cselib.c (htab_t cselib_hash_table):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* data-streamer.h (struct string_slot): Move to lto-streamer.h.
      	(hash_string_slot_node): Move implementation into lto-streamer.h
      	struct string_slot_hasher.
      	(eq_string_slot_node): Likewise.
      
      	* data-streamer-out.c: Update output_block::string_hash_table
      	dependent calls and types.
      
      	* dwarf2cfi.c (htab_t trace_index):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* dwarf2out.c (htab_t break_out_includes::cu_hash_table):
      	Change type to hash_table.  Update dependent calls and types.
      	(htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
      	(htab_t optimize_external_refs::map): Likewise.
      	(htab_t output_comp_unit::extern_map): Likewise.
      	(htab_t output_comdat_type_unit::extern_map): Likewise.
      	(htab_t output_macinfo::macinfo_htab): Likewise.
      	(htab_t optimize_location_lists::htab): Likewise.
      	(htab_t dwarf2out_finish::comdat_type_table): Likewise.
      
      	* except.c (htab_t ehspec_hash_type):
      	Change type to hash_table.  Update dependent calls and types.
      	(assign_filter_values::ttypes): Likewise.
      	(assign_filter_values::ehspec): Likewise.
      	(sjlj_assign_call_site_values::ar_hash): Likewise.
      	(convert_to_eh_region_ranges::ar_hash): Likewise.
      
      	* gcse.c (htab_t pre_ldst_table):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* ggc-common.c (htab_t saving_htab):
      	Change type to hash_table.  Update dependent calls and types.
      	(htab_t loc_hash): Likewise.
      	(htab_t ptr_hash): Likewise.
      	(call_count): Rename ggc_call_count.
      	(call_alloc): Rename ggc_call_alloc.
      	(loc_descriptor): Rename make_loc_descriptor.
      	(add_statistics): Rename ggc_add_statistics.
      
      	* ggc-common.c (saving_htab):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
      	(push_gimplify_context): Likewise.
      	(pop_gimplify_context): Likewise.
      	(struct gimple_temp_hash_elt): Added.
      	(struct gimplify_hasher): Likewise.
      	(struct gimplify_ctx.temp_htab):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* gimple-fold.c: Include gimplify-ctx.h.
      
      	* gimple-ssa-strength-reduction.c (htab_t base_cand_map):
      	Change type to hash_table.  Update dependent calls and types.
      	(base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
      	avoid potential global name collision.
      
      	* gimplify.c: Include gimplify-ctx.h.
      	(struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
      	(htab_t gimplify_ctx::temp_htab):
      	Update dependent calls and types for new type hash_table.
      	(gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
      	(gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
      
      	* gimplify-ctx.h: New.
      	(struct gimple_temp_hash_elt): Move from gimplify.c.
      	(class gimplify_hasher): New.
      	(struct gimplify_ctx): Move from gimple.h.
      	(htab_t gimplify_ctx::temp_htab):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* graphite-clast-to-gimple.c: Include graphite-htab.h.
      	(htab_t ivs_params::newivs_index):
      	Change type to hash_table.  Update dependent calls and types.
      	(htab_t ivs_params::params_index): Likewise.
      	(htab_t print_generated_program::params_index): Likewise.
      	(htab_t gloog::newivs_index): Likewise.
      	(htab_t gloog::params_index): Likewise.
      
      	* graphite.c: Include graphite-htab.h.
      	4htab_t graphite_transform_loops::bb_pbb_mapping):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
      	(bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
      	(eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
      
      	* graphite-dependences.c: Include graphite-htab.h.
      	(loop_is_parallel_p): Change hash table type of parameter.
      
      	* graphite-htab.h: New.
      	(typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
      	(extern find_pbb_via_hash): Move from graphite-poly.h.
      	(extern loop_is_parallel_p): Move from graphite-poly.h.
      	(extern get_loop_body_pbbs): Move from graphite-poly.h.
      
      	* graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
      	(extern loop_is_parallel_p): Move to graphite-htab.h.
      	(extern get_loop_body_pbbs): Move to graphite-htab.h.
      
      	* haifa-sched.c (htab_t delay_htab):
      	Change type to hash_table.  Update dependent calls and types.
      	(htab_t delay_htab_i2): Likewise.
      
      	* ira-color.c (htab_t allocno_hard_regs_htab):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* ira-costs.c (htab_t cost_classes_htab):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* loop-invariant.c (htab_t merge_identical_invariants::eq):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* loop-iv.c (htab_t bivs):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* loop-unroll.c (htab_t opt_info::insns_to_split):
      	Change type to hash_table.  Update dependent calls and types.
      	(htab_t opt_info::insns_with_var_to_expand): Likewise.
      
      	* lto-streamer.h (struct string_slot): Move from data-streamer.h
      	(struct string_slot_hasher): New.
      	(htab_t output_block::string_hash_table):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* lto-streamer-in.c (freeing_string_slot_hasher): New.
      	(htab_t file_name_hash_table):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* lto-streamer-out.c: Update output_block::string_hash_table dependent
      	calls and types.
      
      	* lto-streamer.c (htab_t tree_htab):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* omp-low.c: Include gimplify-ctx.h.
      
      	* passes.c (htab_t name_to_pass_map):
      	Change type to hash_table.  Update dependent calls and types.
      	(pass_traverse): Rename to passes_pass_traverse.
      
      	* plugin.c (htab_t event_tab):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* postreload-gcse.c (htab_t expr_table):
      	Change type to hash_table.  Update dependent calls and types.
      	(dump_hash_table_entry): Rename dump_expr_hash_table_entry.
      
      	* sese.c (debug_rename_map_1): Make extern.
      	(htab_t copy_bb_and_scalar_dependences::rename_map):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* sese.h (extern debug_rename_map): Move to .c file.
      
      	* store-motion.c (htab_t store_motion_mems_table):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* trans-mem.c (htab_t tm_new_mem_hash):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* tree-browser.c (htab_t TB_up_ht):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* tree-cfg.c (htab_t discriminator_per_locus):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* tree-complex.c: Include tree-hasher.h
      	(htab_t complex_variable_components):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* tree-eh.c (htab_t finally_tree):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
      	struct int_tree_hasher.
      	(extern int_tree_map_eq): Likewise.
      	(uid_decl_map_hash): Removed.
      	(extern decl_tree_map_eq): Likewise.
      
      	* tree-hasher.h: New.
      	(struct int_tree_hasher): New.
      	(typedef int_tree_htab_type): New.
      
      	* tree-inline.c: Include gimplify-ctx.h.
      
      	* tree-mudflap.c: Include gimplify-ctx.h.
      
      	* tree-parloops.c: Include tree-hasher.h.
      	(htab_t eliminate_local_variables_stmt::decl_address):
      	Change type to hash_table.  Update dependent calls and types.
      	(htab_t separate_decls_in_region::decl_copies): Likewise.
      
      	* tree-scalar-evolution.c (htab_t resolve_mixers::cache):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* tree-sra.c (candidates):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
      	in tree-flow.h.
      	(int_tree_map_hash): Likewise.
      
      	* tree-ssa-dom.c (htab_t avail_exprs):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* tree-ssa-live.c (var_map_base_init::tree_to_index):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* tree-ssa-phiopt.c (seen_ssa_names):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* tree-ssa-strlen.c (decl_to_stridxlist_htab):
      	Change type to hash_table.  Update dependent calls and types.
      
      	* tree-ssa-uncprop.c (equiv):
      	Change type to hash_table.  Update dependent calls and types.
      
      From-SVN: r198329
      Lawrence Crowl committed
  29. 10 Apr, 2013 1 commit
    • passes.c (execute_todo): Do not call ggc_collect conditional here. · bb313b93
      2013-04-10  Richard Biener  <rguenther@suse.de>
      
      	* passes.c (execute_todo): Do not call ggc_collect conditional here.
      	(execute_one_ipa_transform_pass): But unconditionally here.
      	(execute_one_pass): And here.
      	(init_optimization_passes): Remove reload pass.
      	* tree-pass.h (TODO_ggc_collect): Remove.
      	(pass_reload): Likewise.
      	* ira.c (do_reload): Merge into ...
      	(ira): ... this.
      	(rest_of_handle_reload): Remove.
      	(pass_reload): Likewise.
      	* config/i386/i386.c (ix86_option_override): Refer to ira instead
      	of reload for vzeroupper pass placement.
      	* <everywhere>: Remove TODO_ggc_collect from todo_flags_start
      	and todo_flags_finish of all passes.
      
      	* g++.dg/pr55604.C: Use -fdump-rtl-ira.
      
      From-SVN: r197671
      Richard Biener committed
  30. 30 Mar, 2013 1 commit
    • cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER. · 39718607
      	* cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
      
      	* postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
      	for table jump at the end of a basic block using tablejump_p.
      	* targhooks.c (default_invalid_within_doloop): Likewise.
      	* config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
      	target hook implementation that is identical to the default hook.
      	(rs6000_invalid_within_doloop): Remove.
      
      	* bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
      	unused variable from tablejump_p call.
      
      	* rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
      	* rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
      	(INSN_DELETED_P): Likewise.
      	(emit_jump_table_data): New prototype.
      	* gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
      	after 4th as unused.
      	* print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
      	* sched-vis.c (print_insn): Likewise.
      	* emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
      	insn for compatibility with back ends that use next_active_insn to
      	identify jump table data.
      	(set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
      	(remove_insn): Likewise.
      	(emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
      	to be emitted.
      	(emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
      	(emit_jump_table_data): New function.
      
      	* cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
      	basic block, a JUMP_TABLE_DATA never is.
      	(control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
      	* cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
      	off from code handling real insns.
      	* final.c (get_attr_length_1): Simplify for JUMP_INSNs.
      	* function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
      	test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
      	* gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
      	is not a NONDEBUG_INSN_P.
      	* ira-costs.c (scan_one_insn): Likewise.
      	* jump.c (mark_all_labels): Likewise.
      	(mark_jump_label_1): Likewise.
      	* lra-eliminations.c (eliminate_regs_in_insn): Likewise.
      	* lra.c (get_insn_freq): Expect all insns reaching here to be in
      	a basic block.
      	(check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
      	* predict.c (expensive_function_p): Use FOR_BB_INSNS.
      	* reload1.c (calculate_needs_all_insns): Call set_label_offsets for
      	JUMP_TABLE_DATA_P insns.
      	(calculate_elim_costs_all_insns): Likewise.
      	(set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
      	(elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
      	(delete_output_reload): Code style fixups.
      	* reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
      	insn flags on this non-insn.
      	* sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
      	as scheduling barriers, for pre-change compatibility.
      	* stmt.c (emit_case_dispatch_table): Emit jump table data not as
      	JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
      
      	* config/alpha/alpha.c (alpha_does_function_need_gp): Remove
      	redundant JUMP_TABLE_DATA_P test.
      	* config/arm/arm.c (thumb_far_jump_used_p): Likewise.
      	* config/frv/frv.c (frv_function_contains_far_jump): Likewise.
      	(frv_for_each_packet): Likewise.
      	* config/i386/i386.c (min_insn_size): Likewise.
      	(ix86_avoid_jump_mispredicts): Likewise.
      	* config/m32r/m32r.c (m32r_is_insn): Likewise.
      	* config/mep/mep.c (mep_reorg_erepeat): Likewise.
      	* config/mips/mips.c (USEFUL_INSN_P): Likewise.
      	(mips16_insn_length): Robustify.
      	(mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
      	(mips16_split_long_branches): Likewise.
      	* config/pa/pa.c (pa_combine_instructions): Likewise.
      	* config/rs6000/rs6000.c (get_next_active_insn): Treat
      	JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
      	* config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
      	as contributing to pool range lengths.
      	* config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
      	Remove redundant JUMP_TABLE_DATA_P test.
      	(sh_loop_align): Likewise.
      	(split_branches): Likewise.
      	(sh_insn_length_adjustment): Likewise.
      	* config/spu/spu.c (get_branch_target): Likewise.
      
      From-SVN: r197266
      Steven Bosscher committed
  31. 29 Mar, 2013 1 commit
    • cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu of tests for… · 34f0d87a
      cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu of tests for JUMP_P and a ADDR_DIFF_VEC or...
      
      
      	* cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
      	of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
      	(control_flow_insn_p): Likewise.
      	* cfgrtl.c (duplicate_insn_chain): Likewise.
      	* final.c (get_attr_length_1): Likewise.
      	(shorten_branches): Likewise.
      	(final_scan_insn): Likewise.
      	* function.c (instantiate_virtual_regs): Likewise.
      	* gcse.c (insert_insn_end_basic_block): Likewise.
      	* ira-costs.c (scan_one_insn): Likewise.
      	* lra-eliminations.c (eliminate_regs_in_insn): Likewise.
      	* lra.c (check_rtl): Likewise.
      	* reload1.c (elimination_costs_in_insn): Likewise.
      	* reorg.c (follow_jumps): Likewise.
      
      	* config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
      	of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
      	(thumb_far_jump_used_p): Likewise.
      	* config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
      	(workaround_speculation): Likewise.
      	(add_sched_insns_for_speculation): Likewise.
      	* config/c6x/c6x.c (reorg_emit_nops): Likewise.
      	* config/frv/frv.c (frv_function_contains_far_jump): Likewise.
      	(frv_for_each_packet): Likewise.
      	* config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
      	* config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
      	(final_emit_insn_group_barriers): Likewise.
      	* config/m32r/m32r.c (m32r_is_insn): Likewise.
      	* config/mips/mips.c (USEFUL_INSN_P): Likewise.
      	(mips16_insn_length): Likewise.
      	* config/pa/pa.c (pa_reorg): Likewise.
      	(pa_combine_instructions): Likewise.
      	* config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
      	* config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
      	(sh_reorg): Likewise.
      	(split_branches): Likewise.
      	* config/spu/spu.c (get_branch_target): Likewise.
      
      	* config/s390/s390.c (s390_chunkify_start): Simplify logic using
      	JUMP_TABLE_DATA_P.
      
      From-SVN: r197234
      Steven Bosscher committed
  32. 23 Mar, 2013 1 commit