1. 27 Jun, 2009 1 commit
    • re PR tree-optimization/26854 (Inordinate compile times on large routines) · c6741572
      2009-06-07  Paolo Bonzini  <bonzini@gnu.org>
      
      	PR rtl-optimization/26854
              * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
              * df-problems.c (df_rd_add_problem): Fix comment.
              (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
              df_md_simulate_artificial_defs_at_top,
              df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
              df_md_bb_local_compute, df_md_local_compute, df_md_reset,
              df_md_transfer_function, df_md_init, df_md_confluence_0,
              df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
              problem_MD, df_md_add_problem): New.
              * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
              df_md_get_bb_info): New.
              DF_LAST_PROBLEM_PLUS1): Adjust.
      
              * Makefile.in (fwprop.o): Include domwalk.h.
              * fwprop.c: Include domwalk.h.
              (reg_defs, reg_defs_stack): New.
              (bitmap_only_bit_between): Remove.
              (process_defs): New.
              (process_uses): Use reg_defs and local_md instead of
              bitmap_only_bit_between and local_rd.
              (single_def_use_enter_block): New, from build_single_def_use_links.
              (single_def_use_leave_block): New.
              (build_single_def_use_links): Remove code moved to
              single_def_use_enter_block, invoke domwalk.
              (use_killed_between): Adjust comment.
      
      From-SVN: r149010
      Paolo Bonzini committed
  2. 08 May, 2009 1 commit
    • re PR rtl-optimization/33928 (30% performance slowdown in floating-point code caused by r118475) · 00952e97
      2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
      
      	PR rtl-optimization/33928
      	PR 26854
      	* fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
      	process_uses, build_single_def_use_links): New.
      	(update_df): Update use_def_ref.
      	(forward_propagate_into): Use get_def_for_use instead of use-def
      	chains.
      	(fwprop_init): Call build_single_def_use_links and let it initialize
      	dataflow.
      	(fwprop_done): Free use_def_ref.
      	(fwprop_addr): Eliminate duplicate call to df_set_flags.
      	* df-problems.c (df_rd_simulate_artificial_defs_at_top, 
      	df_rd_simulate_one_insn): New.
      	(df_rd_bb_local_compute_process_def): Update head comment.
      	(df_chain_create_bb): Use the new RD simulation functions.
      	* df.h (df_rd_simulate_artificial_defs_at_top, 
      	df_rd_simulate_one_insn): New.
      	* opts.c (decode_options): Enable fwprop at -O1.
      	* doc/invoke.texi (-fforward-propagate): Document this.
      
      From-SVN: r147282
      Paolo Bonzini committed
  3. 27 Apr, 2009 1 commit
    • collect2.c (is_ctor_dtor): Change type of ret field in struct names to symkind. · 81f40b79
      ./:	* collect2.c (is_ctor_dtor): Change type of ret field in struct
      	names to symkind.
      	* dce.c (run_fast_df_dce): Change type of old_flags to int.
      	* df-core.c (df_set_flags): Change return type to int.  Change
      	type of old_flags to int.
      	(df_clear_flags): Likewise.
      	* df-scan.c (df_def_record_1): Change 0 to VOIDmode.
      	(df_get_conditional_uses): Likewise.
      	* df.h (df_set_flags, df_clear_flags): Update declarations.
      	* dwarf2out.c (struct indirect_string_node): Change type of form
      	field to enum dwarf_form.
      	(AT_string_form): Change return type to enum dwarf_form.
      	* fixed-value.c (fixed_compare): Add cast to enum type.
      	* fwprop.c (update_df): Change 0 to VOIDmode.
      	* gensupport.c: Change 0 to UNKNOWN.
      	* gimple.h (gimple_cond_code): Add cast to enum type.
      	* haifa-sched.c (reemit_notes): Add cast to enum type.
      	* hooks.c (hook_int_void_no_regs): Remove function.
      	* hooks.h (hook_int_void_no_regs): Remove declaration.
      	* optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
      	* predict.c (combine_predictions_for_insn): Add casts to enum
      	type.
      	* real.c (real_arithmetic): Add cast to enum type.
      	(real_compare): Likewise.
      	* target.h (struct gcc_target): Change return type of
      	branch_target_register_class to enum reg_class.
      	* target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
      	default_branch_target_register_class.
      	* targhooks.c (default_branch_target_register_class): New
      	function.
      	* targhooks.h (default_branch_target_register_class): Declare.
      	* tree-data-ref.c (print_direction_vector): Add cast to enum
      	type.
      	* tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
      	cast to int.
      	* tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
      	ERROR_MARK.
      	* tree-vect-slp.c (vect_build_slp_tree): Change 0 to
      	vect_uninitialized_def.  Change 0 to ERROR_MARK.
      	* tree-vect-stmts.c (supportable_widening_operation): Don't
      	initialize icode1 and icode2.
      	* tree-vectorizer.h (enum vect_def_type): Add
      	vect_uninitialized_def.
      	* config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
      	and to STD_C89.
      	(cmn_err_flag_specs): Change 0 to STD_C89.
      	(cmn_err_char_table): Likewise.
      	* config/arm/arm.c (get_arm_condition_code): Change type of code
      	to enum arm_cond_code.
      	(IWMMXT_BUILTIN): Change 0 to UNKNOWN.
      	(IWMMXT_BUILTIN2): Likewise.
      	(neon_builtin_type_bits): Don't define typedef.
      	(neon_builtin_datum): Change type of bits field to int.
      	(arm_expand_neon_args): Add cast to enum type.
      	* config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
      	TLS_MODEL_NONE.
      	* config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
      	casts to enum type.
      	* config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
      	MIPS_FP_COND_f.
      	* config/mips/mips.md (jal_macro): Return enum constant.
      	(single_insn): Likewise.
      	* config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
      	CODE_FOR_nothing.
      	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
      	casts to enum type.
      	* config/s390/s390.c (s390_tune_flags): Change type to int.
      	(s390_arch_flags): Likewise.
      	(s390_handle_arch_option): Change flags field of struct pta to
      	int.
      	* config/s390/s390.h (s390_tune_flags): Update declaration.
      	(s390_arch_flags): Likewise.
      	* config/sh/sh.c (prepare_move_operands): Compare
      	tls_symbolic_operand result with enum constant.
      	(sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
      	(sh_expand_prologue): Add cast to enum type.
      	(sh_expand_epilogue): Likewise.
      	(tls_symbolic_operand): Change return type to enum tls_model.
      	(fpscr_set_from_mem): Add cast to enum type.
      	(legitimize_pic_address): Compare tls_symbolic_operand result with
      	enum constant.
      	(sh_target_reg_class): Change return type to enum reg_class.
      	* config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
      	PROCESSOR_xxx.
      	* config/sh/sh-protos.h (tls_symbolic_operand): Update
      	declaration.
      	* config/sparc/sparc.c (sparc_override_options): Add cast to enum
      	type.
      	* config/sparc/sparc.md (empty_delay_slot): Return enum constant.
      	(pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
      	(delayed_branch, tls_call_delay): Likewise.
      	(eligible_for_sibcall_delay): Likewise.
      	(eligible_for_return_delay): Likewise. 
      	* config/spu/spu.c (expand_builtin_args): Add cast to enum type.
      	(spu_expand_builtin_1): Likewise.
      
      	* c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
      	for all types of conversions.
      	(output_init_element): Issue -Wc++-compat warning if needed when
      	initializing a bitfield with enum type.
      	* c-parser.c (c_parser_expression): Set original_type to
      	original_type of right hand operand of comman operator.
      cp/:
      	* semantics.c (finish_omp_clauses): Change type of c_kind to enum
      	omp_clause_code.
      fortran/:
      	* trans-intrinsic.c (DEFINE_MATH_BUILTIN): Add casts to enum
      	type.
      	* trans-io.c (st_parameter_field): Add casts to enum type.
      java/:
      	* builtins.c (java_builtins): Add casts to enum type.
      	* verify-impl.c (check_class_constant): Add cast to enum type.
      	(check_constant, check_wide_constant): Likewise.
      objc/:
      	* objc-act.c (objc_gimplify_expr): Add casts to enum type.
      testsuite/:
      	* gcc.dg/Wcxx-compat-5.c: New testcase.
      	* gcc.dg/Wcxx-compat-6.c: New testcase.
      
      From-SVN: r146855
      Ian Lance Taylor committed
  4. 24 Apr, 2009 1 commit
    • combine.c (record_value_for_reg): Change 0 to VOIDmode, twice. · 32e8bb8e
      gcc/:
      	* combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
      	(record_dead_and_set_regs): Likewise.
      	* df.h (struct df_mw_hardreg): Change flags field to int.
      	(struct df_base_ref): Likewise.
      	(struct df): Change changeable_flags field to int.
      	* df-scan.c (df_defs_record): Change clobber_flags to int.
      	* dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
      	constants rather than #define macros.
      	(enum dwarf_attribute, enum dwarf_location_atom): Likewise.
      	(enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
      	(enum dwarf_calling_convention): Likewise.
      	(enum dwarf_line_number_x_ops): Likewise.
      	(enum dwarf_call_frame_info): Likewise.
      	(enum dwarf_source_language): Likewise.
      	* dwarf2out.c (int_loc_descriptor): Add cast to enum type.
      	(add_calling_convention_attribute): Likewise.
      	* fold-const.c (fold_undefer_overflow_warnings): Add cast to enum
      	type.
      	(combine_comparisons): Change compcode to int.  Add cast to enum
      	type.
      	* genrecog.c (maybe_both_true_2): Change c to int.
      	(write_switch): Likewise.  Add cast to enum type.
      	* gimplify.c (gimplify_omp_for): Handle return values from
      	gimplify_expr using MIN rather than bitwise or.
      	(gimplify_expr): Add cast to enum type.
      	* ipa-prop.c (update_jump_functions_after_inlining): Change
      	IPA_BOTTOM to IPA_JF_UNKNOWN.
      	* ira.c (setup_class_subset_and_memory_move_costs): Change mode to
      	int.  Add casts to enum type.
      	(setup_cover_and_important_classes): Change cl to int.  Add casts
      	to enum type.
      	(setup_class_translate): Change cl and mode to int.
      	(ira_init_once): Change mode to int.
      	(free_register_move_costs): Likewise.
      	(setup_prohibited_mode_move_regs): Add casts to enum type.
      	* langhooks.c (add_builtin_function_common): Rework assertion that
      	value fits bitfield.
      	* mcf.c (add_fixup_edge): Change type parameter to edge_type.
      	* omega.c (omega_do_elimination): Avoid math on enum types.
      	* optabs.c (expand_vec_shift_expr): Remove casts to int.
      	* opts.c (set_debug_level): Change 2 to enum constant.  Use new
      	int local to handle integral_argment value.
      	* regmove.c (try_auto_increment): Change PUT_MODE to
      	PUT_REG_NOTE_KIND.
      	* reload.c (push_secondary_reload): Add casts to enum type.
      	(secondary_reload_class, find_valid_class): Likewise.
      	* reload1.c (emit_input_reload_insns): Likewise.
      	* rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
      	* sel-sched.c (init_hard_regs_data): Change cur_mode to int.
      	* sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
      	constant.
      	* tree.c (build_common_builtin_nodes): Add casts to enum type.
      	* tree-complex.c (complex_lattice_t): Typedef to int rather than
      	enum type.
      	(expand_complex_libcall): Add casts to enum type.
      	* tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
      	* tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
      	with ERROR_MARK, not NUM_TREE_CODES.
      	(vect_create_epilog_for_reduction): Likewise.
      	(vectorizable_reduction): Don't initialize epiloc_reduc_code.
      	When not using it, set it to ERROR_MARK rather than
      	NUM_TREE_CODES.
      	* tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
      	enum machine_mode.
      	* tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
      	vect_unused_in_loop.  Change 0 to loop_vect.
      	* tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum
      	type.
      	* var-tracking.c (get_init_value): Change return type to enum
      	var_init_status.
      	* vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
      	* config/arm/arm.c (fp_model_for_fpu): Change to array to enum
      	arm_fp_model.
      	(arm_override_options): Add casts to enum type.
      	(arm_emit_tls_decoration): Likewise.
      	* config/i386/i386.c (ix86_function_specific_restore): Add casts
      	to enum type.
      	* config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
      	* config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
      	* config/rs6000/rs6000.c (rs6000_override_options): Add casts to
      	enum type.
      	* config/s390/s390.c (code_for_builtin_64): Change to array of
      	enum insn_code.
      	(code_for_builtin_31): Likewise.
      	(s390_expand_builtin): Change code_for_builtin to enum insn_code
      	const *.
      	* config/sparc/sparc.c (sparc_override_options): Change value
      	field in struct code_model to enum cmodel.  In initializer change
      	0 to NULL and add cast to enum type.
      
      	* c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
      	Change all callers.  Issue a -Wc++-compat warning using
      	lhs_origtype if necessary.
      	(convert_for_assignment): Issue -Wc++-compat warnings about
      	invalid conversions to enum type on assignment.
      	* c-common.h (build_modify_expr): Update declaration.
      
      gcc/cp/:
      	* call.c (build_temp): Change 0 to enum constant.
      	* cp-tree.h (cp_lvalue_kind): Typedef to int rather than enum
      	type.
      	* cp-gimplify.c (cp_gimplify_expr): Add cast to enum type.
      	* decl2.c (constrain_visibility): Likewise.
      	* parser.c (cp_lexer_get_preprocessor_token): Likewise.
      	(cp_parser_flags): Typedef to int rather than enum type.
      	(cp_parser_expression_stack_entry): Change prec field to enum
      	cp_parser_prec.
      
      	* typeck.c (build_modify_expr): Add lhs_origtype parameter.
      	Change all callers.
      
      gcc/fortran/:
      	* gfortran.h (enum gfc_symbol_type): New named enum type, broken
      	out of struct gfc_symbol.
      	(struct gfc_symbol): Use enum gfc_symbol_type.
      	(enum gfc_array_ref_dimen_type): New named enum type, broken out
      	of struct gfc_array_ref).
      	(struct gfc_array_ref): Use enum gfc_array_ref_dimen_type.
      	(mod_pointee_as): Update declaration.
      	* decl.c (add_global_entry): Change type to enum gfc_symbol_type.
      	(gfc_mod_pointee_as): Change return type to "match".
      	* module.c (mio_array_ref): Add cast to enum type.
      	(mio_symbol): Likewise.
      	* resolve.c (resolve_global_procedure): Change type to enum
      	gfc_symbol_type.
      	* trans-io.c (gfc_build_st_parameter): Change type to unsigned
      	int.
      
      gcc/java/:
      	* jcf-parse.c (handle_constant): Add cast to enum type.
      
      gcc/objc/:
      	* objc-act.c (get_super_receiver): Update calls to
      	build_modify_expr to pass new argument.
      
      gcc/testsuite/:
      	* gcc.dg/Wcxx-compat-4.c: New testcase.
      
      From-SVN: r146735
      Ian Lance Taylor committed
  5. 20 Apr, 2009 1 commit
    • Fix enum conversions which are invalid in C++: · bbbbb16a
      gcc/:
      	Fix enum conversions which are invalid in C++:
      	* auto-inc-dec.c (attempt_change): Change 0 to SET in function
      	call.
      	* calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function
      	call.
      	* cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
      	* dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
      	* dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function
      	call.
      	(dbxout_parms): Likewise.
      	* df-core.c (df_set_flags): Change changeable_flags parameter to
      	int.
      	(df_clear_flags): Likewise.
      	* df-problems.c (df_rd_bb_local_compute_process_def): Change
      	top_flag parameter to int.
      	(df_chain_create_bb_process_use): Likewise.
      	(df_chain_add_problem): Change chain_flags parameter to unsigned
      	int.  Remove cast.
      	* df-scan.c (df_ref_create): Change ref_flags parameter to int.
      	(df_ref_create_structure, df_def_record_1): Likewise.
      	(df_defs_record, df_uses_record, df_get_call_refs): Likewise.
      	(df_notes_rescan): Change 0 to VOIDmode in function call.
      	(df_get_call_refs, df_insn_refs_collect): Likewise.
      	(df_bb_regs_collect): Likewise.
      	(df_entry_block_defs_collect): Likewise.
      	(df_exit_block_uses_collect): Likewise.
      	* df.h: Update declarations.
      	* double-int.c (double_int_divmod): Add cast to enum type.
      	* dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
      	* dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
      	(based_loc_descr): Likewise.
      	(loc_descriptor_from_tree_1): Change first_op and second_op to
      	enum dwarf_location_atom.  Add cast to enum type.
      	* expmed.c (init_expmed): Change 0 to SET in function call.
      	* expr.c (init_expr_target): Change 0 to VOIDmode in function
      	call.
      	(expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
      	(do_store_flag): Likewise.
      	* fixed-value.h (struct fixed_value): Change mode to enum
      	machine_mode.
      	* function.c (assign_parms): Change 0 to VOIDmode in function
      	call.
      	* genautomata.c (insert_automaton_decl): Change 1 to INSERT in
      	function call.
      	(insert_insn_decl, insert_decl, insert_state): Likewise.
      	(automata_list_finish): Likewise.
      	* genrecog.c (process_define_predicate): Add cast to enum type.
      	* gensupport.c (init_predicate_table): Add cast to enum type.
      	* gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
      	function call.
      	(gimple_build_call_1, gimple_build_label): Likewise.
      	(gimple_build_goto, gimple_build_asm_1): Likewise.
      	(gimple_build_switch_1, gimple_build_cdt): Likewise.
      	* gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function
      	call.
      	(enum fallback): Rename from enum fallback_t.
      	(fallback_t): Typedef as int.
      	* gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
      	GSI_SAME_STMT in function call.
      	* ira.c (setup_class_subset_and_memory_move_costs): Add casts to
      	enum type.
      	(setup_reg_class_relations): Likewise.
      	(setup_reg_class_nregs): Change cl to int.  Add casts to enum
      	type.
      	(setup_prohibited_class_mode_regs): Add cast to enum type.
      	(setup_prohibited_mode_move_regs): Likewise.
      	* ira-costs.c (record_reg_classes): Change rclass to enum
      	reg_class.
      	(record_address_regs): Change i to enum reg_class.
      	* lists.c (alloc_EXPR_LIST): Add cast to enum type.
      	* machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
      	(GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
      	(GET_MODE_2XWIDER_MODE): Likewise.
      	(GET_CLASS_NARROWEST_MODE): Likewise.
      	* omp-low.c (expand_omp_for): Add cast to enum type.
      	* optabs.c (debug_optab_libfuncs): Add casts to enum type.
      	* opts.c (enable_warning_as_error): Change kind to diagostic_t.
      	* postreload.c (reload_cse_simplify_operands): Change rclass local
      	to enum reg_class.
      	* predict.c (combine_predictions_for_insn): Change best_predictor
      	and predictor to enum br_predictor.
      	(combine_predictions_for_bb): Likewise.
      	(build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
      	use SET_PREDICT_EXPR_OUTCOME.
      	* real.c (real_arithmetic): Change icode to code in function
      	call.
      	* reginfo.c (init_move_cost): Add casts to enum type.
      	(init_reg_sets_1, init_fake_stack_mems): Likewise.
      	* regmove.c (regclass_compatible_p): Change class0 and class1 to
      	enum reg_class.
      	* reload.c (find_valid_class): Add casts to enum type.
      	(push_reload): Change 0 to NO_REGS in function call.
      	(find_reloads): Change this_alternative to array of enum
      	reg_class.  Remove some now-unnecessary casts.
      	(make_memloc): Change 0 to VOIDmode in function call.
      	* reload1.c (reload): Change 0 to VOIDmode in function call.
      	(eliminate_regs_1, elimination_effects): Likewise.
      	(eliminate_regs_in_insn): Likewise.
      	(emit_input_reload_insns): Add cast to enum type.
      	(delete_output_reload): Change 0 to VOIDmode in function call.
      	* reorg.c (insn_sets_resource_p): Convert include_delayed_effects
      	to enum type in function call.
      	* tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
      	(SET_PREDICT_EXPR_OUTCOME): Define.
      	* tree-dump.c (get_dump_file_info): Change phase parameter to
      	int.
      	(get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
      	(dump_initialized_p, dump_flag_name, dump_end): Likewise.
      	(dump_function): Likewise.
      	* tree-dump.h: Update declarations.
      	* tree-pass.h: Update declarations.
      	* varasm.c (assemble_integer): Change mclass to enum mode_class.
      	* config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
      	enum type.
      	(arm_rtx_costs_1): Correct parenthesization.
      	(arm_rtx_costs): Add casts to enum type.
      	(adjacent_mem_locations): Reverse arguments to const_ok_for_op.
      	(vfp_emit_fstmd): Use add_rg_note.
      	(emit_multi_reg_push, emit_sfm): Likewise.
      	(thumb_set_frame_pointer): Likewise.
      	(arm_expand_prologue): Likewise.
      	(arm_regno_class): Change return type to enum reg_class.
      	(thumb1_expand_prologue): Use add_reg_note.
      	* config/arm/arm-protos.h (arm_regno_class): Update declaration.
      	* config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
      	in function call.
      	* config/arm/gentune.sh: Add cast to enum type.
      	* config/arm/arm-tune.md: Rebuild.
      	* config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
      	(ix86_split_fp_branch, predict_jump): Likewise.
      	(ix86_expand_multi_arg_builtin): Change sub_code from enum
      	insn_code to enum rtx_code.
      	(ix86_builtin_vectorized_function): Add cast to enum type.
      	* config/i386/i386.md (truncdfsf2): Change slot to enum
      	ix86_stack_slot.
      	(truncxf<mode>2, isinf<mode>2): Likewise.
      	* config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
      	enum type.
      	* config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
      	(spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
      	(insert_bundle_state): Change 1 to INSERT in function call.
      	(ia64_add_bundle_selector_before): Likewise.
      	* config/ia64/ia64.md (cpu attr): Add cast to enum type.
      	(save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
      	(restore_stack_nonlocal): Likewise.
      	* config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
      	function call.
      	* config/mips/mips.c (mips_binary_cost): Change 0 to SET in
      	function call.
      	(mips_rtx_costs): Likewise.
      	(mips_override_options): Add casts to enum type.
      	* config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
      	in function call.
      	* config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
      	(store_reg, set_reg_plus_d): Likewise.
      	(hppa_expand_prologue, hppa_profile_hook): Likewise.
      	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
      	cast to enum type.
      	(altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
      	function call.
      	(emit_unlikely_jump): Use add_reg_note.
      	(rs6000_emit_allocate_stack): Likewise.
      	(rs6000_frame_related, rs6000_emit_prologue): Likewise.
      	(output_toc): Change 1 to INSERT in function call.
      	(output_profile_hook): Change 0 to LCT_NORMAL in function call.
      	(rs6000_initialize_trampoline): Likewise.
      	(rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
      	function call.
      	* config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
      	(s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
      	(s390_expand_setmem, s390_expand_cmpmem): Likewise.
      	(save_gprs): Use add_reg_note.
      	(s390_emit_prologue): Likewise.
      	(s390_expand_builtin): Change 0 to EXPAND_NORMAL in function
      	call.
      	* config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
      	(sparc_fold_builtin): Add cast to enum type.
      	* config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
      	enum insn_code.
      	(spu_expand_prologue): Use add_reg_note.
      	(expand_builtin_args): Change 0 to EXPAND_NORMAL in function
      	call.
      
      	* c-parser.c (c_parser_attributes): Change VEC back to tree list.
      	(c_parser_postfix_expression_after_primary): Get VEC for list of
      	arguments.  Get original types of arguments.  Call
      	build_function_call_vec.
      	(cached_expr_list_1, cached_expr_list_2): New static variables.
      	(c_parser_expr_list): Change return type to VEC *.  Add
      	p_orig_types parameter.  Change all callers.
      	(c_parser_release_expr): New static function.
      	(c_parser_vec_to_tree_list): New static function.
      	* c-typeck.c (build_function_call): Rewrite to build a VEC and
      	call build_function_call_vec.
      	(build_function_call_vec): New function, based on old
      	build_function_call.
      	(convert_arguments): Remove nargs and argarray parameters.  Change
      	values to a VEC.  Add origtypes parameter.
      	(build_modify_expr): Add rhs_origtype parameter.  Change all
      	callers.
      	(convert_for_assignment): Add origtype parameter.  Change all
      	callers.  If warn_cxx_compat, check for conversion to an enum
      	type when calling a function.
      	(store_init_value): Add origtype parameter.  Change all callers.
      	(digest_init): Likewise.
      	(struct init_node): Add origtype field.
      	(add_pending_init): Add origtype parameter.  Change all callers.
      	(output_init_element): Likewise.
      	(output_pending_init_elements): Pass origtype from init_node to
      	output_init_element.
      	(process_init_elemnt): Pass origtype from c_expr to
      	output_init_element.
      	(c_finish_return): Add origtype parameter.  Change all callers.
      	* c-common.c (sync_resolve_size): Change params to VEC *.  Change
      	caller.
      	(sync_resolve_params): Likewise.
      	(sync_resolve_return): Change params to first_param.  Change
      	caller.
      	(resolve_overloaded_builtins): Change params to VEC *.  Change
      	callers.   Save first parameter around call to
      	build_function_call_vec.
      	* c-decl.c (finish_decl): Add origtype parameter.  Change all
      	callers.  Call build_function_call_vec rather than
      	build_function_call for cleanup.
      	* c-tree.h: Update declarations.
      	* c-common.h: Update declarations.
      	* stub-objc.c (objc_rewrite_function_call): Change parameter from
      	params to first_param.
      	* target.h (struct gcc_target): Change resolve_overloaded_builtin
      	params parameter from tree to void *.
      	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
      	Change arglist parameter to have type void *, and to be a pointer
      	to a VEC.
      	* config/rs6000/rs6000-protos.h
      	(altivec_resolve_overloaded_builtin): Update declaration.
      	* config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
      	fnargs parameter to have type void *, and to be a pointer to a
      	VEC.  Call build_function_call_vec instead of
      	build_function_call.
      	* config/spu/spu-protos.h (spu_expand_builtin): Update
      	declaration.
      
      gcc/cp/:
      	* typeck.c (build_function_call_vec): New function.
      	(cp_build_function_call): Only pass first parameter to
      	objc_rewrite_function_call.
      	(build_modify_expr): Add rhs_origtype parameter.  Change all
      	callers.
      	* decl.c (finish_decl): Add origtype parameter.  Change all
      	callers.
      	* semantics.c (finish_call_expr): Pass VEC to
      	resolve_overloaded_builtin.
      
      gcc/objc:
      	* objc-act.c (objc_rewrite_function_call): Change parameter from
      	params to first_param.  Change all callers.
      
      gcc/testsuite:
      	* gcc.dg/Wcxx-compat-3.c: New testcase.
      
      From-SVN: r146451
      Ian Lance Taylor committed
  6. 17 Apr, 2009 1 commit
    • df.h: Include "timevar.h". · 7072a650
      	* df.h: Include "timevar.h".
      	(struct df_problem): Change tv_id field to timevar_id_t.
      	* tree-pass.h: Include "timevar.h".
      	(struct opt_pass): Change tv_id field to timevar_id_t.
      	* timevar.h (timevar_id_t): Define TV_NONE.
      	* passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
      	TV_NONE rather than tv_id != 0.
      	(execute_one_pass): Likewise.
      	* Makefile.in (DF_H): Add $(TIMEVAR_H).
      	(TREE_PASS_H): Define.  Change all instances of tree-pass.h in
      	dependencies to $(TREE_PASS_H).
      	* bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
      	to TV_NONE.
      	(pass_branch_target_load_optimize2): Likewise.
      	* cfglayout.c (pass_into_cfg_layout_mode): Likewise.
      	(pass_outof_cfg_layout_mode): Likewise.
      	* cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
      	(pass_rebuild_cgraph_edges): Likewise.
      	(pass_remove_cgraph_callee_edges): Likewise.
      	* df-core.c (pass_df_initialize_opt): Likewise.
      	(pass_df_initialize_no_opt): Likewise.
      	(pass_df_finish): Likewise.
      	* emit-rtl.c (pass_unshare_all_rtl): Likewise.
      	* except.c (pass_set_nothrow_function_flags): Likewise.
      	(pass_convert_to_eh_region_ranges): Likewise.
      	* final.c (pass_compute_alignments): Likewise.
      	* function.c (pass_instantiate_virtual_regs): Likewise.
      	(pass_init_function): Likewise.
      	(pass_leaf_regs): Likewise.
      	(pass_match_asm_constraints): Likewise.
      	* gimple-low.c (pass_lower_cf): Likewise.
      	(pass_mark_used_blocks): Likewise.
      	* init-regs.c (pass_initialize_regs): Likewise.
      	* integrate.c (pass_initial_value_sets): Likewise.
      	* ira.c (pass_ira): Likewise.
      	* jump.c (pass_cleanup_barriers): Likewise.
      	* omp-low.c (pass_expand_omp): Likewise.
      	(pass_lower_omp): Likewise.
      	* matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
      	* recog.c (pass_split_all_insns): Likewise.
      	(pass_split_after_reload): Likewise.
      	(pass_split_before_regstack): Likewise.
      	(pass_split_before_sched2): Likewise.
      	(pass_split_for_shorten_branches): Likewise.
      	* reginfo.c (pass_reginfo_init): Likewise.
      	(pass_subregs_of_mode_init): Likewise.
      	(pass_subregs_of_mode_finish): Likewise.
      	* passes.c (pass_postreload): Likewise.
      	* stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
      	* tree-cfg.c (pass_remove_useless_stmts): Likewise.
      	(pass_warn_function_return): Likewise.
      	(pass_warn_function_noreturn): Likewise.
      	* tree-complex.c (pass_lower_complex): Likewise.
      	(pass_lower_complex_O0): Likewise.
      	* tree-if-conv.c (pass_if_conversion): Likewise.
      	* tree-into-ssa.c (pass_build_ssa): Likewise.
      	* tree-mudflap.c (pass_mudflap_1): Likewise.
      	(pass_mudflap_2): Likewise.
      	* tree-nomudflap.c (pass_mudflap_1): Likewise.
      	(pass_mudflap_2): Likewise.
      	* tree-nrv.c (pass_return_slot): Likewise.
      	* tree-object-size.c (pass_object_sizes): Likewise.
      	* tree-optimize.c (pass_all_optimizations): Likewise.
      	(pass_early_local_passes): Likewise.
      	(pass_all_early_optimizations): Likewise.
      	(pass_cleanup_cfg): Likewise.
      	(pass_cleanup_cfg_post_optimizing): Likewise.
      	(pass_free_datastructures): Likewise.
      	(pass_free_cfg_annotations): Likewise.
      	(pass_fixup_cfg): Likewise.
      	(pass_init_datastructures): Likewise.
      	* tree-ssa.c (pass_early_warn_uninitialized): Likewise.
      	(pass_late_warn_uninitialized): Likewise.
      	(pass_update_address_taken): Likewise.
      	* tree-ssa-ccp.c (pass_fold_builtins): Likewise.
      	* tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
      	(pass_cse_sincos): Likewise.
      	(pass_convert_to_rsqrt): Likewise.
      	* tree-ssa-structalias.c (pass_build_alias): Likewise.
      	* tree-stdarg.c (pass_stdarg): Likewise.
      	* tree-tailcall.c (pass_tail_recursion): Likewise.
      	(pass_tail_calls): Likewise.
      	* tree-vect-generic.c (pass_lower_vector): Likewise.
      	(pass_lower_vector_ssa): Likewise.
      	* tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
      
      From-SVN: r146222
      Ian Lance Taylor committed
  7. 18 Mar, 2009 1 commit
    • dse.c (struct group_info): Reorder fields for 64-bit hosts. · 8f5929e1
      	* dse.c (struct group_info): Reorder fields for 64-bit hosts.
      	* matrix-reorg.c (struct matrix_info): Likewise.
      	* tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
      	* rtl.h (struct mem_attrs): Likewise.
      	* df.h (struct df): Likewise.
      	* tree-data-ref.h (struct data_dependence_relation): Likewise.
      	* ira-int.h (struct ira_allocno): Likewise.
      	* df-scan.c (struct df_collection_rec): Likewise.
      	* ira.c (struct equivalence): Likewise.
      	* function.c (struct temp_slot): Likewise.
      	* cfgloop.h (struct loop): Likewise.
      
      	* parser.c (struct cp_token): Reorder fields for 64-bit hosts.
      	(eof_token): Adjust.
      
      	* include/cpplib.h (struct cpp_dir): Reorder fields for 64-bit hosts.
      
      From-SVN: r144938
      Jakub Jelinek committed
  8. 18 Dec, 2008 2 commits
    • df-scan.c (persistent_obstack, [...]): Remove. · f2ecb626
      	* df-scan.c (persistent_obstack, df_invalidated_by_call): Remove.
      	(df_scan_start_dump, df_get_call_refs, df_hard_reg_init): Rename
      	df_invalidated_by_call to invalidated_by_call_regset.
      	* df.h (df_invalidated_by_call): Remove.
      	* regclass.c (regs_invalidated_by_call_regset, persistent_obstack): New
      	variables.
      	(init_reg_sets_1): Initialize regs_invalidated_by_call_regset.
      	(globalize_reg): Likewise.
      	* df-problems.c (df_rd_local_compute, df_lr_confluence_n,
      	df_byte_lr_alloc): Rename df_invalidated_by_call to
      	invalidated_by_call_regset.
      	* basic-block.h (regs_invalidated_by_call_regset): Declare.
      
      Co-Authored-By: Kai Tietz <kai.tietz@onevision.com>
      
      From-SVN: r142812
      Jan Hubicka committed
    • re PR rtl-optimization/37922 (code generation error) · 02b47899
      2008-12-18  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	PR rtl-optimization/37922
      	* dse.c (bb_info): Added regs_live field.
      	(look_for_hardregs): New function.
      	(replace_read): Added regs_live parameter and code to check that
      	shift sequence does not clobber live hardregs.
      	(check_mem_read_rtx): Added parameter to replace_read.
      	(dse_step1): Added regs_live bitmap and initialize it.
      	(rest_of_handle_dse): Added DF_NOTES problem and earlier call to
      	df_analyze.
      	* df-problems.c Renamed to 
      	df_simulate_initialize_backwards.
      	(df_simulate_one_insn): Renamed to
      	df_simulate_one_insn_backwards.
      	(df_simulate_artificial_refs_at_top): Renamed to 
      	df_simulate_finalize_backwards.
      	(df_simulate_initialized_forwards,
      	df_simulate_one_insn_forwards,
      	df_simulate_finalize_backwards): New functions.
      	* df.h (df_simulate_artificial_refs_at_end): Renamed to 
      	df_simulate_initialize_backwards.
      	(df_simulate_one_insn): Renamed to
      	df_simulate_one_insn_backwards.
      	(df_simulate_artificial_refs_at_top): Renamed to 
      	df_simulate_finalize_backwards.
      	(df_simulate_initialized_forwards,
      	df_simulate_one_insn_forwards,
      	df_simulate_finalize_backwards): New functions.
      	* ra-conflict.c (global_conflicts): Renamed
      	df_simulate_artificial_refs_at_end to
      	df_simulate_initialize_backwards.
      	* sel-sched.c (propagate_lv_set): Renamed df_simulate_one_insn to
      	df_simulate_one_insn_backwards.
      	* ifcvt.c (dead_or_predicable): Renamed
      	df_simulate_artificial_refs_at_end to
      	df_simulate_initialize_backwards. Renamed df_simulate_one_insn to
      	df_simulate_one_insn_backwards.
      	* recog.c (peephole2_optimize): Ditto.
      	* rtl-factoring (collect_pattern_seqs, clear_regs_live_in_seq): Ditto.
      
      2008-12-18  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	PR rtl-optimization/37922
      	* g++.dg/torture/pr37922.C: New test.
      
      From-SVN: r142809
      Kenneth Zadeck committed
  9. 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
  10. 26 Jun, 2008 1 commit
    • alias.c (record_alias_subset, [...]): Fix -Wc++-compat and/or -Wcast-qual warnings. · f883e0a7
      	* alias.c (record_alias_subset, init_alias_analysis): Fix
      	-Wc++-compat and/or -Wcast-qual warnings.
      	* attribs.c (lookup_attribute_spec): Likewise.
      	* bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
      	copy_bb, connect_traces,
      	find_rarely_executed_basic_blocks_and_cr): Likewise.
      	* bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
      	note_btr_set, migrate_btr_defs): Likewise.
      	* builtins.c (result_vector, expand_builtin_memcpy,
      	expand_builtin_mempcpy_args, expand_builtin_strncpy,
      	builtin_memset_read_str, expand_builtin_printf,
      	fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
      	Likewise.
      	* caller-save.c (mark_set_regs): Likewise.
      	* calls.c (expand_call, emit_library_call_value_1): Likewise.
      	* cgraph.c (cgraph_edge): Likewise.
      	* combine.c (likely_spilled_retval_1): Likewise.
      	* coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
      	htab_counts_entry_del, get_coverage_counts): Likewise.
      	* cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
      	new_cselib_val): Likewise.
      	* dbgcnt.c (dbg_cnt_process_opt): Likewise.
      	* dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
      	Likewise.
      	* df-core.c (df_compact_blocks): Likewise.
      	* df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
      	* df-scan.c (df_grow_reg_info, df_ref_create,
      	df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
      	df_ref_compare, df_ref_create_structure, df_bb_refs_record,
      	df_record_entry_block_defs, df_record_exit_block_uses,
      	df_bb_verify): Likewise.
      	* df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
      	DF_REF_EXTRACT_MODE_CONST): New.
      	* dominance.c (get_immediate_dominator, get_dominated_by,
      	nearest_common_dominator, root_of_dom_tree,
      	iterate_fix_dominators, first_dom_son, next_dom_son): Fix
      	-Wc++-compat and/or -Wcast-qual warnings.
      	* dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
      	record_store, replace_read, check_mem_read_rtx, scan_insn,
      	dse_step1, dse_record_singleton_alias_set): Likewise.
      	* dwarf2asm.c (dw2_force_const_mem): Likewise.
      
      From-SVN: r137137
      Kaveh R. Ghazi committed
  11. 18 Jun, 2008 1 commit
    • df.h (struct df_ref): Replace 'insn' field with 'insn_info' field. · 50e94c7e
      	* df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
      	(DF_REF_INSN_INFO): New.
      	(DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
      	(DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
      	with a NULL DF_REF_INSN_INFO.
      	(DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
      	DF_INSN_SET.
      	(DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
      	DF_INSN_INFO_EQ_USES): New.
      	(DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
      	DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
      	DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
      	* df-core.c: Update comment for above changes.
      	(df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
      	DF_INSN_UID_* macros.
      	(df_ref_debug): Check for NULL DF_REF_INSN_INFO.
      	* df-scan.c (df_ref_record): Take a df_insn_info instead of an
      	insn rtx.  Update all callers.
      	(df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
      	df_ref_create_structure, df_insn_refs_collect): Likewise.
      	(df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
      	* df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
      	(df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
      	macros to access the insn refs.
      	(df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
      	* fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
      	(all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
      	for accessing the refs.
      	(try_fwprop_subst): Likewise.
      	* ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
      	* web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
      	for accessing the refs.
      	* loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
      	(check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
      	to look at the insn refs.
      	(record_uses): Likewise.
      	* dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
      	function anymore.
      	(mark_artificial_uses): Don't mark_insn for artificial refs.
      	(mark_reg_rependencies): Likewise.
      
      	* doc/rtl.texi: Remove documentation of ADDRESSOF.
      
      From-SVN: r136885
      Steven Bosscher committed
  12. 09 Jun, 2008 1 commit
  13. 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
  14. 21 Apr, 2008 1 commit
    • dbgcnt.def (ra_byte_scan): Added. · cc806ac1
      2008-04-24  Richard Sandiford  <rsandifo@nildram.co.uk>
      	    Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	* dbgcnt.def (ra_byte_scan): Added.
      	* dbgcnt.c (dbg_cnt): Added code to print message to dump_file
      	when the last hit happens for a counter.  
      	* timevar.def (TV_DF_BYTE_LR): New variable.
      	* tree-pass.h (pass_fast_rtl_byte_dce): New pass.
      	* passes.c (pass_fast_rtl_byte_dce): New pass.
      	* fwprop.c (update_df): Added mode to call df_ref_create.
      	Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
      	DF_REF_EXTRACT_OFFSET.
      	* df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
      	DF_BYTE_LR_OUT, df_byte_lr): New macro.
      	(df_mm): New enum.
      	(df_ref_extract): Added mode field.
      	(DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
      	DF_REF_EXTRACT_OFFSET.
      	(DF_REF_EXTRACT_MODE): New macro.
      	(df_byte_lr_bb_info): New structure.
      	(df_print_byte_regset, df_compute_accessed_bytes, 
      	df_byte_lr_add_problem, df_byte_lr_get_regno_start,
      	df_byte_lr_get_regno_len, 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_compute_accessed_bytes): New function.
      	(df_ref_create): Add parameter.
      	(df_byte_lr_get_bb_info): New inline function.
      	* df-scan.c (df_ref_record, df_uses_record,
      	df_ref_create_structure): Added mode parameter.
      	(df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
      	df_defs_record, df_uses_record, df_get_conditional_uses,
      	df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
      	df_entry_block_defs_collect, df_exit_block_uses_collect):
      	Added mode parameter to calls to df_ref_record, df_uses_record,
      	df_ref_create_structure.
             	(df_ref_equal_p, df_ref_compare): Added test for modes.
      	(df_ref_create_structure): Added code to set mode.  Renamed
      	DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
      	DF_REF_EXTRACT_OFFSET.
      	* df-core.c (df_print_byte_regset): New function.
      	* df-byte-scan.c: New file.
      	* df-problems.c (df_rd_transfer_function): Removed unnecessary
      	calls to BITMAP_FREE.  
      	(df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
      	(df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
      	df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
      	df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
      	df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
      	df_byte_lr_local_compute, df_byte_lr_init,
      	df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
      	df_byte_lr_transfer_function, df_byte_lr_free, 
      	df_byte_lr_top_dump, df_byte_lr_bottom_dump,
      	df_byte_lr_add_problem, 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): New function.
      	* dce.c (byte_dce_process_block): New function.
      	(dce_process_block): au is now passed in rather than computed
      	locally.  Changed loops that look at artificial defs to not look
      	for conditional or partial ones, because there never are any.  
      	(fast_dce): Now is able to drive byte_dce_process_block or 
      	dce_process_block depending on the kind of dce being done.
      	(rest_of_handle_fast_dce): Add parameter to fast_dce.
      	(rest_of_handle_fast_byte_dce): New function.
      	(rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
      	* Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
      
      
      
      
      Co-Authored-By: Kenneth Zadeck <zadeck@naturalbridge.com>
      
      From-SVN: r134523
      Richard Sandiford committed
  15. 06 Mar, 2008 1 commit
    • fwprop.c (update_df): Support width and offset parameters of df_ref_create. · ca9052ce
      2008-03-05  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	* fwprop.c (update_df): Support width and offset parameters of
      	df_ref_create.
      	* ra-conflict.c (mark_reg_store, clear_reg_in_live,
      	global_conflicts): Change DF_REF_EXTRACT to either
      	DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
      	DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
      	* df-scan.c (df_ref_record, df_defs_record,
      	df_ref_create_structure, df_def_record_1, df_uses_record,
      	df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
      	df_bb_refs_collect, df_entry_block_defs_collect,
      	df_exit_block_uses_collect): Support new width and offset fields.
      	(ref_extract_pool): New storage pool.
      	(df_free_ref): New function.
      	(df_reg_chain_unlink, df_free_collection_rec,
      	df_sort_and_compress_refs): Call df_free_ref.
      	(df_ref_equal_p, df_ref_compare): Compare offset and width fields
      	of df_ref_extract.
      	(df_ref_create_structure): Allocate df_ref_extract if offset and
      	width fields are used.
      	(df_def_record_1): Get offset and width from ZERO_EXTRACT.
      	(df_uses_record): Get offset and width from ZERO_EXTRACT 
      	and SIGN_EXTRACT.
      	* global.c (build_insn_chain): Change DF_REF_EXTRACT to either
      	DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
      	DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
      	* df.h (df_ref_flags): Change DF_REF_EXTRACT to either
      	DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
      	DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
      	(df_ref_extract): New structure.
      	(DF_REF_WIDTH, DF_REF_OFFSET): New macros.
      	(df_ref_create): Add width and offset parameters.
      
      From-SVN: r132962
      Kenneth Zadeck committed
  16. 01 Mar, 2008 1 commit
    • df-scan.c (df_ref_chain_change_bb): Simplify. · 63642d5a
      * df-scan.c (df_ref_chain_change_bb): Simplify.
      (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
      set_block_for_insn if there's any change.
      * df.h ((df_insn_change_bb): Fix prototype.
      * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
      df_insn_change_bb, don't call set_block_for_insn.
      * emit-rtl.c (reorder_insns): Likewise.
      * haifa-sched.c (move_insn): Likewise.
      
      From-SVN: r132795
      Alexandre Oliva committed
  17. 22 Jan, 2008 1 commit
    • re PR tree-optimization/26854 (Inordinate compile times on large routines) · 963acd6f
      2008-01-22  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	PR rtl-optimization/26854
      	PR rtl-optimization/34400
      	PR rtl-optimization/34884
      	* ddg.c (create_ddg_dep_from_intra_loop_link): Use
      	DF_RD->gen.
      	* df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
      	(df_rd_bb_info.expanded_lr_out): Deleted
      	* loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
      	* loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
      	(df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
      	df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
      	Removed code to allocate, initialize or free expanded_lr_out.
      	(df_rd_bb_local_compute_process_def): Restructured to make more
      	understandable.
      	(df_rd_confluence_n): Removed code to no apply invalidate_by_call
      	sets if the sets are being trimmed.
      
      From-SVN: r131719
      Kenneth Zadeck committed
  18. 20 Jan, 2008 1 commit
    • re PR tree-optimization/26854 (Inordinate compile times on large routines) · 2b49e1a0
      2008-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	PR rtl-optimization/26854
      	PR rtl-optimization/34400
      	* ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
      	DF_RD->gen.
      	* df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
      	(df_rd_bb_info.expanded_lr_out): New.
      	* loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
      	* loop_iv.c (iv_analysis_loop_init): Ditto.
      	* df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
      	df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
      	Added code to allocate, initialize or free expanded_lr_out.
      	(df_rd_bb_local_compute_process_def): Restructured to make
      	more understandable.
      	(df_rd_confluence_n): Add code to do nothing with fake edges and
      	code to no apply invalidate_by_call sets if the sets are being trimmed.
      	(df_lr_local_finalize): Renamed to df_lr_finalize.
      	(df_live_local_finalize): Renamed to df_live_finalize.
      
      From-SVN: r131670
      Kenneth Zadeck committed
  19. 16 Dec, 2007 1 commit
  20. 14 Dec, 2007 1 commit
  21. 02 Oct, 2007 1 commit
    • ra-conflict.c: New file. · ba49cb7b
      2007-09-02  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	* ra-conflict.c: New file.
      	* ra.h: New file.
      	* reload.c (push_reload, find_dummy_reload): Change DF_RA_LIVE
      	usage to DF_LIVE usage.
      	* rtlanal.c (subreg_nregs_with_regno): New function.  
      	* df-scan.c (df_def_record_1, df_uses_record): Add code to set
      	DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, and DF_REF_SUBREG flags.
      	(df_has_eh_preds): Removed.
      	(df_bb_refs_collect, df_bb_refs_collect, df_bb_refs_collect,
      	df_exit_block_uses_collect): Changed call from df_has_eh_preds to
      	bb_has_eh_pred.
      	* global.c (allocno, max_allocno, conflicts, allocno_row_words,
      	reg_allocno, EXECUTE_IF_SET_IN_ALLOCNO_SET): Moved to ra.h
      	(SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Moved to ra-conflicts.c.
      	(regs_set, record_one_conflict, record_conflicts, mark_reg_store,
      	mark_reg_clobber, mark_reg_conflicts, mark_reg_death): Deleted.
      	(global_alloc): Turn off rescanning insns after call to
      	global_conflicts and added call to set_preferences.
      	(global_conflicts): Moved to ra-alloc.c.
      	(set_preferences_1, set_preferences): New function.
      	(mirror_conflicts): Changed types for various variables.
      	(mark_elimination): Change DF_RA_LIVE
      	usage to DF_LIVE usage.
      	(build_insn_chain): Rewritten from scratch and made local.
      	(print_insn_chain, print_insn_chains): New functions.
      	(dump_conflicts): Do not print conflicts for fixed_regs.
      	(rest_of_handle_global_alloc): Turn off insn rescanning.
      	* hard-reg-set.h: Fixed comment.
      	* local-alloc.c (update_equiv_regs): Change DF_RA_LIVE
      	usage to DF_LIVE usage and delete refs to TOP sets.
      	(block_alloc): Mark regs as live if they are in the artificial
      	defs at top of block.
      	(find_stack_regs): New function.
      	(rest_of_handle_local_alloc): Changed urec problem to live
      	problem and do not turn off df rescanning.
      	* df.h (DF_UREC, DF_UREC_BB_INFO, DF_LIVE_TOP, DF_RA_LIVE_IN,
      	DF_RA_LIVE_TOP, DF_RA_LIVE_OUT, df_urec_bb_info, df_urec,
      	df_urec_add_problem, df_urec_get_bb_info, df_has_eh_preds): Removed.
      	(DF_CHAIN, DF_NOTE, DF_CHAIN): Renumbered.
      	(DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, DF_REF_SUBREG): New
      	fields in df_ref_flags.  The rest have been renumbered.  
      	* init-regs.c (initialize_uninitialized_regs): Enhanced debugging
      	at -O1.
      	* rtl.h (subreg_nregs_with_regno): New function.
      	* df-problems.c: (df_get_live_out, df_get_live_in,
      	df_get_live_top): Removed reference to DF_RA_LIVE.
      	(df_lr_reset, df_lr_transfer_function, df_live_free_bb_info,
      	df_live_alloc, df_live_reset, df_live_local_finalize,
      	df_live_free): Make top set only if different from in set.
      	(df_lr_top_dump, df_live_top_dump): Only print top set if
      	different from in set.
      	(df_lr_bb_local_compute): Removed unnecessary check.
      	(df_urec_problem_data, df_urec_set_bb_info, df_urec_free_bb_info, 
      	df_urec_alloc, df_urec_mark_reg_change, earlyclobber_regclass, 
      	df_urec_check_earlyclobber, df_urec_mark_reg_use_for_earlyclobber,
      	df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
      	df_urec_local_compute, df_urec_init, df_urec_local_finalize, 
      	df_urec_confluence_n, df_urec_transfer_function, df_urec_free, 
      	df_urec_top_dump, df_urec_bottom_dump, problem_UREC,
      	df_urec_add_problem): Removed.
      	(df_simulate_fixup_sets): Changed call from df_has_eh_preds to
      	bb_has_eh_pred. 
      	* Makefile.in (ra-conflict.o, ra.h): New dependencies.
      	* basic_block.h (bb_has_abnormal_pred): New function.
      	* reload1.c (compute_use_by_pseudos): Change DF_RA_LIVE
      	usage to DF_LIVE usage.
      
      From-SVN: r128957
      Kenneth Zadeck committed
  22. 30 Aug, 2007 1 commit
    • df-core.h (df_dump_region): New function. · ffd640ed
      2007-08-30  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	* df-core.h (df_dump_region): New function.
      	* df.h (df_dump_region): New function.
      	* loop-invariant.c (find_defs): Add call to df_dump_region.
      	* loop-iv.c (iv_analysis_loop_init): Changed call from df_dump to
      	df_dump_region.
      
      From-SVN: r127931
      Kenneth Zadeck committed
  23. 05 Aug, 2007 1 commit
    • configure.ac: Remove --enable-checking=df from default settings. · 0d475361
      2008-08-05  Paolo Bonzini  <bonzini@gnu.org>
      
              * configure.ac: Remove --enable-checking=df from default settings.
              * tree-pass.h (TODO_df_verify): New.  Shift TODO_mark_first_instance.
              * df-core.c (df_finish_pass) [ENABLE_CHECKING]: Schedule verification
              if the parameter is true.
              (df_analyze) [!ENABLE_DF_CHECKING]: Also do verification if the
              DF_VERIFY_SCHEDULED flag is true.
              * df.h (enum df_changeable_flags): Add DF_VERIFY_SCHEDULED.
              (df_finish_pass): Adjust prototype.
              * passes.c (execute_todo): Schedule verification if TODO_df_verify is
              true.
      
              * see.c (pass_see): Add TODO_df_verify.
              * loop-init.c (pass_rtl_move_loop_invariants): Add TODO_df_verify.
              * global.c (rest_of_handle_global_alloc): Schedule verification
              after the pass.
              * local-alloc.c (rest_of_handle_local_alloc): Schedule verification
              before the pass.
              * function.c (pass_thread_prologue_and_epilogue): Add TODO_df_verify.
              * gcse.c (rest_of_handle_gcse): Adjust call to df_finish_pass.
              * loop-iv.c (iv_analysis_done): Schedule verification after the pass.
      
              * config/sh/sh.c (sh_output_mi_thunk): Remove dead code.
              * config/ia64/ia64.c (ia64_reorg): Adjust call to df_finish_pass.
              * config/bfin/bfin.c (bfin_reorg): Adjust call to df_finish_pass.
      
      From-SVN: r127225
      Paolo Bonzini committed
  24. 31 Jul, 2007 1 commit
    • df.h (DF_RU, [...]): Removed. · f2ffe7a0
      2007-07-31  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	* df.h (DF_RU, DF_RU_BB_INFO, df_ru_bb_info, df_ru,
      	df_ru_add_problem, df_ru_get_bb_info): Removed.
      	(DF_RD, DF_UREC, DF_CHAIN, DF_NOTE): Renumbered.
      	* df-problems.c (df_ru_problem_data, df_ru_set_bb_info,
      	df_ru_free_bb_info, df_ru_alloc,
      	df_ru_bb_local_compute_process_def,
      	df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
      	df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
      	df_ru_transfer_function, df_ru_free, df_ru_start_dump,
      	df_ru_top_dump, df_ru_bottom_dump, df_problem problem_RU,
      	df_ru_add_problem): Removed.
      
      From-SVN: r127099
      Kenneth Zadeck committed
  25. 28 Jul, 2007 1 commit
    • cfglayout.c, [...]: Fix comment typos. · cea618ac
      	* cfglayout.c, config/arm/arm.c, config/arm/cortex-a8.md,
      	config/arm/neon-schedgen.ml, config/arm/neon.ml,
      	config/arm/vec-common.md, config/ia64/div.md, cselib.c,
      	df-core.c, df.h, dominance.c, optabs.c, opts.c, reg-stack.c,
      	regstat.c, target.h, tree-ssa-live.c, tree-ssa-pre.c,
      	tree-vect-transform.c, tree.def: Fix comment typos.  Follow
      	spelling conventions.
      	* doc/invoke.texi: Follow spelling conventions.
      
      From-SVN: r127030
      Kazu Hirata committed
  26. 27 Jul, 2007 2 commits
    • 2007-xx-xx Richard Sandiford <rsandifo@nildram.co.uk> · ab34041d
      	    Richard Guenther <rguenther@suse.de>
      
      gcc/
      	* df.h (df_mw_hardreg): Turn df_ref_type and df_ref_flags
      	into bitfields.
      	(df_ref): Likewise.  Put regno with other integer fields.
      
      From-SVN: r126971
      Richard Sandiford committed
    • df.h (df_mw_hardreg): Remove "loc" field. · 6f5c1520
      gcc/
      	* df.h (df_mw_hardreg): Remove "loc" field.
      	* df-scan.c (df_ref_record): Don't set it.  Remove redundant
      	local variable.
      	* df-problems.c (df_whole_mw_reg_unused_p): New function,
      	split out from df_set_unused_notes_for_mw.  Return false for
      	partial references.  Assert that mw_reg is a REG when returning true.
      	(df_set_unused_notes_for_mw): Use it.  Use mw_reg instead of *loc.
      	(df_whole_mw_reg_dead_p): New function, split out from
      	df_set_dead_notes_for_mw.  Return false for partial references.
      	Assert that mw_reg is a REG when returning true.
      	(df_set_dead_notes_for_mw): Use it.  Use mw_reg instead of *loc.
      	Remove redundant bitmap check.
      
      From-SVN: r126970
      Richard Sandiford committed
  27. 26 Jul, 2007 1 commit
  28. 07 Jul, 2007 1 commit
    • auto-inc-dec.c, [...]: Fix comment typos. · 6ed3da00
      	* auto-inc-dec.c, config/arm/arm.c,
      	config/m32r/constraints.md, config/mips/mips.md,
      	config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c,
      	df-problems.c, df-scan.c, df.h, dse.c, gimplify.c,
      	tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment
      	typos.  Follow spelling conventions.
      	* doc/invoke.texi, doc/rtl.texi: Fix typos.
      
      From-SVN: r126439
      Kazu Hirata committed
  29. 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
  30. 13 Jun, 2007 1 commit
    • auto-inc-dec.c, [...]: Fix comment typos. · 0d52bcc1
      	* auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
      	config/sh/divcost-analysis, dbgcnt.def, df-core.c,
      	df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
      	tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
      	tree-vect-transform.c: Fix comment typos.  Follow spelling
      	conventions.
      
      From-SVN: r125666
      Kazu Hirata committed
  31. 11 Jun, 2007 1 commit
  32. 20 Mar, 2007 1 commit
    • re PR middle-end/30907 (Propagation of addresses within loops pessimizes code) · fb406162
      2007-03-19  Paolo Bonzini  <bonzini@gnu.org>
      
      	PR rtl-optimization/30907
      	* fwprop.c (forward_propagate_into): Never propagate inside a loop.
      	(fwprop_init): Always call loop_optimizer_initialize.
      	(fwprop_done): Always call loop_optimizer_finalize.
      	(fwprop): We always have loop info now.
      	(gate_fwprop_addr): Remove.
      	(pass_fwprop_addr): Use gate_fwprop as gate.
      
      	PR rtl-optimization/30841
      	* df-problems.c (df_ru_local_compute, df_rd_local_compute,
      	df_chain_alloc): Call df_reorganize_refs unconditionally.
      	* df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
      	refs_organized to refs_organized_size.
      	(df_ref_create_structure): Use refs_organized_size instead of
      	bitmap_size if refs had been organized, and keep refs_organized_size
      	up-to-date.
      	* df.h (struct df_ref_info): Change refs_organized to
      	refs_organized_size.
      	(DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
      	bitmap_size.
      
      From-SVN: r123084
      Paolo Bonzini committed
  33. 18 Feb, 2007 1 commit
    • cfgloop.c, [...]: Fix comment typos. · ea2c620c
      	* cfgloop.c, config/alpha/alpha.c, config/bfin/bfin.c,
      	config/i386/athlon.md, config/ia64/ia64.md,
      	config/rs6000/rs6000.c, config/s390/s390.c, config/spu/spu.md,
      	df-problems.c, df.h, fold-const.c, ipa-cp.c, ipa-inline.c,
      	ipa-prop.h, see.c, struct-equiv.c, tree-inline.c,
      	tree-ssa-loop-niter.c, tree-vect-analyze.c,
      	tree-vect-transform.c: Fix comment typos.
      
      From-SVN: r122080
      Kazu Hirata committed
  34. 28 May, 2006 1 commit
    • cfgcleanup.c, [...]: Fix comment typos. · 6fc0bb99
      	* cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c,
      	config/fr30/fr30.md, config/i386/i386-interix.h,
      	config/i386/i386.c, config/i386/i386.md, config/sh/superh.h,
      	config/sh/superh64.h, config/v850/v850.c, df-core.c,
      	df-problems.c, df.h, except.c, final.c, haifa-sched.c,
      	lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c,
      	reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c,
      	tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos.
      	Follow spelling conventions.
      	* doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos.
      	Follow spelling conventions.
      
      From-SVN: r114168
      Kazu Hirata committed
  35. 23 May, 2006 1 commit
    • df-core.c: Added to header comments. · b11550aa
      2006-05-23  Kenneth Zadeck <zadeck@naturalbridge.com>
      
              * df-core.c: Added to header comments.
      	* df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
      	df_ur_bb_info, df_urec_bb_info): Added comments.
      	* df-problems (df_ref_bitmap, ru, rd, lr, ur, 
      	urec, ri problems): Fixed header comments.
      	(df_ru_transfer_function): Fixed in-out set dyslexia when copying 
      	code from df_rd_transfer_function.
      
      From-SVN: r114024
      Kenneth Zadeck committed
  36. 19 May, 2006 1 commit
    • re PR rtl-optimization/26855 (ICE in add_deps_for_def with -fmodulo-sched -maltivec) · 23249ac4
      2006-05-19  Daniel Berlin  <dberlin@dberlin.org>
                  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	PR rtl-optimization/26855
      
      	* df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for
      	multiword refs.
      	(df_scan_alloc): Added code to properly handle multiword hard
      	registers and add all_blocks parameter.
      	(df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
      	code to properly handle multiword hard registers.
      	(df_rescan_blocks): Added code to remove deleted blocks from
      	bitmap.
      	(df_ref_create_structure, df_ref_record): Added code to properly
      	handle subregs.
      	(df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER
      	and set DF_REF_PARTIAL.
      	(df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER.
      	(df_uses_record): Added DF_REF_PARTIAL for subreg. 
      	(df_scan_add_problem): Added flags parameter.
      	(df_ref_create_structure): Changed switching structure.
      	(df_bb_refs_record): Fixed case where duplicate artificial refs
      	were created.  Changed location of flags.
      	(df_record_entry_block_defs): Added code to make stack pointer
      	live in entry block.  Refined cases where frame pointer is needed.
      	Changed location of flags.
      	(df_record_exit_block_uses, df_insn_refs_record): Changed location of flags.
      	(df_set_state): Removed function.
      	(df_grow_reg_info, df_reg_chain_unlink, df_ref_remove,
      	df_insn_create_insn_record, df_insn_refs_delete, 
      	df_ref_create_structure): Formatting changes.  
      	* df-core.c (df_mvs_dump, df_set_flags, df_clear_flags,
      	df_delete_basic_block): New function.
      	(df_init): Changed location of flags.
      	(df_add_problem): Added flags parameter and the way flags are
      	processed.
      	(df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
      	debug_df_chain): Improved debugging output.
      	(df_insn_debug, df_insn_uid_debug): Added multiword reg support.
      	(df_refs_chain_dump): Removed df parameter.
      	(df_iterative_dataflow): Added consistency check.
      	(df_prune_to_subcfg): Made public.
      	(df_analyze_problem): Added blocks_to_init parameter and made
      	public.
      	(df_ref_record, df_bb_refs_record, df_mark_reg, 
      	 df_record_exit_block_uses): Whitespace changes.
      	(df_dump): Whitespace changes.
      	* df.h: Some reordering to remove forward references.
      	(df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL,
      	DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields.
      	(df_ref_flags.DF_REF_CLOBBER): Deleted field.
      	(dataflow.flags): New field.
      	(df.flag): Deleted field.
      	(df_alloc_function): Added additional bitmap parameter.
      	(df_dependent_problem_function): New type.
      	(df_problem.changeable_flags): New field.
      	(df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL,
      	DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
      	(df_mw_hardreg): New struct.
      	(DF_INSN_UID_MWS): New macro.
      	(df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
      	parameter.
      	(df_add_problem, df_ru_add_problem, df_rd_add_problem,
      	df_lr_add_problem, df_ur_add_problem, df_urec_add_problem,
      	df_ri_add_problem, df_scan_add_problem): Added flags parameter.
      	(df_set_state): Removed function.
      	(df_set_flags, df_clear_flags, df_delete_basic_block) New functions.
      	* df-problems.c (df_chain_dump): Removed df parameter.
      	(df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc,
      	df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks
      	parameter.
      	(df_ru_alloc, df_rd_alloc): Now resets all blocks.
      	(df_rd_bb_local_compute_process_def, df_ur_bb_local_compute,
      	df_chain_create_bb, df_create_unused_note, df_ri_bb_compute):
      	Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and
      	DF_REF_MUST_CLOBBER cases.
      	(df_ru_bb_local_compute_process_def,
      	df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
      	df_lr_bb_local_compute, df_ur_bb_local_compute,
      	df_chain_create_bb): Made subreg aware.
      	(df_ru_bb_local_compute, df_rd_bb_local_compute,
      	df_lr_bb_local_compute, df_lr_bb_local_compute,
      	df_chain_create_bb): Cleanup to use proper macros.
      	(df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary
      	code to fixup bitvectors.
      	(df_ri_alloc): Cleared lifetime.
      	(df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw,
      	df_create_unused_note): New function.
      	(df_ri_bb_compute, df_ri_compute): Added code to create/update
      	REG_DEAD and REG_UNUSED notes as well as register information.
      	(df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump,
      	df_chains_dump): Fixed crash if problem was never run.
      	(df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
      	df_ur_add_problem, df_urec_add_problem, df_chain_add_problem,
      	df_ri_add_problem): Processes flags in uniform manner.
      	(df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free,
      	df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free,
      	df_rd_dump, df_urec_free_bb_info): Formatting changes.
      	(df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump,
      	df_rd_free_bb_info, df_rd_bb_local_compute_process_def,
      	df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info,
      	df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info,
      	df_ur_dump, df_urec_free_bb_info, df_urec_dump,
      	df_chain_create_bb, df_ri_bb_compute): Whitespace changes.
      	* modulo-sched.c (sms_schedule): Added flag parameter to calls.
      	* see.c (see_initialize_data): Ditto.
      	* final.c (rest_of_clean_state) Added regstack_completed.
      	* rtl.h (regstack_completed): Ditto.
      	* reg-stack.c (regstack_completed): Ditto.
      
      From-SVN: r113915
      Daniel Berlin committed
  37. 04 May, 2006 1 commit
    • [multiple changes] · 8cd37d0b
      2006-05-04  Leehod Baruch  <leehod@il.ibm.com>
      
              * see.c: New file.
              * Makefile.in (OBJS-common): Add see.o.
              (see.o): Add dependencies.
              * common.opt (fsee): New flag for the see optimization was added.
              * opts.c (flag_see): Initialized.
              * passes.c (init_optimization_passes, pass_see): New pass.
              * rtl.h (see_main): Declaration as extern.
              * timevar.def (TV_SEE): New.
              * tree-pass.h (pass_see): Declaration as extern.
              * invoke.texi (-fsee): Document.
              * recog.c (validate_simplify_insn): New function.
              * recog.h (validate_simplify_insn): Declaration as extern.
              * df-problems.c (df_chain_dump): Check for NULL.
      
      2006-05-04  Kenneth Zadeck <zadeck@naturalbridge.com>
                  Daniel Berlin  <dberlin@dberlin.org>
      
              * cfgrtl.c (insert_insn_bb_end_new): New function.
              * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
      
      2006-05-04  Leehod Baruch  <leehod.baruch@weizmann.ac.il>
      
              * df.h (struct web_entry): Moved from web.c.
              (union_defs): Declaration as extern.
              (unionfind_root): Likewise.
              (unionfind_union): Likewise.
              * web.c (struct web_entry): Moved to df.h.
              (unionfind_root): Remove static declaration.
              (unionfind_union): Likewise.
              (union_defs): Likewise and generalize to use callback function.
              (web_main): Update arguments for union_defs function call.
      
      From-SVN: r113518
      Razya Ladelsky committed
  38. 04 Mar, 2006 1 commit
    • builtins.c, [...]: Fix comment typos. · c0220ea4
      	* builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
      	combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
      	config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
      	config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
      	df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
      	loop-invariant.c, omp-low.c, opts.c, passes.c,
      	rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
      	tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
      	tree-ssa-structalias.c, tree-ssa-threadedge.c,
      	tree-ssa-threadupdate.c, tree-vect-patterns.c,
      	tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
      	unwind-dw2.c: Fix comment typos.  Follow spelling conventions.
      
      From-SVN: r111721
      Kazu Hirata committed