1. 11 Oct, 2008 1 commit
    • re PR middle-end/37448 (cannot compile big function) · 57512f53
      2008-10-11  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	PR rtl-optimization/37448
      	* df.h: (df_ref_class): New enum.
      	(DF_REF_TYPE_NAMES, df_ref_extract): Removed.
      	(struct df_ref): Replaced with union df_ref_d.
      	(df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
      	New members of df_ref_d union.
      	(DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
      	DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
      	DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
      	DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
      	DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
      	DF_REF_EXTRACT_MODE): Replaced definition to access union
      	df_ref_d.
             	(DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
      	(df_scan_bb_info, df_bb_regno_first_def_find,
      	df_bb_regno_last_def_find, df_find_def, df_find_use,
      	df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
      	debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
      	df_ref_create, df_ref_remove, df_compute_accessed_bytes,
      	df_get_artificial_defs, df_get_artificial_uses, union_defs)
      	Replaced struct df_ref * with df_ref.
      	* df-scan.c (df_collection_rec, df_null_ref_rec,
      	df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
      	df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
      	df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
      	df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
      	df_reorganize_refs_by_reg_by_reg,
      	df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
      	df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
      	df_sort_and_compress_refs, df_install_ref, df_install_refs,
      	df_ref_record, df_get_conditional_uses, df_get_call_refs,
      	df_bb_refs_record, df_exit_block_uses_collect,
      	df_record_exit_block_uses, df_reg_chain_mark,
      	df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
      	df_ref * with df_ref.
      	(df_ref_record, df_uses_record, df_ref_create_structure): Added
      	df_ref_class parameter.
      	(df_scan_problem_data): Added new pools for different types of
      	refs.
      	(df_scan_free_internal, df_scan_alloc, df_free_ref,
      	df_ref_create_structure): Processed new ref pools.
      	(df_scan_start_dump): Added counts of refs and insns.
      	(df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
      	df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
      	df_entry_block_defs_collect, df_exit_block_uses_collect): Added
      	code to pass df_ref_class down to ref creation functions.
      	(df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
      	df_reg_chain_mark): Use macros to hide references to df_refs.
      	(df_ref_chain_change_bb): Removed.
      	(df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
      	(df_ref_equal_p, df_ref_compare, df_ref_create_structure):
      	Enhanced to understand df_ref union structure.
      	* fwprop.c (local_ref_killed_between_p, use_killed_between,
      	all_uses_available_at, update_df, try_fwprop_subst,
      	forward_propagate_subreg, forward_propagate_and_simplify,
      	forward_propagate_into, fwprop, fwprop_addr): Replaced struct
      	df_ref * with df_ref.
      	(use_killed_between, all_uses_available_at): Use macros to hide
      	references to df_refs.
      	* regstat.c (regstat_bb_compute_ri,
      	regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
      	df_ref.
      	* see.c (see_handle_relevant_defs, see_handle_relevant_uses,
      	see_handle_relevant_refs, see_analyze_one_def,
      	see_update_relevancy, see_propagate_extensions_to_uses): Replaced
      	struct df_ref * with df_ref.
      	* ra-conflict.c (record_one_conflict, clear_reg_in_live,
      	global_conflicts): Replaced struct df_ref * with df_ref.
      	* ddg.c (create_ddg_dep_from_intra_loop_link,
      	add_cross_iteration_register_deps, build_inter_loop_deps):
      	Replaced struct df_ref * with df_ref.
      	(create_ddg_dep_from_intra_loop_link,
      	add_cross_iteration_register_deps): Use macros to hide references
      	to df_refs.
      	* auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
      	df_ref * with df_ref.
      	* df-core.c (df_bb_regno_first_def_find,
      	df_bb_regno_last_def_find, df_find_def, df_find_use,
      	df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
      	debug_df_ref): Replaced struct df_ref * with df_ref.
      	(df_mws_dump, df_ref_debug): Use macros to hide references to
      	df_refs.
      	* cse.c (cse_extended_basic_block): Replaced struct df_ref * with
      	df_ref.
      	* web.c (union_defs, entry_register, replace_ref, web_main):
      	Replaced struct df_ref * with df_ref.
      	(union_defs, replace_ref): Use macros to hide references to
      	df_refs.
      	* global.c (compute_regs_asm_clobbered, build_insn_chain):
      	Replaced struct df_ref * with df_ref.
      	* ifcvt.c (dead_or_predicable): Replaced struct df_ref * with
      	df_ref.
      	* sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
      	Replaced struct df_ref * with df_ref.
      	* ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
      	mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
      	with df_ref.
      	* local-alloc.c (block_alloc): Replaced struct df_ref * with
      	df_ref.
      	* df-byte-scan.c (df_compute_accessed_bytes_extract,
      	df_compute_accessed_bytes_strict_low_part,
      	df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
      	Replaced struct df_ref * with df_ref.
      	(df_compute_accessed_bytes): Use macros to hide references to
      	df_refs.
      	* init-regs.c (initialize_uninitialized_regs): Replaced struct
      	df_ref * with df_ref.
      	* loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
      	check_dependency, check_dependencies, record_uses): Replaced
      	struct df_ref * with df_ref.
      	(invariant_for_use, check_dependency): Use macros to hide
      	references to df_refs.
      	* loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
      	get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
      	iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
      	(iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
      	references to df_refs.
      	* ira.c (compute_regs_asm_clobbered): Replaced struct df_ref * with df_ref.
      	* combine.c (create_log_links): Replaced struct df_ref * with df_ref.
      	* df-problems.c (df_rd_bb_local_compute_process_def,
      	df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
      	df_chain_unlink_1, df_chain_unlink, df_chain_copy,
      	df_chain_remove_problem, df_chain_create_bb_process_use,
      	df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
      	df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
      	df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
      	df_byte_lr_simulate_artificial_refs_at_top,
      	df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
      	df_note_bb_compute, df_note_add_problem, df_simulate_defs,
      	df_simulate_uses, df_simulate_artificial_refs_at_end,
      	df_simulate_artificial_refs_at_top): Replaced struct df_ref * with df_ref.
      	(df_chain_dump): Use macros to hide
      	references to df_refs.
      	* config/mips/mips.c (r10k_simplify_address): Replaced struct
      	df_ref * with df_ref.
      	* dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
      	mark_artificial_uses, mark_reg_dependencies,
      	byte_dce_process_block): Replaced struct df_ref * with df_ref.
      
      From-SVN: r141067
      Kenneth Zadeck committed
  2. 29 Sep, 2008 1 commit
  3. 16 Sep, 2008 1 commit
  4. 11 Sep, 2008 1 commit
  5. 04 Sep, 2008 1 commit
    • rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND or REG_LABEL_TARGET. · e0c68ce9
      ./:	* rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
      	or REG_LABEL_TARGET.
      	* calls.c (emit_library_call_value_1): Use MEM_P rather than
      	comparing MODE with MEM.
      	* gimple.c (gimple_build_predict): Cast END_PREDICTORS before
      	comparing with GF_PREDICT_TAKEN.
      	(gimple_get_lhs): Change code to enum gimple_code.
      	(gimple_set_lhs): Likewise.
      	* ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
      	* omp-low.c (find_omp_clause): Change kind parameter to enum
      	omp_clause_code.
      	* tree-flow.h (find_omp_clause): Update declaration.
      	* regrename.c (clear_dead_regs): Change kind parameter to enum
      	reg_note.
      	* reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
      	GET_MODE.
      	* see.c (see_get_extension_data): Change return type to enum
      	entry_type.  Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
      	SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
      	(see_gen_normalized_extension): Change extension_code parameter to
      	enum entry_type.
      	(see_seek_pre_extension_expr): Change extension_code to enum
      	entry_type.
      	(see_merge_one_def_extension): Likewise.
      	(see_handle_relevant_defs): Likewise.
      	(see_handle_relevant_uses): Likewise.
      	(see_analyze_one_def): Likewise.
      	* tree-cfg.c (need_fake_edge_p): Compare gimple code with
      	GIMPLE_ASM rather than ASM_EXPR.
      	* tree-ssa-alias.c (is_escape_site): Compare gimple code with
      	GIMPLE_RETURN rather than RETURN_EXPR.
      	* tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
      	(evaluate_stmt): Likewise.
      	* tree-vect-analyze.c (vect_analyze_operations): Change relevance
      	to enum vect_relevant.
      	(vect_mark_stmts_to_be_vectorized): Change assertion to not
      	compare gimple codes with tree codes.
      cp/:
      	* parser.c (check_no_duplicate_clause): Change code parameter to
      	enum omp_clause_code.
      fortran/:
      	* symbol.c (generate_isocbinding_symbol): Compare
      	gfc_notification_std with ERROR rather than FAILURE.
      	* resolve.c (check_assumed_size_reference): Compare array type
      	with AR_FULL rather than DIMEN_ELEMENT.
      	(resolve_actual_arglist): Compare with EXPR_VARIABLE rather than
      	FL_VARIABLE.
      
      From-SVN: r139991
      Ian Lance Taylor committed
  6. 31 Aug, 2008 1 commit
    • fwprop.c (should_replace_address): Add speed attribute. · f40751dd
      	* fwprop.c (should_replace_address): Add speed attribute.
      	(PR_OPTIMIZE_FOR_SPEED): New flag.
      	(propagate_rtx_1): Use it.
      	(propagate_rtx): Set it.
      	(try_fwprop_subst): Update call of rtx_costs.
      	(forward_propagate_and_simplify): LIkewise.
      	* hooks.c (hook_int_rtx_bool_0): New
      	(hook_bool_rtx_int_int_intp_false): Replace by ...
      	(hook_bool_rtx_int_int_intp_bool_false): .. thisone.
      	* hooks.h (hook_int_rtx_bool_0): New
      	(hook_bool_rtx_int_int_intp_false): Replace by ...
      	(hook_bool_rtx_int_int_intp_bool_false): .. thisone.
      	* optabs.c (avoid_expensive_constant): UPdate call of rtx_cost.
      	(prepare_cmp_insn): UPdate call of rtx_cost.
      	* postreload.c (reload_cse_simplify_set): Update call of rtx_cost.
      	(reload_cse_simplify_operands): Update call of rtx_cost.
      	(reload_cse_move2add): call of rtx_cost.
      	* target.h (struct gcc_target): Update rtx_costs and address_costs.
      	* rtlanal.c (rtx_cost): Add speed argument.
      	(address_cost): Add speed argument
      	(default_address_cost): Likewise.
      	(insn_rtx_cost): Likewise.
      	* cfgloopanal.c (seq_cost): Add speed argument.
      	(target_reg_cost, target_spill_cost): Turn to array.
      	(init_set_costs): Update for speed.
      	(estimate_reg_pressure_cost): Add speed argument.
      	* auto-inc-dec.c (attempt_change): Update call of rtx_cost.
      	* dojump.c (prefer_and_bit_test): UPdate call of rtx_cost.
      	* tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed.
      	(seq_cost): Add speed argument.
      	(computation_cost): Add speed arugment.
      	(add_cost, multiply_by_const, get_address_cost): add speed argument.
      	(force_expr_to_var_cost): Update for profile info.
      	(force_var_cost): Likewise.
      	(split_address_cost): Likewise.
      	(ptr_difference_cost): Likewise.
      	(difference_cost): Likewise.
      	(get_computation_cost_at): Likewise.
      	(determine_iv_cost): Likewise.
      	(ivopts_global_cost_for_size): Likewise.
      	(rewrite_use_address): Likewise.
      	(tree_ssa_iv_optimize_loop): Initialize speed field.
      	* cse.c (optimize_this_for_speed_p): New static var.
      	(notreg_cost): Update call of rtx_cost.
      	(cse_extended_basic_block): set optimize_this_for_speed_p.
      	* ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost.
      	(noce_try_cmove_arith): Likewise.
      	(noce_try_sign_mask): LIkewise.
      	* expr.c (compress_float_constant): Update rtx_cost calls.
      	* tree-ssa-address.c (most_expensive_mult_to_index): Add speed argument.
      	(addr_to_parts): Likewise.
      	(create_mem_ref): Likewise.
      	* dse.c (find_shift_sequence): Add speed argument.
      	(replace_read): Update call.
      	* calls.c (precompute_register_parameters): Update call of rtx_cost.
      	* expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost,
      	* neg_cost, shift_cost, shiftadd_cost,
      	shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost,
      	mul_highpart_cost): Increase dimension.
      	(init_expmed): Initialize for both size and speed.
      	(expand_shift): Use profile.
      	(synth_mult): Use profile.
      	(choose_mult_variant): Use profile.
      	(expand_mult): Use profile.
      	(expand_mult_highpart_optab): Use profile.
      	(expand_mult_highpart): Use profile.
      	(expand_smod_pow2): Use profile.
      	(expand_divmod): Use profile.
      	* simplify-rtx.c (simplify_binary_operation_1): Update call of rtx_cost.
      	* loop-invariant.c (create_new_invariant): Use profile.
      	(gain_for_invariant): Add speed parameter.
      	(best_gain_for_invariant): Likewise.
      	(find_invariants_to_move): Likewise.
      	(move_single_loop_invariants): Set it.
      	* target-def.h (TARGET_RTX_COSTS): Use hook.
      	* rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe.
      	(optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
      	* output.h (default_address_cost): Update prototype.
      	* combine.c (optimize_this_for_speed_p): New static var.
      	(combine_validate_cost): Update call of rtx_cost.
      	(combine_instructions): Set optimize_this_for_speed_p.
      	(expand_compound_operation): Update call of rtx_cost.
      	(make_extraction):Update call of rtx_cost.
      	(force_to_mode):Update call of rtx_cost.
      	(distribute_and_simplify_rtx):Update call of rtx_cost.
      	* cfgloop.h (target_reg_cost, target_spill_cost): Turn to array.
      	(estimate_reg_pressure_cost): Update prototype.
      	* tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype.
      	* basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p):
      	Remove.
      	* config/alpha/alpha.c (alpha_rtx_costs): Update.
      	(alpha_rtx_costs): Update.
      	* config/frv/frv.c (frv_rtx_costs): Update.
      	* config/s390/s390.c (s390_rtx_costs): Update.
      	* config/m32c/m32c.c (m32c_memory_move_cost): Update.
      	(m32c_rtx_costs): Update.
      	* config/spu/spu.c (TARGET_ADDRESS_COST): Upate.
      	(spu_rtx_costs): Update.
      	* config/sparc/sparc.c (sparc_rtx_costs): Update.
      	* config/m32r/m32r.c (m32r_rtx_costs): Update.
      	* config/i386/i386.c (:ix86_address_cost): Update.
      	(ix86_rtx_costs): Update.
      	* config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update.
      	* config/pdp11/pdp11.c (pdp11_rtx_costs): Update.
      	* config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update.
      	* config/crx/crx.c (crx_address_cost): Update.
      	* config/xtensa/xtensa.c (xtensa_rtx_costs): Update.
      	* config/stormy16/stormy16.c
      	(xstormy16_address_cost, xstormy16_rtx_costs): Update.
      	* config/m68hc11/m68hc11.c
      	(m68hc11_address_cost, m68hc11_rtx_costs): Update.
      	* config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
      	* config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost): Update.
      	* config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs): Update
      	* config/ia64/ia64.c (ia64_rtx_costs): Update.
      	* config/m68k/m68k.c (m68k_rtx_costs): Update.
      	* config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
      	* config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update.
      	* config/mcore/mcore.c (TARGET_ADDRESS_COST): Update.
      	(mcore_rtx_costs): update.
      	* config/score/score3.c (score3_rtx_costs): Update.
      	* config/score/score7.c (score7_rtx_costs): Update.
      	* config/score/score3.h (score3_rtx_costs):Update.
      	* config/score/score7.h (score7_rtx_costs): Update.
      	* config/score/score.c (score_rtx_costs): Update.
      	* config/arm/arm.c (arm_address_cost): Update.
      	(arm_rtx_costs_1): Update.
      	(arm_rtx_costs_1): Update.
      	(arm_size_rtx_costs): Update.
      	(arm_size_rtx_costs): Update.
      	(arm_size_rtx_costs): Update.
      	(arm_xscale_rtx_costs): Update.
      	(arm_thumb_address_cost): Update.
      	* config/pa/pa.c (hppa_address_cost): Update.
      	* config/mips/mips.c (mips_rtx_costs): Update.
      	* config/vax/vax.c (vax_address_cost): Update.
      	* config/h8300/h8300.c (h8300_shift_costs): Update.
      	(h8300_rtx_costs): Update.
      	* config/v850/v850.c (TARGET_ADDRESS_COST): Update.
      	(v850_rtx_costs): Update.
      	* config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update.
      	* config/bfin/bfin.c
      	(bfin_address_cost): Update.
      	(bfin_rtx_costs): Update.
      	* stmt.c (lshift_cheap_p): Update.
      
      From-SVN: r139821
      Jan Hubicka committed
  7. 30 Aug, 2008 1 commit
    • optabs.c (expand_abs_nojump): Update BRANCH_COST call. · 3a4fd356
      	* optabs.c (expand_abs_nojump): Update BRANCH_COST call.
      	* fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise.
      	* dojump.c (do_jump): Likewise.
      	* ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
      	(note-if_info): Add BRANCH_COST.
      	(noce_try_store_flag_constants, noce_try_addcc, noce_try_store_flag_mask,
      	noce_try_cmove_arith, noce_try_cmove_arith, noce_try_cmove_arith,
      	noce_find_if_block, find_if_case_1, find_if_case_2): Use compuated
      	branch cost.
      	* expr.h (BRANCH_COST): Update default.
      	* predict.c (predictable_edge_p): New function.
      	* expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
      	Update BRANCH_COST call.
      	* basic-block.h (predictable_edge_p): Declare.
      	* config/alpha/alpha.h (BRANCH_COST): Update.
      	* config/frv/frv.h (BRANCH_COST): Update.
      	* config/s390/s390.h (BRANCH_COST): Update.
      	* config/spu/spu.h (BRANCH_COST): Update.
      	* config/sparc/sparc.h (BRANCH_COST): Update.
      	* config/m32r/m32r.h (BRANCH_COST): Update.
      	* config/i386/i386.h (BRANCH_COST): Update.
      	* config/i386/i386.c (ix86_expand_int_movcc): Update use of BRANCH_COST.
      	* config/sh/sh.h (BRANCH_COST): Update.
      	* config/pdp11/pdp11.h (BRANCH_COST): Update.
      	* config/avr/avr.h (BRANCH_COST): Update.
      	* config/crx/crx.h (BRANCH_COST): Update.
      	* config/xtensa/xtensa.h (BRANCH_COST): Update.
      	* config/stormy16/stormy16.h (BRANCH_COST): Update.
      	* config/m68hc11/m68hc11.h (BRANCH_COST): Update.
      	* config/iq2000/iq2000.h (BRANCH_COST): Update.
      	* config/ia64/ia64.h (BRANCH_COST): Update.
      	* config/rs6000/rs6000.h (BRANCH_COST): Update.
      	* config/arc/arc.h (BRANCH_COST): Update.
      	* config/score/score.h (BRANCH_COST): Update.
      	* config/arm/arm.h (BRANCH_COST): Update.
      	* config/pa/pa.h (BRANCH_COST): Update.
      	* config/mips/mips.h (BRANCH_COST): Update.
      	* config/vax/vax.h (BRANCH_COST): Update.
      	* config/h8300/h8300.h (BRANCH_COST): Update.
      	* params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New.
      	* doc/invoke.texi (predictable-branch-cost-outcome): Document.
      	* doc/tm.texi (BRANCH_COST): Update.
      
      From-SVN: r139804
      Jan Hubicka committed
  8. 30 Jun, 2008 1 commit
  9. 16 May, 2008 1 commit
    • ifcvt.c (dead_or_predicable): Rename df_simulate_one_insn_backwards to df_simulate_one_insn. · 07b5bc83
      2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	* ifcvt.c (dead_or_predicable): Rename
      	df_simulate_one_insn_backwards to df_simulate_one_insn.
      	* recog.c (peephole2_optimize): Ditto.
      	* rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq): 
      	Ditto.
      	* df.h: Rename df_simulate_one_insn_backwards to
      	df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
      	* df-problems.c (df_simulate_artificial_refs_at_top) Reversed
      	scanning of defs and uses.
      	(df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
      	(df_simulate_one_insn_forwards): Removed.
      
      From-SVN: r135422
      Kenneth Zadeck committed
  10. 07 May, 2008 1 commit
    • [multiple changes] · becfd6e5
      2008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
      
              PATCH rtl/7335
              PATCH rtl/33826
              * see.c (see_copy_insn): Copy new pure const attributes for new
              call.
              * c-decl.c (merge_decls): Ditto.
              * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
              to RTL_CONST_OR_PURE_CALL_P.
              * tree.c (define_local_buitin): Rename DECL_IS_PURE to
              DECL_PURE_P.  Initialized DECL_LOOPING_CONST_PURE.
              (process_call_operands): Set tree_side_effects properly.
              * tree.h (TREE_READONLY_DECL_P): Removed.
              (DECL_IS_PURE): Renamed to DECL_PURE_P.
              (DECL_LOOPING_OR_CONST_P): New macro.
              (struct tree_function_decl): Added looping_const_or_pure_p.
              (ECF_*) Renumbered.
              (ECF_LOOPING_OR_CONST_P): New macro,
              * rtlanal.c (pure_const_p): Removed.
              * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
              * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
              to RTL_CONST_CALL_P.
              * ipa-pure-const.c (pure_const_state_e): Added looping field.
              (check_decl, check_tree, check_call, scan_function): Initialize
              looping.
              (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
              (static_execute): Set looping true for recursive functions.
              Undo setting state to IPA_NEITHER for recursive functions.
              * cse.c (cse_insn): 
              * ifcvt.c (noce_can_store_speculate_p): Changed
              CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
              RTL_CONST_OR_PURE_CALL_P.
              * dse.c (scan_insn): Ditto.
              * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
              * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
              RTL_CONST_OR_PURE_CALL_P.
              (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
              pure_call_p to RTL_CONST_CALL_P.
              * gimplify.c (gimplify_call_expr): Clear side effects for
              non-looping pure and constant calls.
              * calls.c (emit_call_1): Set rtl flags from ecf flags.
              (flags_from_decl_or_type): Set ecf flags from decl flags.
              (initialize_argument_information): Turn off
              ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
              Change const to pure if callee_copies is true rather than just
              turning off const.
              (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
              way of marking pure calls.
              (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
              Remove hack that was supposed to fix pr7335 and remove old
              way of marking pure calls.
              * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
              RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
              * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
              RTL_CONST_OR_PURE_CALL_P.
              * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
              * loop-invariant.c (find_exits, find_invariant_bb): Changed
              CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
              * sched-deps.c (schedule_analyze): Ditto.
              * rtl.h (struct rtx_def): Use call field, unchanging field, and
              return_val field of calls to represent pure and const function
              info.
              (CONST_OR_PURE_CALL_P): Deleted macro.
              (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
              RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
              * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
              TREE_READONLY.
              * tree-optimize.c (execute_fixup_cfg): Added test for
              ECF_LOOPING_CONST_OR_PURE.
              * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
              DECL_PURE_P.
              * tree-cfg.c (update_call_expr_flags): Do not clear tree side
              effects for looping pure or const calls.
              (verify_gimple_expr): Added verification code. 
              * config/alpha/alpha.c (alpha_legitimize_address,
              alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
              RTL_CONST_CALL_P.
              * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
              * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
              * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
              * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
              RTL_CONST_OR_PURE_CALL_P.
              * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
              and const calls to be deleted.
      
      java:
      2008-05-07  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	* decl.c (java_init_decl_processing): Change DECL_IS_PURE to
      	DECL_PURE_P.
      
      cp:
      2008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	 * decl.c (duplicate_decls): Merge in DECL_PURE_P, TREE_READONLY,
      	 DECL_LOOPING_CONST_OR_PURE_P attributes.
      	 * rtti.c (build_dynamic_cast_1): Rename DECL_IS_PURE to
      	 DECL_PURE_P.
      
      gfortran:
      2008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	 * trans-decl.c (gfc_get_extern_function_decl, build_function_decl):
      	 Rename DECL_IS_PURE to DECL_PURE_P.
      
      From-SVN: r135053
      Kenneth Zadeck committed
  11. 19 Mar, 2008 1 commit
    • re PR other/35094 (RTL dump file letters hosed and partly undocumented) · 8ddbbcae
      	* gcc.dg/20050811-2.c: Update dumping flags.
      	* gcc.dg/sms-2.c: Update dumping flags.
      	* gcc.dg/var-expand1.c: Update dumping flags.
      	* gcc.dg/var-expand3.c: Update dumping flags.
      	* gcc.dg/pr30957-1.c: Update dumping flags.
      	* gcc.dg/20050811-1.c: Update dumping flags.
      	* gcc.dg/cpp/cmdlne-dI-M.C: Do not xfail.
      	* gcc.dg/cpp/cmdlne-dM-M.C: Do not xfail.
      
      	PR other/35094
      	* toplev.c (decode_d_option): Handle all CPP flags.
      	* tree-vrp.c: Update tree_pass descriptors.
      	* regrename.c: Update tree_pass descriptors.
      	* fwprop.c: Update tree_pass descriptors.
      	* doc/invoke.texi: Remove documentation of dropped -d? flags.
      	* tree-into-ssa.c: Update tree_pass descriptors.
      	* tree-dump.c: Update tree_pass descriptors.
      	* tree-complex.c: Update tree_pass descriptors.
      	* tree-dump.h: Update tree_pass descriptors.
      	* see.c: Update tree_pass descriptors.
      	* cgraphbuild.c: Update tree_pass descriptors.
      	* tracer.c: Update tree_pass descriptors.
      	* tree-loop-distribution.c: Update tree_pass descriptors.
      	* cgraph.c: Update tree_pass descriptors.
      	* postreload-gcse.c: Update tree_pass descriptors.
      	* postreload.c: Update tree_pass descriptors.
      	* tree-ssa-loop-ch.c: Update tree_pass descriptors.
      	* tree-tailcall.c: Update tree_pass descriptors.
      	* tree-pass.h (tree_opt_pass): Rename to ...
      	(opt_pass) ... this one; add "type" field and remove letter field.
      	(gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
      	(execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
      	all_lowering_passes): Update declaration.
      	* ipa-cp.c: Update tree_pass descriptors.
      	* final.c: Update tree_pass descriptors.
      	* omp-low.c: Update tree_pass descriptors.
      	* tree-ssa-dse.c: Update tree_pass descriptors.
      	* ipa-reference.c: Update tree_pass descriptors.
      	* tree-ssa-uncprop.c: Update tree_pass descriptors.
      	* auto-inc-dec.c: Update tree_pass descriptors.
      	* reorg.c: Update tree_pass descriptors.
      	* cgraphunit.c: Update tree_pass descriptors.
      	* tree-ssa-copyrename.c: Update tree_pass descriptors.
      	* tree-ssa-ccp.c: Update tree_pass descriptors.
      	* df-core.c: Update tree_pass descriptors.
      	* mode-switching.c: Update tree_pass descriptors.
      	* tree-nomudflap.c: Update tree_pass descriptors.
      	* modulo-sched.c: Update tree_pass descriptors.
      	* ipa-pure-const.c: Update tree_pass descriptors.
      	* cse.c: Update tree_pass descriptors.
      	* web.c: Update tree_pass descriptors.
      	* tree-stdarg.c: Update tree_pass descriptors.
      	* tree-ssa-math-opts.c: Update tree_pass descriptors.
      	* tree-ssa-dom.c: Update tree_pass descriptors.
      	* tree-nrv.c: Update tree_pass descriptors.
      	* tree-ssa-alias.c: Update tree_pass descriptors.
      	* loop-init.c: Update tree_pass descriptors.
      	* gimple-low.c: Update tree_pass descriptors.
      	* ipa-inline.c: Update tree_pass descriptors.
      	* tree-ssa-sink.c: Update tree_pass descriptors.
      	* global.c: Update tree_pass descriptors.
      	* ifcvt.c: Update tree_pass descriptors.
      	* jump.c: Update tree_pass descriptors.
      	* predict.c: Update tree_pass descriptors.
      	* tree-ssa-loop.c: Update tree_pass descriptors.
      	* recog.c: Update tree_pass descriptors.
      	* dse.c: Update tree_pass descriptors.
      	* tree-ssa-ifcombine.c: Update tree_pass descriptors.
      	* tree-eh.c: Update tree_pass descriptors.
      	* regmove.c: Update tree_pass descriptors.
      	* local-alloc.c
      	* function.c: Update tree_pass descriptors.
      	* tree-vectorizer.c: Update tree_pass descriptors.
      	* gcse.c: Update tree_pass descriptors.
      	* ipa-type-escape.c: Update tree_pass descriptors.
      	* tree-if-conv.c: Update tree_pass descriptors.
      	* init-regs.c: Update tree_pass descriptors.
      	* ipa.c: Update tree_pass descriptors.
      	* tree-ssa-phiopt.c: Update tree_pass descriptors.
      	* rtl-factoring.c: Update tree_pass descriptors.
      	* lower-subreg.c: Update tree_pass descriptors.
      	* bt-load.c: Update tree_pass descriptors.
      	* tree-dfa.c: Update tree_pass descriptors.
      	* except.c: Update tree_pass descriptors.
      	* emit-rtl.c: Update tree_pass descriptors.
      	* cfgexpand.c: Update tree_pass descriptors.
      	* tree-cfgcleanup.c: Update tree_pass descriptors.
      	* cfgcleanup.c: Update tree_pass descriptors.
      	* tree-ssa-pre.c: Update tree_pass descriptors.
      	* tree-sra.c: Update tree_pass descriptors.
      	* tree-mudflap.c: Update tree_pass descriptors.
      	* tree-ssa-copy.c: Update tree_pass descriptors.
      	* cfglayout.c: Update tree_pass descriptors.
      	* tree-ssa-forwprop.c: Update tree_pass descriptors.
      	* tree-ssa-dce.c: Update tree_pass descriptors.
      	* tree-ssa.c: Update tree_pass descriptors.
      	* regclass.c: Update tree_pass descriptors.
      	* integrate.c: Update tree_pass descriptors.
      	* tree-optimize.c: Update tree_pass descriptors.
      	* tree-ssa-phiprop.c: Update tree_pass descriptors.
      	* tree-object-size.c: Update tree_pass descriptors.
      	* combine.c: Update tree_pass descriptors.
      	* tree-outof-ssa.c: Update tree_pass descriptors.
      	* bb-reorder.c: Update tree_pass descriptors.
      	* stack-ptr-mod.c: Update tree_pass descriptors.
      	* var-tracking.c: Update tree_pass descriptors.
      	* tree-profile.c: Update tree_pass descriptors.
      	* tree-vect-generic.c: Update tree_pass descriptors.
      	* reg-stack.c: Update tree_pass descriptors.
      	* sched-rgn.c: Update tree_pass descriptors.
      	* tree-ssa-structalias.c: Update tree_pass descriptors.
      	* tree-cfg.c: Update tree_pass descriptors.
      	* passes.c (current_pass): Update declaration.
      	(finish_optimization_passes): Update.
      	(all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
      	(register_one_dump_file, register_dump_files_1, next_pass_1):
       	Update arguments.
      	(init_optimization_passes): Update handling of new types.
      	(execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
      	* ipa-struct-reorg.c: Update tree_pass descriptors.
      	* tree-ssa-reassoc.c: Update tree_pass descriptors.
      	* combine-stack-adj.c: Update tree_pass descriptors.
      	* cfgrtl.c: Update tree_pass descriptors.
      	* dce.c: Update tree_pass descriptors.
      	* tree-ssanames.c: Update tree_pass descriptors.
      
      From-SVN: r133342
      Jan Hubicka committed
  12. 04 Mar, 2008 1 commit
  13. 01 Mar, 2008 1 commit
  14. 26 Feb, 2008 1 commit
    • dbgcnt.def (cfg_cleanup, [...]): New counters. · 7d817ebc
              * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
              dse2, gcse, if_conversion, if_after_combine, if_after_reload,
              jump_bypass): New counters.
              * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
              * dce.c (gate_ud_dce): Same.
              (gate_fast_dce): Same.
              * dse.c (gate_dse1): New function.
              (gate_dse2): New function.
              (gate_dse): Merge results of new gate functions.
              * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
              (gate_handle_jump_bypass): Add dbg_cnt.
              (gate_handle_gcse): Add dbg_cnt.
              * ifcvt.c (gate_handle_if_conversion): Same.
              (gate_handle_if_after_combine): Same.
              (gate_handle_if_after_reload): Same.
              * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
      
      From-SVN: r132684
      David Edelsohn committed
  15. 29 Oct, 2007 1 commit
  16. 05 Sep, 2007 1 commit
    • regrename.c (pass_regrename, [...]): Add RTL sharing verifier. · a36b8a1e
      	* regrename.c (pass_regrename, pass_cprop_hardreg): Add RTL sharing
      	verifier.
      	* fwprop.c (pass_rtl_fwprop, pass_rtl_fwprop_add): Likewise.
      	* see.c (pass_see): Likewise.
      	* tracer.c (pass_tracer): Likewise.
      	* postreload-gcse.c (pass_gcse2): Likewise.
      	* postreload.c (pass_postreload_cse): Likewise.
      	* mode-switching.c (pass_mode_switching): Likewise.
      	* modulo-sched.c (pass_sms): Likewise.
      	* cse.c (cse_insn): Likewise.
      	* web.c (pass_web): Likweise.
      	* combine-stack-adj.c (pass_stack_adjustments): Likewise.
      	* dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Likewise.
      	* loop-init.c (pass_rtl_loop_init): Likewise.
      	(pass_rtl_loop_done, pass_rtl_move_loop_, pass_rtl_unswitch,
      	pass_rtl_unroll_and, pass_rtl_doloop): Likewise.
      	* global.c (pass_global_alloc): Likewise.
      	* ifcvt.c (pass_rtl_ifcvt, pass_if_after_combine,
      	pass_if_after_reload): Likewise.
      	* reload.c (pass_peephole2, pass_split_for_shoren_branches): Likewise.
      	* dse.c (pass_rtl_dse1, pass_rtl_dse2): Likewise.
      	* regmove.c (pass_regmove): Likewise.
      	* function.c (pass_thread_prologugues_epilogues): Likewise.
      	* gcse.c (pass_gcse): Likewise.
      	* rtl-factoring.c (pass_rtl_seqabstr): Likewise.
      	* lower-subreg.c (pass_lower_subreg2): Likewise.
      	* bt-load.c (pass_branch_target_load): Likewise.
      	* emit-rtl.c (pass_unshare_all_rtl): Likewise.
      	* cfgcleanup.c (pass_jump, pass_jump2): Likewise.
      	* combine.c (pass_combine): Likewise.
      	* bb-reorder.c (pass_duplicate_comp, pass_reorder_blocks): Likewise.
      	(pass_partition_blocks): Likewise.
      	* var-tracking.c (pass_variable_track): Likewise.
      	* reg-stack.c (pass_stack_regs_run): Likewise.
      	* sched-rgn.c (pass_sched, pass_sched2): Likewise.
      	* passes.c (pass_postreload): Likewise.
      	(execute_function_todo): Add TODO_verify_rtl_sharing handling code.
      	* tree-pass.h (TODO_verify_rtl_sharing): New.
      	(TODO_update_ssa, TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
      	TODO_update_ssa_only_virtuals, TODO_remove_unused_locals,
      	TODO_set_props, TODO_df_finish, TODO_df_verify,
      	TODO_mark_first_instance, TODO_rebuild_alias): Renumber.
      
      From-SVN: r128126
      Jan Hubicka committed
  17. 26 Aug, 2007 1 commit
    • re PR middle-end/33181 (Revision 127766 generates bad cmov) · 6d467839
      gcc/
      
      2007-08-26  H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR middle-end/33181
      	* ifcvt.c (noce_get_alt_condition): Make sure that the previous
      	non NOTE insn doesn't cross basic block.
      	(noce_try_abs): Likewise.
      	(noce_process_if_block): Likewise.
      
      gcc/testsuite/
      
      2007-08-26  H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR middle-end/33181
      	* gcc.dg/ifelse-2.c: New.
      
      From-SVN: r127810
      H.J. Lu committed
  18. 24 Aug, 2007 1 commit
  19. 14 Aug, 2007 1 commit
    • alias.c (rtx_equal_for_memref_p): Constify. · ed7a4b4b
      	* alias.c (rtx_equal_for_memref_p): Constify.
      	* basic-block.h (const_edge, const_basic_block): New.
      	(reg_set_to_hard_reg_set, dfs_enumerate_from, single_succ_p,
      	single_pred_p, single_succ_edge, single_pred_edge, single_succ,
      	single_pred, maybe_hot_bb_p, probably_cold_bb_p,
      	probably_never_executed_bb_p, edge_probability_reliable_p,
      	br_prob_note_reliable_p, forwarder_block_p, flow_nodes_print,
      	inside_basic_block_p, control_flow_insn_p, dominated_by_p):
      	Likewise.
      	* bb-reorder.c (better_edge_p, push_to_next_round_p): Likewise.
      	* bt-load.c (basic_block_freq, insn_sets_btr_p, can_move_up):
      	Likewise.
      	* cfganal.c (flow_active_insn_p, forwarder_block_p,
      	flow_nodes_print, dfs_enumerate_from): Likewise.
      	* cfgbuild.c (count_basic_blocks, inside_basic_block_p,
      	control_flow_insn_p, count_basic_blocks): Likewise.
      	* cfgloop.c (flow_bb_inside_loop_p, glb_enum_p,
      	get_loop_body_with_size, loop_exit_edge_p): Likewise.
      	* cfgloop.h (flow_bb_inside_loop_p, num_loop_insns,
      	average_num_loop_insns, loop_exit_edge_p,
      	just_once_each_iteration_p, can_duplicate_loop_p): Likewise.
      	* cfgloopanal.c (just_once_each_iteration_p, num_loop_insns,
      	average_num_loop_insns, seq_cost): Likewise.
      	* cfgloopmanip.c (rpe_enum_p, can_duplicate_loop_p): Likewise.
      	* dominance.c (dominated_by_p): Likewise.
      	* emit-rtl.c (validate_subreg): Likewise.
      	* except.c (can_throw_internal, can_throw_external): Likewise.
      	* except.h (can_throw_internal, can_throw_external): Likewise.
      	* gcse.c (gcse_constant_p, oprs_unchanged_p, oprs_anticipatable_p,
      	oprs_available_p, hash_expr, expr_equiv_p, oprs_not_set_p,
      	compute_transp, load_killed_in_block_p, reg_killed_on_edge,
      	simple_mem, store_ops_ok, load_kills_store, find_loads,
      	store_killed_in_insn, store_killed_after, store_killed_before,
      	gcse_mem_operand, implicit_set_cond_p, store_killed_in_pat):
      	Likewise.
      	* ifcvt.c (count_bb_insns, cheap_bb_rtx_cost_p, noce_operand_ok,
      	noce_mem_write_may_trap_or_fault_p): Likewise.
      	* pointer-set.c (pointer_set_contains, pointer_map_contains):
      	Likewise.
      	* pointer-set.h (pointer_set_contains, pointer_map_contains):
      	Likewise.
      	* predict.c (can_predict_insn_p, maybe_hot_bb_p,
      	probably_cold_bb_p, probably_never_executed_bb_p,
      	edge_probability_reliable_p, br_prob_note_reliable_p,
      	can_predict_insn_p): Likewise.
      	* regclass.c (reg_set_to_hard_reg_set): Likewise.
      	* resource.c (return_insn_p): Likewise.
      	* rtl.h (reg_set_between_p, reg_set_p, validate_subreg):
      	Likewise.
      	* rtlanal.c (reg_set_between_p, reg_set_p): Likewise.
      	* tracer.c (count_insns, ignore_bb_p, better_p): Likewise.
      	* tree-cfg.c (verify_gimple_unary_expr, verify_gimple_binary_expr,
      	verify_gimple_modify_stmt): Likewise.
      	* tree-chrec.c (is_not_constant_evolution,
      	is_multivariate_chrec_rec, is_multivariate_chrec,
      	chrec_contains_symbols, chrec_contains_undetermined,
      	tree_contains_chrecs, evolution_function_is_affine_multivariate_p,
      	evolution_function_is_univariate_p, avoid_arithmetics_in_type_p,
      	eq_evolutions_p, scev_direction): Likewise.
      	* tree-chrec.h (automatically_generated_chrec_p, tree_is_chrec,
      	eq_evolutions_p, is_multivariate_chrec, chrec_contains_symbols,
      	chrec_contains_symbols_defined_in_loop,
      	chrec_contains_undetermined, tree_contains_chrecs,
      	evolution_function_is_affine_multivariate_p,
      	evolution_function_is_univariate_p, chrec_zerop,
      	evolution_function_is_constant_p, evolution_function_is_affine_p,
      	evolution_function_is_affine_or_constant_p,
      	tree_does_not_contain_chrecs, chrec_type): Likewise.
      	* tree-data-ref.c (tree_fold_divides_p,
      	object_address_invariant_in_loop_p, dr_may_alias_p,
      	ziv_subscript_p, siv_subscript_p, gcd_of_steps_may_divide_p,
      	same_access_functions, constant_access_functions,
      	access_functions_are_affine_or_constant_p, find_vertex_for_stmt):
      	Likewise.
      	* tree-flow.h (scev_direction): Likewise.
      	* tree-gimple.c (is_gimple_stmt): Likewise.
      	* tree-outof-ssa.c (identical_copies_p, identical_stmt_lists_p):
      	Likewise.
      	* tree-pretty-print.c (op_prio): Likewise.
      	* tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
      	analyzable_condition, backedge_phi_arg_p): Likewise.
      	* tree-scalar-evolution.h (get_chrec_loop): Likewise.
      	* tree-ssa-operands.c (get_name_decl, operand_build_cmp): Likewise.
      	* tree-ssa-threadupdate.c (dbds_continue_enumeration_p):
      	Likewise.
      
      From-SVN: r127404
      Kaveh R. Ghazi committed
  20. 26 Jul, 2007 1 commit
  21. 11 Jul, 2007 1 commit
    • toplev.c (no_new_pseudos): Deleted. · ef4375b2
      2007-07-11  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	* toplev.c (no_new_pseudos): Deleted.
      	* rtl.h (no_new_pseudos): Deleted.
      	* tree-pass.h (pass_no_new_pseudos): Deleted. 
      	* passes.c (pass_no_new_pseudos): Deleted.
      	* final.c (rest_of_clean_state): Removed no_new_pseudos.
      	(rest_of_no_new_pseudos, pass_no_new_pseudos): Deleted.
      	* struct-equiv.c (rtx_equiv_p): Replaced no_new_pseudos with 
      	reload_completed.
      	* cfgcleanup.c (try_crossjump_to_edge): Ditto. 
      	* rtlhooks.c (gen_lowpart_general): Ditto.
      	* optabs.c (prepare_operand): Ditto.
      	* mode-switching.c (rest_of_handle_mode_switching): Deleted set of
      	no_new_pseudos.
      	* modulo-sched.c (rest_of_handle_sms): Ditto.
      	* see.c (rest_of_handle_see): Ditto.
      	* ifcvt.c (if_convert): Ditto.
      	(gate_handle_if_after_combine): Replaced no_new_pseudos with 
      	reload_completed.
      	* init-regs.c (gate_initialize_regs): Deleted set of
      	no_new_pseudos.
      	* lower-subreg.c (decompose_multiword_subregs): Ditto. 
      	* bb-reorder.c (rest_of_handle_partition_blocks): Ditto.
      	* doc/md.texi: Changed no_new_pseudos to can_create_pseudo_p.
      
      From-SVN: r126561
      Kenneth Zadeck committed
  22. 03 Jul, 2007 1 commit
  23. 19 Jun, 2007 1 commit
    • df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed. · 89a95777
      2007-06-15  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	* df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
      	(struct df_problem.free_blocks_on_set_blocks): New field.
      	(struct dataflow.optional_p): New field.
      	(df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
      	(df_live_set_all_dirty): New function.
      	* df-scan.c (df_scan_alloc): Initialize optional_p.
      	(problem_SCAN): Initialize free_blocks_on_set_blocks.
      	* df-core.c (df_set_blocks): Removed use of
      	DF_FIRST_OPTIONAL_PROBLEM.  Now uses
      	df_problem.free_blocks_on_set_blocks to determine which blocks are
      	recycled.
      	(df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM.
      	(df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM.  Now
      	uses dataflow.optional_p to determine if problem should be
      	deleted.
      	(rest_of_handle_df_initialize): Only start live problem if 
      	-02 or above.
      	(df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
      	* df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
      	df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
      	(problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
      	problem_NOTE):  Initialize free_blocks_on_set_blocks.
      	(df_lr_bb_local_compute): Recompute luids if df_live problem is
      	not active.
      	(df_live_set_all_dirty, df_note_alloc): New function.
      	* regrename.c (merge_overlapping_regs): Change DF_LIVE_* to
      	df_get_live_*.
      	* sched_ebb.c (compute_jump_reg_dependencies): Ditto.
      	* postreload.c (reload_combine): Ditto.
      	* cse.c (cse_extended_basic_block): Ditto.
      	* regmove.c (mark_flags_life_zones): Ditto.
      	* rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq,
      	erase_matching_seqs): Ditto.
      	* bt-load.c (compute_defs_uses_and_gen): Ditto.
      	* integrate (allocate_initial_values): Ditto.
      	* combine.c (reg_dead_at_p): Ditto.
      	* resource.c (mark_target_live_regs): Ditto.
      	* sched-rgn.c (check_live_1, update_live_1): Ditto.
      	* config/sh/sh.c (find_r0_life_regions): Ditto.
      	* global.c (rest_of_handle_global_alloc): Only add back df_live
      	for -O > 1.
      	* local-alloc.c (rest_of_handle_local_alloc): Only remove
      	df_live for -O > 1.
      	* ifcvt.c (dead_or_predicable): Change DF_LIVE_* to
      	df_get_live_*.
      	(if_convert): Make sure df_live is there at -O == 1.
      	(pass_if_after_combine): Cleanup flags.
      	* init-regs.c (initialize_uninitialized_regs): Make sure df_live
      	is there at -O == 1.
      
      From-SVN: r125857
      Kenneth Zadeck committed
  24. 11 Jun, 2007 1 commit
  25. 27 May, 2007 1 commit
    • tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL. · d51157de
      	* tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
      	* tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
      	* ifcvt.c (if_convert): Ditto.
      	* tree-ssa-threadupdate.c (thread_block): Ditto.
      	(thread_through_all_blocks): Ditto.  Assert that loops were analysed.
      	* tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
      	verify_loop_closed_ssa): Check number_of_loops instead of current_loops.
      	* predict.c (tree_estimate_probability): Ditto.
      	* tree-if-conv.c (main_tree_if_conversion): Ditto.
      	* tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
      	* modulo-sched.c (sms_schedule): Ditto.
      	* tree-scalar-evolution.c (scev_const_prop): Ditto.
      	(scev_finalize): Do not do anything if scev analysis was not
      	initialized.
      	* cfgloopanal.c (mark_irreducible_loops): Do not check whether
      	current_loops == NULL.
      	(mark_loop_exit_edges): Check number_of_loops instead of current_loops.
      	* loop-init.c (loop_optimizer_init): Do not free current_loops when
      	there are no loops.
      	(loop_optimizer_finalize): Assert that loops were analyzed.
      	(rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
      	rtl_doloop): Check number_of_loops instead of current_loops.
      	* tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
      	current_loops == NULL.
      	(tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
      	gate_tree_vectorize tree_linear_transform, check_data_deps,
      	tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
      	tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
      	Check number_of_loops instead of current_loops.
      	(tree_ssa_loop_done): Do not check whether current_loops == NULL.
      	* tree-ssa-pre.c (fini_pre): Do not take do_fre argument.  Always
      	free loops if available.
      	(execute_pre): Do not pass do_fre to fini_pre.
      
      From-SVN: r125114
      Zdenek Dvorak committed
  26. 21 May, 2007 1 commit
    • gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of NOTE_LINE_NUMBER... · a38e7aa5
      	* gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of
      	NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
      	* ddg.c (create_ddg): LIkewise.
      	* final.c (final): Remove hunk moving line numbernotes around since
      	they are no longer present at this stage.
      	(final_scan_insn): Use NOTE_KIND instead of
      	NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
      	(output_asm_label): Likewise.
      	* reorg.c (dbr_schedule): Likewise.
      	* haifa-sched.c (unlink_other_notes): Likewise.
      	* mode-switching.c (optimize_mode_switching): Likewise.
      	* graph.c (start_bb): Likewise.
      	* rtl.def (NOTE): Update description.
      	* jump.c (squeeze_notes): Delete.
      	(mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use
      	NOTE_INSN_BASIC_BLOCK_P when possible.
      	* ifcvt.c (dead_or_predicable): Remove call of squeeze_notes.
      	* dwarf2out.c (gen_label_die): Use NOTE_KIND instead of
              NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
      	(dwarf2out_var_location): Likewise.
      	* cfgbuild.c (make_edges): Likewise.
      	(find_basic_blocks_1): Likewise.
      	* function.c (reorder_blocks_1): Likewise.
      	(epilogue_done): Likewise.
      	(reposition_prologue_and_epilogue_notes): Likewise.
      	* print-rtl.c (print_rtx): Likewise; drop code for printing line number
      	notes.
      	(print_rtl): Likewise.
      	(print_rtl_single): Likewise.
      	* gcse.c (insert_insn_start_bb): Likewise.
      	* alias.c (init_alias_analysis): Likewise.
      	* calls.c (fixup_tail_calls): Likewise.
      	* except.c (sjlj_emit_function_enter): Likewise.
      	* emit-rtl.c (add_insn_after): Likeiwse.
      	(emit_label_before): Likewise.
      	(emit_label_after): Likewise.
      	(emit_note_before, emit_note_after, emit_note): Update
      	parameter to be enum insn_note; do not deal with source
      	files.
      	* cfgcleanup.c (merge_blocks_move_predecessor_nojumps):
      	Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P
      	when possible.
      	(merge_blocks_move_successor_nojumps): Simplify now when
      	we don't have BLOCK notes.
      	(try_optimize_cfg): Likewise.
      	* cfglayout.c (skip_insns_after_block): Likewise.
      	(record_effective_endpoints): Likewise.
      	(duplicate_insn_chain): Likewise.
      	* varasm.c (output_constant_pool_1): Likewise.
      	* sched-deps.c (sched_analyze): Likewise.
      	* rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS):
      	Exterminate.
      	(note_insn_name): Simplify now when NOTE_INSN_BIAS is gone.
      	* rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate.
      	(SET_INSN_DELETED): Simplify.
      	(NOTE_LINE_NUMBER): Exterminate.
      	(NOTE_LINE_KIND): New.
      	(NOTE_INSN_BASIC_BLOCK_P): Update.
      	(enum insn_note): Simplify.
      	(GET_NOTE_INSN_NAME) Simplify.
      	(emit_note_before, emit_note_after, emit_note): Update prototype.
      	(squeeze_notes): Remove.
      	* sched-int.h (NOTE_NOT_BB_P): Update.
      	* resource.c (mark_target_live_regs): Update.
      	* sched-rgn.c (debug_dependencies): Update.
      	* sched-vis.c (print_insn): Update.
      	* config/alpha/alpha.c (alpha_handle_trap_shadows): Update.
      	* config/i386/i386.c (ix86_output_function_epilogue): Update.
      	* config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0.
      	(TARGET_ADJUST_UNROLL_MAX): Likewise.
      	(split_branches): Update.
      	(sh_optimize_target_register_callee_saved): Remove hunk dead since gcc
      	4.0.0.
      	(sh_adjust_unroll_max): Exterminate.
      	* config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED.
      	* config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise.
      	(m68hc11_reorg): Likewise.
      	* config/ia64/ia64.c (emit_insn_group_barriers): Update.
      	(emit_predicate_relation_info): Update.
      	(process_for_unwind_directive): Update.
      	* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update.
      	(output_call): Update.
      	* config/pa/pa.c (output_lbranch): Update.
      	(output_millicode_call): Update.
      	(output_call): Update.
      	(pa_combine_instructions): Update.
      	* config/mips/mips.c (mips16_gp_pseudo_reg): Update.
      	* config/bfin/bfin.c (gen_one_bundle): Update.
      	* cfgrtl.c (can_delete_note_p): Update.
      	(delete_insn): Update.
      	(rtl_merge_blocks): Update.
      	(commit_one_edge_insertion): Update.
      	(rtl_verify_flow_info): Update.
      	* stmt.c (expand_case): Do not call squeeze_notes.
      
      From-SVN: r124895
      Jan Hubicka committed
  27. 04 May, 2007 1 commit
    • basic-block.h (cdi_direction): Assign values to all enumeration constants. · 2b28c07a
      2007-05-04  Josh Conner  <jconner@apple.com>
      
      	* basic-block.h (cdi_direction): Assign values to all enumeration
      	constants.
      	(dom_computed): Remove.
      	(dom_info_state): New.
      	(set_dom_info_availability): New.
      	* tree-ssa-loop-im.c (determine_invariantness): Initialize
      	walk_data.dom_direction.
      	* cfghooks.c (delete_basic_block): Use dom_info_available_p()
      	instead of dom_computed[].
      	(split_edge): Likewise.
      	(create_basic_block): Likewise.
      	(merge_blocks): Likewise.
      	* ifcvt.c (find_if_header): Likewise.
      	* tree-cfgcleanup.c (cleanup_tree_cfg): Likewise.
      	* tree-ssa-dce.c (remove_dead_stmt): Likewise.
      	* tree-ssa.c (verify_ssa): Likewise.
      	* tree-cfg.c (tree_verify_flow_info): Likewise.
      	(remove_edge_and_dominated_blocks): Likewise.
      	* dominance.c (dom_computed): Make static.
      	(calc_dfs_tree_nonrec): Change third param to a bool.
      	(calc_dfs_tree): Change second param to a bool.
      	(calc_idioms): Change second param to a bool.  Use
      	dom_convert_dir_to_idx.
      	(init_dom_info): Validate dir before using.
      	(dom_convert_dir_to_idx): New.
      	(calculate_dominance_info): Use dom_convert_dir_to_idx.  New
      	variable 'reverse' used for calling calc_dfs_tree and calc_idoms.
      	(free_dominance_info): Use dom_convert_dir_to_idx.
      	(get_immediate_dominator): Likewise.
      	(set_immediate_dominator): Likewise.
      	(get_dominated_by): Likewise.
      	(redirect_immediate_dominators): Likewise.
      	(nearest_common_denominator): Likewise.
      	(dominated_by_p): Likewise.
      	(bb_dom_dfs_in): Likewise.
      	(bb_dom_dfs_out): Likewise.
      	(recount_dominator): Likewise.
      	(iterate_fix_dominators): Likewise.
      	(add_to_dominance_info): Likewise.
      	(delete_from_dominance_info): Likewise.
      	(first_dom_son): Likewise.
      	(next_dom_son): Likewise.
      	(dom_info_available_p): Likewise.
      	(dom_info_state): New.
      	(set_dom_info_availability): New.
      
      From-SVN: r124439
      Josh Conner committed
  28. 29 Mar, 2007 1 commit
  29. 28 Mar, 2007 1 commit
  30. 26 Mar, 2007 1 commit
    • ifcvt.c (noce_try_store_flag_constants): Don't check no_new_pseudos here. · 93242b9c
      	* ifcvt.c (noce_try_store_flag_constants): Don't check
      	no_new_pseudos here.
      	(noce_try_store_flag_constants): Don't check no_new_pseudos.
      	(noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
      	noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
      	noce_try_sign_mask): Likewise.
      	(if_convert): Check no_new_pseudos here.
      
      	(cond_exec_process_if_block, noce_process_if_block, find_if_block):
      	Remove prototypes.
      	(struct noce_if_info): Add then_bb, else_bb, join_bb members.
      	(noce_get_condition): Handle new then_else_reversed argument.
      	(noce_init_if_info): Remove, fold into noce_find_if_block.
      	(noce_process_if_block): Take a struct noce_if_info as the
      	argument.  Don't set up one based on ce_if_info.  Update pointer
      	references accordingly.
      	(cond_move_process_if_block): Likewise.
      	(process_if_block): Removed.
      	(find_if_block): Removed.  Move functionality two new functions,
      	noce_find_if_block and cond_exec_find_if_block.
      	(noce_find_if_block): New function.  Be aware of IF-THEN-JOIN
      	blocks and the symmetric IF-ELSE-JOIN case.
      	(cond_exec_find_if_block): Also new function mostly based on old
      	find_if_block and process_if_block.
      	(find_if_header): Replace find_if_block call with separately
      	guarded calls to noce_find_if_block and cond_exec_find_if_block.
      	(find_cond_trap): Update noce_get_condition call.
      	(dead_or_predicable): Likewise.
      
      From-SVN: r123223
      Steven Bosscher committed
  31. 23 Mar, 2007 2 commits
    • Fix accidental commit · f54171a0
      From-SVN: r123169
      Steven Bosscher committed
    • tracer.c (tracer): Don't take FLAGS argument. · ad21dab7
      	* tracer.c (tracer): Don't take FLAGS argument.  Assert we are
      	in cfglayout mode.  Don't go into and out of cfglayout mode.
      	Link the blocks in the order of the constructed traces.
      	(rest_of_handle_tracer): Adjust call to tracer.
      	* loop-init.c (rtl_loop_init): Assert we are in cfglayout mode.
      	Don't go into cfglayout mode.
      	(rtl_loop_done): Don't go out of cfglayout mode.
      	* cfglayout.c (relink_block_chain): New function, split out from...
      	(fixup_reorder_chain): ...here.  Remove redundant checking.
      	(cfg_layout_finalize): Don't clear the header, footer, and aux
      	fields here, move the code to do so to relink_block_chain.  Likewise
      	for free_original_copy_tables.
      	* rtl.h (tracer): Update prototype.
      	* bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument.
      	Assert we are in cfglayout mode.  Don't go into and out of cfglayout
      	mode.  Use relink_block_chain to serialize the CFG according to the
      	new basic block order.  Move targetm.cannot_modify_jumps_p check from
      	here...
      	(gate_handle_reorder_blocks): ...to here.
      	(duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check
      	from here...
      	(gate_duplicate_computed_gotos): ...to here.
      	(rest_of_handle_reorder_blocks): Don't see if anything has changed,
      	something always changes when going into and out of cfglayout mode.
      	Perform an expensive cfg cleanup while going into cfglayout mode.
      	Always update liveness information on HAVE_conditional_execution
      	targets.  Reserialize the basic blocks and go out of cfglayout mode.
      	* reg-stack.c: Include cfglayout.h.
      	(rest_of_handle_stack_regs): Go into and out of cfglayout mode around
      	the call to reorder_basic_blocks.
      	* basic-block.h (reorder_basic_blocks): Update prototype.
      	(relink_block_chain): New prototype.
      	* passes.c (pass_outof_cfg_layout_mode): Move after cse2.
      
      From-SVN: r123167
      Steven Bosscher committed
  32. 06 Feb, 2007 1 commit
    • loop.texi: Document possibility not to perform disambiguation of loops with multiple latches. · 89f8f30f
      	* doc/loop.texi: Document possibility not to perform disambiguation
      	of loops with multiple latches.
      	* cfgloopmanip.c (alp_enum_p): Removed.
      	(add_loop): Handle subloops.  Use get_loop_body_with_size.
      	(create_preheader): Do not allow ENTRY_BLOCK_PTR to be preheader.
      	* cfghooks.c (redirect_edge_and_branch_force): Set dominator for
      	the new forwarder block.
      	(make_forwarder_block): Only call new_bb_cbk if it is not NULL.
      	Handle the case latch is NULL.
      	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Avoid cfg modifications
      	when marking loop exits.
      	* ifcvt.c (if_convert): Ditto.  Mark loop exits even if cfg cannot
      	be modified.
      	* loop-init.c (loop_optimizer_init): Do not modify cfg.  Call
      	disambiguate_loops_with_multiple_latches.
      	* tree-cfgcleanup.c (cleanup_tree_cfg_loop): Calculate dominators
      	before fix_loop_structure.
      	* cfgloop.c: Include pointer-set.h and output.h.
      	(canonicalize_loop_headers, HEADER_BLOCK, LATCH_EDGE,
      	update_latch_info, mfb_keep_just, mfb_keep_nonlatch): Removed.
      	(get_loop_latch_edges, find_subloop_latch_edge_by_profile,
      	find_subloop_latch_edge_by_ivs, find_subloop_latch_edge,
      	mfb_redirect_edges_in_set, form_subloop, merge_latch_edges,
      	disambiguate_multiple_latches, get_loop_body_with_size,
      	disambiguate_loops_with_multiple_latches): New functions.
      	(flow_loop_dump): Dump multiple latch edges.
      	(flow_loop_nodes_find): Handle loops with multiple latches.
      	(flow_loops_find): Ditto. Do not call canonicalize_loop_headers.
      	(glb_enum_p): Modified.
      	(get_loop_body): Use get_loop_body_with_size.
      	* cfgloop.h (LOOPS_HAVE_RECORDED_EXITS): New flag.
      	(AVOID_CFG_MODIFICATIONS): New constant.
      	(disambiguate_loops_with_multiple_latches, add_loop,
      	get_loop_body_with_size): Declare.
      	* Makefile.in (cfgloop.o): Add pointer-set.h and output.h.
      
      	* gcc.dg/tree-ssa/loop-25.c: New test.
      
      From-SVN: r121670
      Zdenek Dvorak committed
  33. 01 Feb, 2007 1 commit
    • alias.c (init_alias_analysis): Correct whitespace. · 62e5bf5d
      	* alias.c (init_alias_analysis): Correct whitespace.
      	* bb-reorder.c (fix_edges_for_rarely_executed_code,
      	partition_hot_cold_basic_blocks): Likewise.
      	* builtins.c (expand_builtin_printf, expand_builtin_fprintf,
      	expand_builtin_sprintf, fold_builtin_carg, fold_builtin_sprintf,
      	maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
      	fold_builtin_snprintf_chk, fold_builtin_printf,
      	fold_builtin_fprintf, do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_arg2,
      	do_mpfr_arg3, do_mpfr_sincos): Likewise.
      	* cfgcleanup.c (cleanup_cfg): Likewise.
      	* cfgexpand.c (tree_expand_cfg): Likewise.
      	* fold-const.c (fold_binary) <RDIV_EXPR>: Likewise.
      	* function.c (get_next_funcdef_no): Likewise.
      	* gengtype.c (main): Likewise.
      	* genmodes.c (main): Likewise.
      	* gcse.c (bypass_conditional_jumps, print_ldst_list): Likewise.
      	* haifa-sched.c (schedule_block, extend_h_i_d): Likewise.
      	* ifcvt.c (noce_emit_move_insn): Likewise.
      	* modulo-sched.c (generate_prolog_epilog, sms_schedule_by_order):
      	Likewise.
      	* stor-layout.c (get_best_mode): Likewise.
      	* tree-ssa-loop-niter.c (get_val_for): Likewise.
      	* tree-ssa-structalias.c (get_varinfo, get_varinfo_fc,
      	scc_visit, do_ds_constraint, do_complex_constraint, label_visit,
      	perform_var_substitution, solve_graph): Likewise.
      	* tree-vrp.c (vrp_finalize): Likewise.
      
      From-SVN: r121470
      Roger Sayle committed
  34. 18 Jan, 2007 1 commit
    • cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set the CLEANUP_CFGLAYOUT… · aeceeb06
      cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set the CLEANUP_CFGLAYOUT flag when in cfglayout mode.
      
      	* cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set
      	the CLEANUP_CFGLAYOUT flag when in cfglayout mode.
      
      	* Makefile.c (GTFILES): Add cfglayout.h.
      	* gengtype.c (open_base_files): Likewise.
      	* cfglayout.c (cfg_layout_function_footer,
      	cfg_layout_function_header) Reindent to make gengtype happy.
      	* cfglayout.h (cfg_layout_function_footer,
      	cfg_layout_function_header): Add GTY(()) marker.
      
      	* ifcvt.c (noce_try_sign_mask): Make sure INSN_B is non-null.
      
      From-SVN: r120893
      Steven Bosscher committed
  35. 16 Jan, 2007 1 commit
    • ifcvt.c: Include vec.h, vecprim.h. · 632ac2b4
      2007-01-15  Eric Christopher  <echristo@apple.com>
      
              * ifcvt.c: Include vec.h, vecprim.h.
              (check_cond_move_block): New argument regs.
              Reorganize. Add registers used to regs.
              (cond_move_process_if_block): Use regs set above as
              loop bounds.
      
      From-SVN: r120822
      Eric Christopher committed
  36. 11 Jan, 2007 1 commit
    • ifcvt.c (struct noce_if_info): Add comments to the fields. · 2a33a75f
      	* ifcvt.c (struct noce_if_info): Add comments to the fields.
      	Remove the b_unconditional field.
      	(noce_try_sign_mask): Do not look at b_unconditional.
      	(noce_process_if_block): Do not use merge_if_blocks.  Update
      	the CFG here.  Do not set b_unconditional.
      	(cond_move_process_if_block): Likewise.
      	(find_cond_trap): Likewise.
      	(check_cond_move_block): Require simple jump insns at the end
      	of the basic block.
      
      From-SVN: r120686
      Steven Bosscher committed
  37. 06 Jan, 2007 1 commit
  38. 27 Nov, 2006 1 commit
    • cfgexpand.c (construct_exit_block): Don't disturb end of last BB. · 071a42f9
      	* cfgexpand.c (construct_exit_block): Don't disturb end of last BB.
      	* rtl.texi (NOTE_INSN_FUNCTION_END): Remove.
      	* final.c (final_scan_insn): Don't scan NOTE_INSN_FUNCTION_END.
      	* insn-notes.def (FUNCTION_END): Remove.
      	* jump.c (delete_related_insns): Don't worry about FUNCTION_END.
      	(redicect_jump_2): Don't accept -1 parameter to remove FUNCTION_END
      	note.
      	* ifcvt.c (dead_or_predictable): Update call of redirect_jump_2.
      	* function.c (expand_function_end): Don't emit NOTE_INSN_FUNCTION_END
      	* cfglayout.c (duplicate_insn_chain): Don't worry about
      	NOTE_FUNCTION_END.
      
      From-SVN: r119250
      Jan Hubicka committed
  39. 25 Nov, 2006 1 commit
    • tree-vrp.c (execute_vrp): Do not pass loops structure through arguments. · d73be268
      	* tree-vrp.c (execute_vrp): Do not pass loops structure through
      	arguments.
      	* loop-unswitch.c (unswitch_loops, unswitch_single_loop,
      	unswitch_loop): Ditto.
      	* tree-loop-linear.c (linear_transform_loops): Ditto.
      	* tree-ssa-loop-im.c (determine_lsm, tree_ssa_lim_initialize,
      	tree_ssa_lim): Ditto.
      	* tree-ssa-loop-niter.c (estimate_numbers_of_iterations,
      	free_numbers_of_iterations_estimates): Ditto.
      	* tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops,
      	tree_unswitch_single_loop, tree_unswitch_loop): Ditto.
      	* cfgloopmanip.c (fix_bb_placement, fix_bb_placements,
      	remove_path, add_loop, loopify, unloop, fix_loop_placements,
      	place_new_loop, duplicate_loop, duplicate_subloops,
      	update_single_exit_for_duplicated_loops, copy_loops_to,
      	duplicate_loop_to_header_edge, create_preheaders,
      	force_single_succ_latches, loop_version, fix_loop_structure):
      	Ditto.
      	* tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge,
      	tree_unroll_loop): Ditto.
      	* tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
      	* tree-scalar-evolution.c (select_loops_exit_conditions,
      	scev_initialize, scev_analysis): Ditto.
      	* tree-scalar-evolution.h (scev_initialize): Ditto.
      	* cfghooks.c (cfg_hook_duplicate_loop_to_header_edge): Ditto.
      	* cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
      	* tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto.
      	* modulo-sched.c (sms_schedule): Ditto.
      	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
      	* loop-init.c (loop_optimizer_init, rtl_move_loop_invariants,
      	rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): Ditto.
      	* ifcvt.c (if_convert): Ditto.
      	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely,
      	canonicalize_loop_induction_variables,
      	canonicalize_induction_variables,
      	tree_unroll_loops_completely, remove_empty_loops): Ditto.
      	* tree-ssa-loop.c (tree_ssa_loop_init, tree_ssa_loop_im,
      	tree_ssa_loop_unswitch, tree_vectorize, tree_linear_transform,
      	tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
      	tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts,
      	tree_ssa_loop_done): Ditto.
      	* predict.c (predict_loops, tree_estimate_probability, estimate_loops,
      	estimate_bb_frequencies): Ditto.
      	* tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
      	slpeel_tree_peel_loop_to_edge, vectorize_loops): Ditto.
      	* loop-unroll.c (unroll_and_peel_loops, peel_loops_completely,
      	decide_unrolling_and_peeling, peel_loop_completely,
      	unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
      	peel_loop_simple, unroll_loop_stupid): Ditto.
      	* loop-doloop.c (doloop_optimize_loops): Ditto.
      	* tree-cfgcleanup.c (cleanup_tree_cfg_loop): Ditto.
      	* loop-invariant.c (move_loop_invariants): Ditto.
      	* tree-ssa-dce.c (tree_ssa_dce_loop): Ditto.
      	* tree-ssa-loop-prefetch.c (loop_prefetch_arrays,
      	tree_ssa_prefetch_arrays): Ditto.
      	* lambda-code.c (gcc_loopnest_to_lambda_loopnest, perfect_nestify):
      	Ditto.
      	* tree-vect-transform.c (vect_do_peeling_for_loop_bound,
      	vect_do_peeling_for_alignment, vect_transform_loop): Ditto.
      	* cfgloop.c (flow_loops_cfg_dump, flow_loops_dump,
      	mark_single_exit_loops, cancel_loop, cancel_loop_tree,
      	verify_loop_structure): Ditto.
      	* tree-flow.h (vectorize_loops, tree_ssa_lim, tree_ssa_unswitch_loops,
      	canonicalize_induction_variables, tree_unroll_loops_completely,
      	tree_ssa_prefetch_arrays, remove_empty_loops, tree_ssa_iv_optimize,
      	estimate_numbers_of_iterations, free_numbers_of_iterations_estimates,
      	tree_duplicate_loop_to_header_edge, tree_ssa_loop_version,
      	tree_unroll_loop, linear_transform_loops): Declaration changed.
      	* basic-block.h: Remove declaration of struct loops.
      	* cfghooks.h (struct cfg_hooks): Change type of
      	cfg_hook_duplicate_loop_to_header_edge.
      	(cfg_hook_duplicate_loop_to_header_edge): Declaration changed.
      	* tree-vectorizer.h (slpeel_tree_peel_loop_to_edge,
      	vect_transform_loop): Declaration changed.
      	* lambda.h (gcc_loopnest_to_lambda_loopnest): Declaration changed.
      	* cfgloop.h (flow_loops_dump, fix_loop_structure,
      	mark_irreducible_loops, mark_single_exit_loops, mark_loop_exit_edges,
      	cancel_loop_tree, create_preheaders, force_single_succ_latches,
      	verify_loop_structure, duplicate_loop, duplicate_loop_to_header_edge,
      	loopify, loop_version, remove_path, unswitch_loops,
      	unroll_and_peel_loops, doloop_optimize_loops, move_loop_invariants):
      	Declaration changed.
      
      From-SVN: r119189
      Zdenek Dvorak committed