1. 04 Sep, 2009 1 commit
  2. 02 Sep, 2009 2 commits
    • hard-reg-set.h (call_fixed_regs): Remove. · adee59ae
      	* hard-reg-set.h (call_fixed_regs): Remove.
      	* reginfo.c (call_fixed_regs): Remove.
      	(init_reg_sets_1): Remove initialization of call_fixed_regs.
      	(globalize_reg): Don't use call_fixed_regs.
      	* caller-save.c (init_caller_save): Use call_fixed_reg_set instead of
      	call_fixed_regs.
      
      From-SVN: r151353
      Anatoly Sokolov committed
    • invoke.texi (-fsched-pressure): Document it. · ce18efcb
      2009-09-02  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* doc/invoke.texi (-fsched-pressure): Document it.
      	(-fsched-reg-pressure-heuristic): Remove it.
      	
      	* reload.c (ira.h): Include.
      	(find_reloads): Add choosing reload on number of small spilled
      	classes.
      	
      	* haifa-sched.c (ira.h): Include.
      	(sched_pressure_p, sched_regno_cover_class, curr_reg_pressure,
      	saved_reg_pressure, curr_reg_live, saved_reg_live,
      	region_ref_regs): New variables.
      	(sched_init_region_reg_pressure_info, mark_regno_birth_or_death,
      	initiate_reg_pressure_info, setup_ref_regs,
      	initiate_bb_reg_pressure_info, save_reg_pressure,
      	restore_reg_pressure, dying_use_p, print_curr_reg_pressure): New
      	functions.
      	(setup_insn_reg_pressure_info): New function.
      	(rank_for_schedule): Add pressure checking and insn issue time.
      	Remove comparison of insn reg weights.
      	(ready_sort): Set insn reg pressure info.
      	(update_register_pressure, setup_insn_max_reg_pressure,
      	update_reg_and_insn_max_reg_pressure,
      	sched_setup_bb_reg_pressure_info): New functions.
      	(schedule_insn): Add code for printing and updating reg pressure
      	info.
      	(find_set_reg_weight, find_insn_reg_weight): Remove.
      	(ok_for_early_queue_removal): Do nothing if pressure_only_p.
      	(debug_ready_list): Print reg pressure info.
      	(schedule_block): Ditto.  Check insn issue time.
      	(sched_init): Set up sched_pressure_p.  Allocate and set up some
      	reg pressure related info.
      	(sched_finish): Free some reg pressure related info.
      	(fix_tick_ready): Make insn always ready if pressure_p.
      	(init_h_i_d): Don't call find_insn_reg_weight.
      	(haifa_finish_h_i_d): Free insn reg pressure info.
      	
      	* ira-int.h (ira_hard_regno_cover_class, ira_reg_class_nregs,
      	ira_memory_move_cost, ira_class_hard_regs,
      	ira_class_hard_regs_num, ira_no_alloc_regs,
      	ira_available_class_regs, ira_reg_class_cover_size,
      	ira_reg_class_cover, ira_class_translate): Move to ira.h.
      
      	* ira-lives.c (single_reg_class): Check mode to find how many
      	registers are necessary for operand.
      	(ira_implicitly_set_insn_hard_regs): New.
      
      	* common.opt (fsched-pressure): New options.
      	(fsched-reg-pressure-heuristic): Remove.
      
      	* ira.c (setup_eliminable_regset): Rename to
      	ira_setup_eliminable_regset.  Make it external.
      	(expand_reg_info): Pass cover class to setup_reg_classes.
      	(ira): Call resize_reg_info instead of allocate_reg_info.
      
      	* sched-deps.c: Include ira.h.
      	(implicit_reg_pending_clobbers, implicit_reg_pending_uses): New.
      	(create_insn_reg_use, create_insn_reg_set, setup_insn_reg_uses,
      	reg_pressure_info, insn_use_p, mark_insn_pseudo_birth,
      	mark_insn_hard_regno_birth, mark_insn_reg_birth,
      	mark_pseudo_death, mark_hard_regno_death, mark_reg_death,
      	mark_insn_reg_store, mark_insn_reg_clobber,
      	setup_insn_reg_pressure_info): New.
      	(sched_analyze_1): Update implicit_reg_pending_uses.
      	(sched_analyze_insn): Find implicit sets, uses, clobbers of regs.
      	Use them to create dependencies.  Set insn reg uses and pressure
      	info.  Process reg_pending_uses in one place.
      	(free_deps): Free implicit sets.
      	(remove_from_deps): Remove implicit sets if necessary.  Check
      	implicit sets when clearing reg_last_in_use.
      	(init_deps_global): Clear implicit_reg_pending_clobbers and
      	implicit_reg_pending_uses.
      	
      	* ira.h (ira_hard_regno_cover_class, ira_reg_class_nregs,
      	ira_memory_move_cost, ira_class_hard_regs,
      	ira_class_hard_regs_num, ira_no_alloc_regs,
      	ira_available_class_regs, ira_reg_class_cover_size,
      	ira_reg_class_cover, ira_class_translate): Move from ira-int.h.
      	(ira_setup_eliminable_regset, ira_set_pseudo_classes,
      	ira_implicitly_set_insn_hard_regs): New prototypes.
      	
      	* ira-costs.c (pseudo_classes_defined_p, allocno_p,
      	cost_elements_num): New variables.
      	(allocno_costs, total_costs): Rename to costs and
      	total_allocno_costs.
      	(COSTS_OF_ALLOCNO): Rename to COSTS.
      	(allocno_pref): Rename to pref.
      	(allocno_pref_buffer): Rename to pref_buffer.
      	(common_classes): Rename to regno_cover_class.
      	(COST_INDEX): New.
      	(record_reg_classes): Set allocno attributes only if allocno_p.
      	(record_address_regs): Ditto.  Use COST_INDEX instead of
      	ALLOCNO_NUM.
      	(scan_one_insn): Use COST_INDEX and COSTS instead of ALLOCNO_NUM
      	and COSTS_OF_ALLOCNO.
      	(print_costs): Rename to print_allocno_costs.
      	(print_pseudo_costs): New.
      	(process_bb_node_for_costs): Split into 2 functions with new
      	function process_bb_for_costs.  Pass BB to process_bb_for_costs.
      	(find_allocno_class_costs): Rename to find_costs_and_classes.  Add
      	new parameter dump_file.  Use cost_elements_num instead of
      	ira_allocnos_num.  Make one iteration if preferred classes were
      	already calculated for scheduler.  Make 2 versions of code
      	depending on allocno_p.
      	(setup_allocno_cover_class_and_costs): Check allocno_p.  Use
      	regno_cover_class and COSTS instead of common_classes and
      	COSTS_OF_ALLOCNO.
      	(init_costs, finish_costs): New.
      	(ira_costs): Set up allocno_p and cost_elements_num.  Call
      	init_costs and finish_costs.
      	(ira_set_pseudo_classes): New.
      
      	* rtl.h (allocate_reg_info): Remove.
      	(resize_reg_info): Change return type.
      	(reg_cover_class): New.
      	(setup_reg_classes): Add new parameter.
      	
      	* sched-int.h (struct deps_reg): New member implicit_sets.
      	(sched_pressure_p, sched_regno_cover_class): New external
      	definitions.
      	(INCREASE_BITS): New macro.
      	(struct reg_pressure_data, struct reg_use_data): New.
      	(struct _haifa_insn_data): Remove reg_weight.  Add members
      	reg_pressure, reg_use_list, reg_set_list, and
      	reg_pressure_excess_cost_change.
      	(struct deps): New member implicit_sets.
      	(pressure_p): New variable.
      	(COVER_CLASS_BITS, INCREASE_BITS): New macros.
      	(struct reg_pressure_data, struct reg_use_data): New.
      	(INSN_REG_WEIGHT): Remove.
      	(INSN_REG_PRESSURE, INSN_MAX_REG_PRESSURE, INSN_REG_USE_LIST,
      	INSN_REG_SET_LIST, INSN_REG_PRESSURE_EXCESS_COST_CHANGE): New
      	macros.
      	(sched_init_region_reg_pressure_info,
      	sched_setup_bb_reg_pressure_info): New prototypes.
      	
              * reginfo.c (struct reg_pref): New member coverclass.
      	(reg_cover_class): New function.
      	(reginfo_init, pass_reginfo_init): Move after free_reg_info.
      	(reg_info_size): New variable.
      	(allocate_reg_info): Make static.  Setup reg_info_size.
      	(resize_reg_info): Use reg_info_size.  Return flag of resizing.
      	(setup_reg_classes): Add a new parameter.  Setup cover class too.
      
      	* Makefile.in (reload.o, haifa-sched.o, sched-deps.o): Add ira.h to the
      	dependencies.
      
      	* sched-rgn.c (deps_join): Set up implicit_sets.
      	(schedule_region): Set up region and basic blocks pressure
      	relative info.
      	
      	* passes.c (init_optimization_passes): Move
      	pass_subregs_of_mode_init before pass_sched.
      
      From-SVN: r151348
      Vladimir Makarov committed
  3. 22 Jun, 2009 1 commit
    • alias.c: Use REG_P... · 481683e1
      2009-06-22  Shujing Zhao  <pearly.zhao@oracle.com>
      
      	* alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
      	JUMP_TABLE_DATA_P predicates where applicable.
      	* auto-inc-dec.c: Ditto.
      	* builtins.c: Ditto.
      	* caller-save.c: Ditto.
      	* calls.c: Ditto.
      	* cfgcleanup.c: Ditto.
      	* cfglayout.c: Ditto.
      	* cfgrtl.c: Ditto.
      	* combine.c: Ditto.
      	* combine-stack-adj.c: Ditto.
      	* cse.c: Ditto.
      	* cselib.c: Ditto.
      	* dbxout.c: Ditto.
      	* df-scan.c: Ditto.
      	* dse.c: Ditto.
      	* dwarf2asm.c: Ditto.
      	* dwarf2out.c: Ditto.
      	* emit-rtl.c: Ditto.
      	* except.c: Ditto.
      	* explow.c: Ditto.
      	* expmed.c: Ditto.
      	* expr.c: Ditto.
      	* final.c: Ditto.
      	* function.c: Ditto.
      	* fwprop.c: Ditto.
      	* gcse.c: Ditto.
      	* genpreds.c: Ditto.
      	* genrecog.c: Ditto.
      	* ifcvt.c: Ditto.
      	* ira-costs.c: Ditto.
      	* ira-lives.c: Ditto.
      	* jump.c: Ditto.
      	* loop-iv.c: Ditto.
      	* lower-subreg.c: Ditto.
      	* modulo-sched.c: Ditto.
      	* optabs.c: Ditto.
      	* postreload.c: Ditto.
      	* print-rtl.c: Ditto.
      	* recog.c: Ditto.
      	* reginfo.c: Ditto.
      	* regmove.c: Ditto.
      	* reload1.c: Ditto.
      	* reload.c: Ditto.
      	* reorg.c: Ditto.
      	* rtlanal.c: Ditto.
      	* rtl.c: Ditto.
      	* sched-vis.c: Ditto.
      	* sdbout.c: Ditto.
      	* sel-sched-ir.c: Ditto.
      	* simplify-rtx.c: Ditto.
      	* targhooks.c: Ditto.
      	* var-tracking.c: Ditto.
      	* vmsdbgout.c: Ditto.
      
      From-SVN: r148786
      Shujing Zhao committed
  4. 14 May, 2009 1 commit
    • passes.c (finish_optimization_passes): Change i to int. · 09639a83
      ./:	* passes.c (finish_optimization_passes): Change i to int.
      	* plugin.c (plugins_active_p): Change event to int.
      	(dump_active_plugins): Likewise.
      	* reginfo.c (invalid_mode_change_p): Change to to unsigned int.
      	Add cast.
      	* tree.c (tree_range_check_failed): Change c to unsigned int.
      	(omp_clause_range_check_failed): Likewise.
      	(build_common_builtin_nodes): Change mode to int.  Add cast.
      	* config/ia64/ia64.c (is_emitted): Change r to unsigned int.
      	(ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
      
      	* c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
      	++ or -- with a variable of enum type.
      cp/:
      	* class.c (layout_class_type): Change itk to unsigned int.
      	* decl.c (finish_enum): Change itk to unsigned int.
      	* parser.c (cp_parser_check_decl_spec): Change ds to int.  Remove
      	casts.
      fortran/:
      	* decl.c (match_attr_spec): Change d to unsigned int.
      	* dump-parse-tree.c (show_namespace): Change op to int.  Add cast.
      	* interface.c (gfc_check_interfaces): Change i to int.  Add casts.
      	* module.c (read_module): Change i to int.  Add cast.
      	(write_module): Change i to int.
      	* symbol.c (gfc_get_namespace): Change in to int.
      	(gfc_free_namespace): Change i to int.
      	* trans-io.c (gfc_build_io_library_fndecls): Change ptype to
      	unsigned int.  Add cast.
      	* trans-types.c (gfc_init_kinds): Change mode to unsigned int.
      	Add casts.
      testsuite/:
      	* gcc.dg/Wcxx-compat-9.c: New testcase.
      
      From-SVN: r147544
      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. 18 Apr, 2009 1 commit
  7. 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
  8. 19 Mar, 2009 1 commit
  9. 20 Feb, 2009 1 commit
  10. 29 Jan, 2009 1 commit
    • tm.texi (TARGET_IRA_COVER_CLASSES): Modify description. · 2af2dbdc
      2008-01-29  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
      	* doc/passes.texi: Remove entries about regclass, local-alloc, and
      	global.  Modify entries about regmove and IRA.
      
      	* ra-conflict.c: Remove the file.
      
      	* reload.c (push_reload, find_dummy_reload): Remove flag_ira.
      
      	* tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
      	(pass_regclass_init): Rename to pass_reginfo_init.
      
      	* cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
      
      	* toplev.h (flag_ira): Remove.
      
      	* caller-save.c (setup_save_areas): Remove flag_ira.
      
      	* ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot):
      	Ditto.
      
      	* global.c: Remove the file.
      
      	* opts.c: (decode_options): Remove flag_ira.
      
      	* hard-reg-set.h (losing_caller_save_reg_set): Remove.
      
      	* regmove.c: Modify file description.
      	(find_use_as_address, try_auto_increment): Define them only if
      	AUTO_INC_DEC is defined.
      	(replacement_quality, replace_in_call_usage, fixup_match_1,
      	stable_and_no_regs_but_for_p): Remove.
      	(reg_set_in_bb): Make it static.
      	(regmove_optimize): Remove flag_ira and code which worked for
      	!flag_ira.
      
      	* local-alloc.c: Remove the file.
      
      	* common.opt (fira): Remove.
      
      	* ira.c: Include except.h.
      	(eliminable_regset): Move from global.c.
      	(mark_elimination): Ditto.  Remove flag_ira.
      	(reg_renumber, struct equivalence, reg_equiv, equiv_mem,
      	equiv_mem_modified, validate_equiv_mem_from_store,
      	validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
      	contains_replace_regs, memref_referenced_p, memref_used_between_p,
      	no_equiv, recorded_label_ref): Move from local-alloc.c.
      	(update_equiv_regs): Ditto.  Make it static.
      	(print_insn_chain, print_insn_chains): Move it from global.c.
      	pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
      	(build_insn_chain): Ditto.  Make it static.
      	(ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
      	Rename to init_live_subregs.
      	(gate_ira): Remove flag_ira.
      
      	* regclass.c: Rename reginfo.c.  Change file description.
      	(FORBIDDEN_INC_DEC_CLASSES): Remove.
      	(reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec):
      	Remove.
      	(init_reg_sets_1): Remove code for evaluation of
      	reg_class_superclasses and losing_caller_save_reg_set.
      	(init_regs): Remove init_reg_autoinc.
      	(struct costs, costs, init_cost, ok_for_index_p_nonstrict,
      	ok_for_base_p_nonstrict): Remove.
      	(regclass_init): Rename to reginfo_init.  Don't initialize
      	init_cost.
      	(pass_regclass_init): Rename to pass_reginfo_init.  Modify
      	corresponding entries.
      	(dump_regclass, record_operand_costs, scan_one_insn,
      	init_reg_autoinc, regclass, record_reg_classes, copy_cost,
      	record_address_regs, auto_inc_dec_reg_p): Remove.
      	(gt-regclass.h): Rename to gt-reginfo.h.
      
      	* rtl.h (dump_global_regs, retry_global_alloc,
      	build_insn_chain, dump_local_alloc, update_equiv_regs):
      	Remove.
      
      	* Makefile.in (RA_H): Remove.
      	(OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
      	Rename regclass.o to reginfo.o.
      	(regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
      	gt-reginfo.h.
      	(global.o, local-alloc.o, ra-conflict.o): Remove entries.
      	(GTFILES): Rename regclass.c to	reginfo.c.
      
      	* passes.c (init_optimization_passes): Remove pass_local_alloc and
      	pass_global_alloc.  Rename pass_regclass_init to
      	pass_reginfo_init.
      
      	* reload1.c (compute_use_by_pseudos, reload, count_pseudo,
      	count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
      	Remove flag_ira.
      	(finish_spills): Ditto.  Remove code for !flga_ira.
      
      From-SVN: r143757
      Vladimir Makarov committed
  11. 19 Jan, 2009 1 commit
  12. 18 Dec, 2008 1 commit
    • 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
  13. 26 Aug, 2008 1 commit
    • [multiple changes] · 058e97ec
      2008-08-26  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
      	ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
      
      	* doc/passes.texi: Describe IRA.
      
      	* doc/tm.texi (IRA_COVER_CLASSES,
      	IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
      
      	* doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
      	(-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
      	-fira-propagate-cost, -fno-ira-share-save-slots,
      	-fno-ira-share-spill-slots, -fira-verbose): Describe new options.
      
      	* flags.h (ira_algorithm): New enumeration.
      	(flag_ira_algorithm, flag_ira_verbose): New external variable
      	declarations.
      
      	* postreload.c (gate_handle_postreload): Don't do post reload
      	optimizations unless the reload is completed.
      
      	* reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
      	IRA.
      
      	* tree-pass.h (pass_ira): New external variable declaration.
      
      	* reload.h: Add 2008 to the Copyright.
          
      	* cfgloopanal.c: Include params.h.
      	(estimate_reg_pressure_cost): Decrease cost for IRA optimization
      	mode.
          
      	* params.h (IRA_MAX_LOOPS_NUM): New macro.
      
      	* toplev.c (ira.h): New include.
      	(flag_ira_algorithm, flag_ira_verbose): New external variables.
      	(backend_init_target): Call ira_init.
      	(backend_init): Call ira_init_once.
      	(finalize): Call finish_ira_once.
      
      	* toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
      	flag_ira_share_save_slots, flag_ira_share_spill_slots): New
      	external variables.
      
      	* regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
      	may_move_out_cost): New external variable declarations.
      	(move_table): New typedef.
          
      	* caller-save.c: Include headers output.h and ira.h.
      	(no_caller_save_reg_set): New global variable.
      	(save_slots_num, save_slots): New variables.
      	(reg_save_code, reg_restore_code, add_stored_regs): Add
      	prototypes.
      	(init_caller_save): Set up no_caller_save_reg_set.
      	(init_save_areas): Reset save_slots_num.
      	(saved_hard_reg): New structure.
      	(hard_reg_map, saved_regs_num, all_saved_regs): New variables.
      	(initiate_saved_hard_regs, new_saved_hard_reg,
      	finish_saved_hard_regs, saved_hard_reg_compare_func): New
      	functions.
      	(setup_save_areas): Add code for sharing stack slots.
      	(all_blocks): New variable.
      	(save_call_clobbered_regs): Process pseudo-register too.
      	(mark_set_regs): Process pseudo-register too.
      	(insert_one_insn): Put the insn after bb note in a empty basic
      	block.  Add insn check.
          
      	* global.c (eliminable_regset): Make it external.
      	(mark_elimination): Use DF_LR_IN for IRA.
      	(pseudo_for_reload_consideration_p): New.
      	(build_insn_chain): Make it external.  Don't ignore spilled
      	pseudos for IRA.  Use pseudo_for_reload_consideration_p.
      	(gate_handle_global_alloc): New function.
      	(pass_global_alloc): Add the gate function.
      
      	* opts.c (decode_options): Set up flag_ira.  Print the warning for
      	-fira.
      	(common_handle_option): Process -fira-algorithm and -fira-verbose.
      
      	* timevar.def (TV_IRA, TV_RELOAD): New passes.
      
      	* regmove.c (regmove_optimize): Don't do replacement of output for
      	IRA.
      
      	* hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
      	New external variable declarations.
      
      	* local-alloc.c (update_equiv_regs): Make it external.  Return
      	true if jump label rebuilding should be done.  Rescan new_insn for
      	notes.
      	(gate_handle_local_alloc): New function.
      	(pass_local_alloc): Add the gate function.
      
      	* alias.c (value_addr_p, stack_addr_p): New functions.
      	(nonoverlapping_memrefs_p): Use them for IRA.
      
      	* common.opt (fira, fira-algorithm, fira-coalesce,
      	fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
      	fira-verbose): New options.
      
      	* regclass.c (reg_class_subclasses, contains_reg_of_mode,
      	move_cost, may_move_in_cost, may_move_out_cost): Make the
      	variables external.
      	(move_table): Remove typedef.
      	(init_move_cost): Make it external.
      	(allocate_reg_info, resize_reg_info, setup_reg_classes): New
      	functions.
      
      	* rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
      	setup_reg_classes): New function prototypes.
      	(eliminable_regset): New external variable declaration.
      	(build_insn_chain, update_equiv_regs): New function prototypes.
          
      	* Makefile.in (IRA_INT_H): New definition.
      	(OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
      	ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
      	(reload1.o, toplev.o): Add dependence on ira.h.
      	(cfgloopanal.o): Add PARAMS_H.
      	(caller-save.o): Add dependence on output.h and ira.h.
      	(ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
      	ira-emit.o, ira-lives.o): New entries.
      
      	* passes.c (pass_ira): New pass.
      
      	* params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
      
      	* reload1.c (ira.h): Include the header.
      	(changed_allocation_pseudos): New bitmap.
      	(init_reload): Initiate the bitmap.
      	(compute_use_by_pseudos): Permits spilled registers in FROM.
      	(temp_pseudo_reg_arr): New variable.
      	(reload): Allocate and free temp_pseudo_reg_arr.  Sort pseudos for
      	IRA.  Call alter_reg with the additional parameter.  Don't clear
      	spilled_pseudos for IRA.  Restore original insn chain for IRA.
      	Clear changed_allocation_pseudos at the end of reload.
      	(calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
      	(hard_regno_to_pseudo_regno): New variable.
      	(count_pseudo): Check spilled pseudos.  Set up
      	hard_regno_to_pseudo_regno.
      	(count_spilled_pseudo): Check spilled pseudos. Update
      	hard_regno_to_pseudo_regno.
      	(find_reg): Use better_spill_reload_regno_p.  Check
      	hard_regno_to_pseudo_regno.
      	(alter_reg): Set up spilled_pseudos.  Add a new parameter.  Add
      	code for IRA.
      	(eliminate_regs_1): Use additional parameter for alter_reg.
      	(finish_spills): Set up pseudo_previous_regs only for spilled
      	pseudos.  Call reassign_pseudos once for all spilled pseudos, pass
      	more arguments.  Don't clear live_throughout and dead_or_set for
      	spilled pseudos.  Use additional parameter for alter_reg.  Call
      	mark_allocation_change.  Set up changed_allocation_pseudos.
      	Remove sanity check.
      	(emit_input_reload_insns, delete_output_reload): Use additional
      	parameter for alter_reg.  Call mark_allocation_change.
      	(substitute, gen_reload_chain_without_interm_reg_p): New
      	functions.
      	(reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
          
      	* testsuite/gcc.dg/20080410-1.c: New file.
      	
      	* config/s390/s390.h (IRA_COVER_CLASSES,
      	IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
      
      	* config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
      
      	* config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
          
      	* config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
          
      	2008-08-24  Jeff Law  <law@redhat.com>
      	* ira.c (setup_reg_class_intersect_union): Prefer smallest class
      	when ignoring unavailable registers.
      
      	2008-08-24  Jeff Law  <law@redhat.com>
      	* ira-color.c (coalesced_pseudo_reg_slot_compare): Check
      	FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
      	* ira.c (setup_eliminable_regset): Check stack_realign_needed.
      	* config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
      
      	2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
      	* ira-build.c (allocno_range_compare_func): Stabilize sort.
      
      	2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
      	* config/avr/avr.h (IRA_COVER_CLASSES): New macro.
      	* reload1.c (find_reg): Process registers in register allocation order.
      
      	2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
      	* toplev.c (backend_init_target): Move ira_init call from
      	here...
      	(lang_dependent_init_target): ...to here.
      
      	2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
      	* ira.c (setup_class_subset_and_memory_move_costs): Don't
      	calculate memory move costs for NO_REGS.
      
      	2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
      	* ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
      	STACK_REGS is defined.
      
      	2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
      	* config/spu/spu.h (IRA_COVER_CLASSES): New macro.
      
      	2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
      	* config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
      
      	2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
      	* config/sh/sh.h (IRA_COVER_CLASSES): Define.
      	* config/sh/sh.md (movsicc_true+3): Check if emit returns a
      	barrier.
      
      From-SVN: r139590
      Vladimir Makarov committed
  14. 16 Jul, 2008 1 commit
    • cfg.c (dump_reg_info): Avoid C++ keywords. · d858f359
      	* cfg.c (dump_reg_info): Avoid C++ keywords.
      	* dwarf2asm.c (dw2_force_const_mem,
      	dw2_asm_output_encoded_addr_rtx): Likewise.
      	* except.c (gen_eh_region, add_action_record, output_ttype):
      	Likewise.
      	* expmed.c (expand_shift): Likewise.
      	* global.c (find_reg): Likewise.
      	* graph.c (draw_edge): Likewise.
      	* local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
      	* optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
      	widen_clz, widen_bswap, expand_parity, expand_unop,
      	emit_cmp_and_jump_insn_1): Likewise.
      	* postreload.c (reload_cse_simplify_operands): Likewise.
      	* ra.h (add_neighbor): Likewise.
      	* reg-stack.c (remove_regno_note, change_stack): Likewise.
      	* regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
      	record_reg_classes, copy_cost, record_address_regs,
      	invalid_mode_change_p): Likewise.
      	* regrename.c (regrename_optimize, scan_rtx_reg,
      	dump_def_use_chain, find_oldest_value_reg,
      	replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
      
      From-SVN: r137893
      Kaveh R. Ghazi committed
  15. 26 Jun, 2008 1 commit
    • ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual warnings. · 1634b18f
      	* ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
      	warnings.
      	* recog.c (check_asm_operands, validate_change_1): Likewise.
      	* reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
      	subst_asm_stack_regs): Likewise.
      	* regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
      	cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
      	* regmove.c (reg_is_remote_constant_p): Likewise.
      	* regrename.c (regrename_optimize, scan_rtx_reg,
      	kill_clobbered_value, kill_set_value, kill_autoinc_value):
      	Likewise.
      	* regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
      	regstat_compute_calls_crossed): Likewise.
      	* reload1.c (init_reload, new_insn_chain,
      	has_nonexceptional_receiver, reload, copy_reloads,
      	calculate_needs_all_insns, init_elim_table): Likewise.
      	* rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
      	* rtl.c (shallow_copy_rtx_stat): Likewise.
      	* rtlanal.c (parms_set): Likewise.
      	* sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
      	sbitmap_resize, sbitmap_vector_alloc): Likewise.
      	* sched-ebb.c (earliest_block_with_similiar_load,
      	add_deps_for_risky_insns): Likewise.
      	* sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
      	schedule_region): Likewise.
      	* see.c (eq_descriptor_pre_extension,
      	hash_descriptor_pre_extension, hash_del_pre_extension,
      	eq_descriptor_properties, hash_descriptor_properties,
      	hash_del_properties, see_seek_pre_extension_expr,
      	see_initialize_data_structures, see_print_register_properties,
      	see_print_pre_extension_expr, see_delete_merged_def_extension,
      	see_delete_unmerged_def_extension, see_emit_use_extension,
      	see_pre_delete_extension, see_map_extension, see_commit_changes,
      	see_analyze_merged_def_local_prop,
      	see_analyze_merged_def_local_prop,
      	see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
      	see_set_prop_merged_def, see_set_prop_unmerged_def,
      	see_set_prop_unmerged_use, see_print_one_extension,
      	see_merge_one_use_extension, see_merge_one_def_extension,
      	see_store_reference_and_extension, see_update_uses_relevancy,
      	see_update_defs_relevancy): Likewise.
      	* statistics.c (hash_statistics_hash, hash_statistics_eq,
      	hash_statistics_free, curr_statistics_hash): Likewise.
      	* stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
      	expand_asm_operands, expand_return, case_bit_test_cmp,
      	expand_case): Likewise.
      	* stor-layout.c (start_record_layout): Likewise.
      	* stringpool.c (ggc_alloc_string, gt_pch_n_S,
      	gt_pch_save_stringpool): Likewise.
      	* tree-data-ref.c (hash_stmt_vertex_info,
      	have_similar_memory_accesses_1, ref_base_address_1): Likewise.
      	* tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
      
      From-SVN: r137128
      Kaveh R. Ghazi committed
  16. 06 Jun, 2008 1 commit
    • cgraph.c: Fix typos in comments. · fa10beec
      gcc/
      	* cgraph.c: Fix typos in comments.
      	(cgraph_availability_names): Fix string typo.
      	* fold-const.c: Fix typos in comments.
      	(fold_binary): Fix typo in warning.
      	* genautomata.c: Fix typos in comments.
      	(check_presence_pattern_sets): Fix typo in local variable.
      	(output_description): Fix typo in output.
      	* ggc-zone.c (ggc_pch_finish): Fix typo in error message.
      	* hwint.h: Likewise.
      	* matrix-reorg.c (check_allocation_function): Likewise.
      	* omega.c (smooth_weird_equations): Likewise.
      	* auto-inc-dec.c: Fix typos in comments.
      	* bb-reorder.c: Likewise.
      	* builtins.c: Likewise.
      	* c-common.c: Likewise.
      	* c-cppbuiltin.c: Likewise.
      	* c-parser.c: Likewise.
      	* c-pretty-print.c: Likewise.
      	* cfgcleanup.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cfghooks.c: Likewise.
      	* cfglayout.c: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* coverage.c: Likewise.
      	* dbxout.c: Likewise.
      	* df-byte-scan.c: Likewise.
      	* df-core.c: Likewise.
      	* df-problems.c: Likewise.
      	* df-scan.c: Likewise.
      	* dfp.c: Likewise.
      	* dominance.c: Likewise.
      	* domwalk.c: Likewise.
      	* dse.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* emit-rtl.c: Likewise.
      	* et-forest.c: Likewise.
      	* function.c: Likewise.
      	* function.h: Likewise.
      	* gcc.c: Likewise.
      	* gcov-io.c: Likewise.
      	* gcov.c: Likewise.
      	* gcse.c: Likewise.
      	* genattrtab.c: Likewise.
      	* ggc-page.c: Likewise.
      	* gimplify.c: Likewise.
      	* gthr-lynx.h: Likewise.
      	* haifa-sched.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-prop.h: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-struct-reorg.c: Likewise.
      	* ipa-struct-reorg.h: Likewise.
      	* ipa-type-escape.c: Likewise.
      	* ipa.c: Likewise.
      	* loop-doloop.c: Likewise.
      	* mips-tfile.c: Likewise.
      	* mkmap-flat.awk: Likewise.
      	* mkmap-symver.awk: Likewise.
      	* modulo-sched.c: Likewise.
      	* omp-low.c: Likewise.
      	* optabs.c: Likewise.
      	* optabs.h: Likewise.
      	* opts.c: Likewise.
      	* passes.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* postreload.c: Likewise.
      	* predict.c: Likewise.
      	* pretty-print.h: Likewise.
      	* profile.c: Likewise.
      	* protoize.c: Likewise.
      	* ra-conflict.c: Likewise.
      	* real.c: Likewise.
      	* recog.c: Likewise.
      	* regclass.c: Likewise.
      	* regs.h: Likewise.
      	* reload.c: Likewise.
      	* rtl-error.c: Likewise.
      	* rtlanal.c: Likewise.
      	* scan.h: Likewise.
      	* sched-rgn.c: Likewise.
      	* see.c: Likewise.
      	* stmt.c: Likewise.
      	* target.h: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-flow-inline.h: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-pass.h: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-alias-warnings.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-dse.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-live.h: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-vect-analyze.c: Likewise.
      	* tree-vect-transform.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree-vn.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* tree.c: Likewise.
      	* tree.def: Likewise.
      	* tree.h: Likewise.
      	* unwind-dw2-fde.c: Likewise.
      	* unwind.inc: Likewise.
      	* value-prof.c: Likewise.
      	* vmsdbgout.c: Likewise.
      
      From-SVN: r136425
      Ralf Wildenhues committed
  17. 27 May, 2008 2 commits
    • reload.c: (find_reloads): Skip alternatives according to the "enabled" attribute. · 7ac28727
      2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
      
      	* reload.c: (find_reloads): Skip alternatives according to the
      	"enabled" attribute. Constify the constraint variable.
      	* recog.c (get_attr_enabled): Add default implementation.
      	(extract_insn): Set the alternative_enabled_p array
      	in the recog_data struct.
      	(preprocess_constraints, constrain_operands): Skip
      	alternatives according to the "enabled" attribute
      	* recog.h (struct recog_data): New field alternative_enabled_p.
      	(skip_alternative): New inline function.
      	* regclass.c: (record_operand_costs): Check the "enabled"
      	attribute.
      	(record_reg_classes): Skip alternative according to the
      	"enabled" attribute.
      
      	* doc/md.texi: Add documention for the "enabled" attribute.
      
      From-SVN: r136012
      Andreas Krebbel committed
    • defaults.h (TARGET_MEM_CONSTRAINT): New target macro added. · a4edaf83
      2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
      
      	* defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
      	* postreload.c (reload_cse_simplify_operands): Replace 'm'
      	constraint with TARGET_MEM_CONSTRAINT.
      	* recog.c (asm_operand_ok, preprocess_constraints,
      	constrain_operands): Likewise.
      	* regclass.c (record_reg_classes): Likewise.
      	* reload.c (find_reloads, alternative_allows_const_pool_ref):
      	Likewise.
      	* reload1.c (maybe_fix_stack_asms): Likewise.
      	* stmt.c (parse_output_constraint, parse_input_constraint):
      	Likewise.
      	* recog.h: Adjust comment.
      	* genpreds.c (generic_constraint_letters): Remove 'm' constraint.
      	* genoutput.c (note_constraint): Don't emit error for 'm'
      	constraint.
      	* doc/md.texi: Add a note to description of 'm' constraint.
      	* doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
      
      From-SVN: r136011
      Andreas Krebbel committed
  18. 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
  19. 22 Feb, 2008 1 commit
  20. 19 Dec, 2007 1 commit
    • rtl.def (SUBREG): Update comments. · 38ae7651
      gcc/
      	* rtl.def (SUBREG): Update comments.
      	* rtl.h (reg_attrs): Be explicit about the type of offset used.
      	(set_reg_attrs_from_mem): Rename to...
      	(set_reg_attrs_from_value): ...this.
      	(adjust_reg_mode, byte_lowpart_offset): Declare.
      	* emit-rtl.c (byte_lowpart_offset): New function.
      	(update_reg_offset): Remove special offset handling for big-endian
      	targets.
      	(gen_rtx_REG_offset, gen_reg_rtx_offset): Explicitly say that the
      	offset parameter is added to REG_OFFSET.
      	(adjust_reg_mode): New function.
      	(set_reg_attrs_for_mem): Rename to...
      	(set_reg_attrs_for_value): ...this and generalize to all values.
      	If the register is a lowpart of the value, adjust the offset
      	accordingly.
      	(set_reg_attrs_for_parm): Update after the above renaming.
      	(set_reg_attrs_for_decl_rtl): New function, split out from
      	set_decl_incoming_rtl.  Set the offset of plain REGs to the
      	offset of the REG's mode from the decl's.  Assert that all
      	subregs are lowparts and handle their inner registers in the
      	same way as plain REGs.
      	(set_decl_rtl, set_incoming_decl_rtl): Use reg_attrs_for_decl_rtl.
      	(subreg_lowpart_offset): Explicitly say that the returned offset
      	is a SUBREG_BYTE.
      	* combine.c (do_SUBST_MODE, try_combine, undo_all): Use adjust_reg_mode
      	instead of PUT_MODE.
      	* final.c (alter_subreg): Fix/update argument to gen_rtx_REG_offset.
      	* config/ia64/ia64.c (ia64_expand_load_address): Likewise.
      	* regclass.c (reg_scan_mark_refs): Use set_reg_attrs_from_value.
      	* reload.c (find_reloads_subreg_address): Call set_mem_offset
      	when offseting a MEM.
      	* var-tracking.c (offset_valid_for_tracked_p): Delete.
      	(mode_for_reg_attrs): Replace with...
      	(track_loc_p): ...this new function.  Return the mode and offset
      	to the caller, checking that the latter is valid.  If the rtx is
      	a paradoxical lowpart of the decl, use the decl's mode instead.
      	Do the same when storing to a register that contains the entire decl.
      	(var_lowpart): Use byte_lowpart_offset rather than
      	subreg_lowpart_offset when adjusting the offset attribute.
      	(count_uses, add_uses, add_stores): Use track_reg_p instead of
      	REG_EXPR, MEM_EXPR, REG_OFFSET, INT_MEM_OFFSET, track_expr_p,
      	offset_valid_for_tracked_p and mode_for_reg_attrs.  Generate
      	lowparts for MEMs as well as REGs.
      	(vt_add_function_parameters): When obtaining the information from
      	the decl_rtl, adjust the offset to match incoming.  Use track_loc_p
      	and var_lowpart.
      
      From-SVN: r131055
      Richard Sandiford committed
  21. 21 Nov, 2007 1 commit
  22. 31 Aug, 2007 1 commit
    • re PR middle-end/33211 (FAIL: gcc.target/spu/fixed-range.c scan-assembler lqd.*21) · fef511b5
      2007-08-30  Sandra Loosemore  <sandra@codesourcery.com>
      
      	PR middle-end/33211
      
      	gcc/
      	* regclass.c (initial_fixed_regs): Revert previous change and make
      	it const again.
      	(initial_call_used_regs): Likewise.
      	(initial_call_really_used_regs): Delete, reverting previous addition.
      	(initial_reg_names): Likewise.
      	(init_reg_sets): Revert previous change.
      	(saved_fixed_regs): New.
      	(saved_call_used_regs): New.
      	(saved_call_really_used_regs): New.
      	(saved_reg_names): New.
      	(save_register_info): New.
      	(restore_register_info): New.
      	(init_reg_sets_1): Replace reset of register info with call to
      	restore_register_info.
      	* rtl.h (save_register_info): Declare.
      	* toplev.c (backend_init): Call save_register_info.
      
      From-SVN: r127951
      Sandra Loosemore committed
  23. 27 Aug, 2007 2 commits
    • regclass.c (init_reg_autoinc): Fix typo. · 9da72d66
      2007-08-27  Sandra Loosemore  <sandra@codesourcery.com>
      
      	gcc/
      	* regclass.c (init_reg_autoinc): Fix typo.
      
      From-SVN: r127836
      Sandra Loosemore committed
    • Separate target-specific initialization from general back-end initialization. · b5deb7b6
      2007-08-27  Sandra Loosemore  <sandra@codesourcery.com>
      	    David Ung  <davidu@mips.com>
                  Nigel Stephens <nigel@mips.com>
      
      	gcc/
      	Separate target-specific initialization from general
      	back-end initialization.
      
      	* toplev.c (init_alignments): New, split out from...
      	(process_options): ...here.
      	(backend_init_target):  New, split out from...
      	(backend_init): ...here.
      	(lang_dependent_init_target):  New, split out from...
      	(lang_dependent_init): ...here.
      	(target_reinit): New.
      	* toplev.h (target_reinit): Declare.
      	* expr.c (init_expr_target): Renamed from init_expr_once, since it
      	now can be called more than once.  Update comments.
      	* expr.h (init_expr_target): Likewise.
      	* alias.c (init_alias_target): Renamed from init_alias_once, since it
      	now can be called more than once.  Explicitly zero
      	static_reg_base_value.
      	* emit-rtl.c (init_emit_regs): New, split out from...
      	(init_emit_once): Here.
      	* regclass.c (initial_fixed_regs, initial_call_used_regs): Make
      	non-const, so that changes from command-line arguments can overwrite
      	values provided by the static initializers.
      	(initial_call_really_used_regs): New, used similarly to the above.
      	(initial_reg_names): Likewise.
      	(last_mode_for_init_move_cost): Promoted function-local static to
      	file-scope static to make it accessible outside init_move_cost.
      	(init_reg_sets): Do not initialize fixed_regs and call_used_regs yet.
      	Do not initialize inv_reg_alloc_order yet, either.  Do initialize
      	reg_names since it is needed for parsing command-line options.
      	(init_move_cost): Use last_mode_for_init_move_cost instead of
      	function-local static.
      	(init_reg_sets_1): Initialize fixed_regs, call_used_regs, and
      	call_really_used_regs now.  Reinitialize reg_names.  Also
      	initialize inv_reg_alloc_order.  Zero reg_class_subunion and
      	reg_class_superunion.  Clear losing_caller_save_reg_set.
      	Preserve global registers if called more than once.  Reset
      	move cost, may_move_in_cost, may_move_out_cost, and
      	last_mode_for_init_move_cost.
      	(init_reg_modes_target): Renamed from init_reg_modes_once, since it
      	can now be invoked more than once.  Update comments.
      	(init_regs): Update comments.
      	(fix_register): Update initial_fixed_regs, initial_call_used_regs,
      	and initial_call_really_used_regs, instead of the non-initial 
              variables.  This allows us to save the command-line register settings
      	after target reinitialization.
      	(init_reg_autoinc): Zero forbidden_inc_dec_classes.
      	* rtl.h (init_emit_regs): Declare.
      	(init_reg_modes_target, init_alias_target): Renamed as described
      	above.
      	* reload1.c (init_reload): Update comments.
      	* optabs.c (init_optabs): Likewise.
      	* cfgloopanal.c (init_set_costs): Explicitly zero target_avail_regs.
      	
      
      
      Co-Authored-By: David Ung <davidu@mips.com>
      Co-Authored-By: Nigel Stephens <nigel@mips.com>
      
      From-SVN: r127832
      Sandra Loosemore committed
  24. 23 Aug, 2007 1 commit
    • rtl.c (rtx_code_size): Check CONST_FIXED to calcualte correct sizes in DEF_RTL_EXPR. · 091a3ac7
      	* rtl.c (rtx_code_size): Check CONST_FIXED to calcualte correct sizes
      	in DEF_RTL_EXPR.
      	(copy_rtx): Handle CONST_FIXED.
      	(rtx_equal_p): Likewise.
      	* rtl.h (fixed_value.h): New include.
      	(rtx_def): Add a new field of fixed_value to u.
      	(XCNMPFV): Define for accessing fixed_value.
      	(CONST_FIXED_VALUE, CONST_FIXED_VALUE_HIGH, CONST_FIXED_VALUE_LOW):
      	Define.
      	* rtl.def (CONST_FIXED): New constant.
      	(SS_MULT, US_MULT, SS_DIV, US_DIV, FRACT_CONVERT,
      	UNSIGNED_FRACT_CONVERT, SAT_FRACT, UNSIGNED_SAT_FRACT, US_NEG,
      	US_ASHIFT): New codes.
      	* doc/rtl.texi (Expressions): Document const_fixed, us_neg, ss_mult,
      	us_mult, ss_div, us_div, us_ashift, fract_convert, sat_fract,
      	unsigned_fract_convert, unsigned_sat_fract): Document them.
      	* varasm.c (assemble_integer): Extend to support fixed-point constants
      	by using different machine classes.
      	(decode_addr_const): Handle FIXED_CST.
      	(const_hash_1): Likewise.
      	(compare_constant): Likewise.
      	(copy_constant): Likewise.
      	(const_rtx_hash_1): Handle CONST_FIXED.
      	(output_constant_pool_2): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
      	MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
      	MODE_VECTOR_UACCUM.
      	(initializer_constant_valid_p): Handle FIXED_CST.
      	(output_constant): Support FIXED_POINT_TYPE.
      	* gengenrtl.c (excluded_rtx): Check CONST_FIXED to exclude.
      	* cse.c (hash_rtx): Support CONST_FIXED.
      	(exp_equiv_p): Likewise.
      	(cannon_reg): Likewise.
      	(fold_rtx): Likewise.
      	(equiv_constant): Likewise.
      	(cse_process_notes_1): Likewise.
      	(count_reg_usage): Likewise.
      	* cselib.c (entry_and_rtx_equal_p): Check CONST_FIXED.
      	(rtx_equal_for_cselib_p): Handle CONST_FIXED.
      	(wrap_constant): Check CONST_FIXED.
      	(cselib_hash_rtx): Support CONST_FIXED.
      	(cselib_subst_to_values): Likewise.
      	* df-scan.c (df_uses_record): Likewise.
      	* gcse.c (want_to_gcse_p): Likewise.
      	(oprs_unchanged_p): Likewise.
      	(oprs_not_set_p): Likewise.
      	(compute_transp): Likewise.
      	(extract_mentioned_regs_helper): Likewise.
      	* genemit.c (gen_exp): Likewise.
      	* local-alloc.c (equiv_init_varies_p): Likewise.
      	(contains_replace_regs): Likewise.
      	(memref_referenced_p): Likewise.
      	* loop-invariant.c (check_maybe_invariant): Likewise.
      	(hash_invariant_expr_1): Likewise.
      	(invariant_expr_equal_p): Likewise.
      	* postreload-gcse.c (oprs_unchanged_p): Likewise.
      	* regclass.c (reg_scan_mark_refs): Likewise.
      	* regrename.c (scan_rtx): Likewise.
      	* resource.c (mark_referenced_resources): Likewise.
      	(mark_set_resources): Likewise.
      	* rtlanal.c (rtx_unstable_p): Likewise.
      	(rtx_varies_p): Likewise.
      	(count_occurrences): Likewise.
      	(reg_mentioned_p): Likewise.
      	(modified_between_p): Likewise.
      	(modified_in_p): Likewise.
      	(volatile_insn_p): Likewise.
      	(volatile_refs_p): Likewise.
      	(side_effects_p): Likewise.
      	(may_trap_p_1): Likewise.
      	(inequality_comparisons_p): Likewise.
      	(computed_jump_p_1): Likewise.
      	(commutative_operand_precedence): Likewise.
      	* sched-deps.c (sched_analyze_2): Likewise.
      	* sched-vis.c (print_value): Likewise.
      	* reload.c (operands_match_p): Likewise.
      	(subst_reg_equivs): Likewise.
      	* reload1.c (eliminate_regs_1): Likewise.
      	(elimination_effects): Likewise.
      	(scan_paradoxical_subregs): Likewise.
      	* alias.c (rtx_equal_for_memref_p): Likewise.
      	* Makefile.in (RTL_BASE_H): Add fixed-value.h.
      	* emit-rtl.c (const_fixed_htab): New hash table.
      	(const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed):
      	Declare.
      	(const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed,
      	const_fixed_from_fixed_value): New functions.
      	(verify_rtx_sharing): Handle CONST_FIXED.
      	(copy_rtx_if_shared_1): Likewise.
      	(reset_used_flags): Likewise.
      	(set_used_flags): Likewise.
      	(copy_insn_1): Likewise.
      	(init_emit_once): Create const_fixed_htab.
      	Store fixed-point scalar and vector zero and one to const_tiny_rtx.
      
      From-SVN: r127725
      Chao-ying Fu committed
  25. 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
  26. 26 Jul, 2007 1 commit
  27. 25 Jul, 2007 1 commit
    • regclass.c (move_table): New type. · 779d7a1a
      	* regclass.c (move_table): New type.
      	(move_cost, may_move_in_cost, may_move_out_cost): Use it.
      	(init_move_cost): Break out from ...
      	(init_reg_sets_1): ... here; simplify computation of
      	have_regs-of_mode and contains_reg_of_mode.
      	(record_reg_classes): Unswitch internal loops.
      	(copy_cost): Trigger lazy initialization of move cost
      	(record_address_regs): Likewise.
      
      From-SVN: r126901
      Jan Hubicka committed
  28. 21 Jul, 2007 1 commit
  29. 11 Jun, 2007 1 commit
  30. 24 May, 2007 1 commit
  31. 22 May, 2007 2 commits
    • regs.h (end_hard_regno): New function. · 09e18274
      gcc/
      	* regs.h (end_hard_regno): New function.
      	(END_HARD_REGNO, END_REGNO): New macros.
      	(add_to_hard_reg_set): New function.
      	(remove_from_hard_reg_set): Likewise.
      	(in_hard_reg_set_p): Likewise.
      	(overlaps_hard_reg_set_p): Likewise.
      	* bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p.
      	(note_btr_set): Use END_HARD_REGNO.
      	* caller-save.c (setup_save_areas): Use end_hard_regno.
      	(mark_set_regs): Use END_HARD_REGNO.
      	(add_stored_regs): Use end_hard_regno.
      	(mark_referenced_regs): Use add_to_hard_reg_set.
      	* combine.c (update_table_tick): Use END_REGNO.
      	(record_value_for_reg): Likewise.
      	(record_dead_and_set_regs): Likewise.
      	(get_last_value_validate): Likewise.
      	(use_crosses_set_p): Likewise.
      	(reg_dead_at_p_1): Likewise.
      	(reg_dead_at_p): Likewise.
      	(mark_used_regs_combine): Use add_to_hard_reg_set.
      	(move_deaths): Use END_HARD_REGNO.
      	(reg_bitfield_target_p): Use end_hard_regno.
      	(distribute_notes): Use END_HARD_REGNO.
      	* cse.c (mention_regs): Use END_REGNO.
      	(insert): Use add_to_hard_reg_set.
      	(invalidate): Use END_HARD_REGNO.
      	(invalidate_for_call): Likewise.
      	(exp_equiv_p): Use END_REGNO.
      	(cse_insn): Likewise.
      	* cselib.c (cselib_invalidate_regno): Use end_hard_regno.
      	* df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO.
      	* df-scan.c (df_ref_record): Use END_HARD_REGNO.
      	* function.c (keep_stack_depressed): Use end_hard_regno.
      	* global.c (global_alloc): Use end_hard_regno.
      	(global_conflicts): Use add_to_hard_reg_set instead of
      	mark_reg_live_nc.
      	(find_reg): Likewise.
      	(mark_reg_store): Likewise.
      	(mark_reg_conflicts): Likewise.
      	(mark_reg_death): Use remove_from_hard_reg_set.
      	(mark_reg_live_nc): Delete.
      	(set_preference): Use end_hard_regno.
      	* local-alloc.c (mark_life): Use add_to_hard_reg_set and
      	remove_from_hard_reg_set.
      	(post_mark_life): Use add_to_hard_reg_set.
      	* mode-switching.c (reg_dies): Use remove_from_hard_reg_set.
      	(reg_becomes_live): Use add_to_hard_reg_set.
      	* recog.c (reg_fits_class_p): Use in_hard_reg_set_p.
      	(peep2_find_free_register): Use add_to_hard_reg_set.
      	* reg-stack.c (convert_regs_exit): Use END_HARD_REGNO.
      	* regclass.c (record_reg_classes): Use in_hard_reg_set_p.
      	* regrename.c (note_sets): Use add_to_hard_reg_set.
      	(clear_dead_regs): Use remove_from_hard_reg_set.
      	(regrename_optimize): Use add_to_hard_reg_set.
      	(find_oldest_value_reg): Use in_hard_reg_set_p.
      	* reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno.
      	(hard_reg_set_here_p): Use end_hard_regno.
      	(decompose): Likewise.
      	(reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO.
      	(find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno.
      	* reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set.
      	(mark_home_live): Use end_hard_regno.
      	(spill_hard_reg): Likewise.
      	(clear_reload_reg_in_use): Likewise.
      	* reorg.c (delete_prior_computation): Use END_REGNO.
      	* resource.c (update_live_status): Use END_HARD_REGNO.
      	(mark_referenced_resources): Use add_to_hard_reg_set.
      	(mark_set_resources): Likewise.
      	(mark_target_live_regs): Likewise.  Use remove_from_hard_reg_set.
      	* rtlanal.c (refers_to_regno_p): Use END_REGNO.
      	(reg_overlap_mentioned_p): Likewise.
      	(dead_or_set_p): Likewise.  Use an exclusive upper loop bound.
      	(covers_regno_no_parallel_p): Use END_REGNO.
      	(find_regno_note): Likewise.
      	(find_reg_fusage): Use END_HARD_REGNO.
      	* stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p.
      	* var-tracking.c (emit_note_insn_var_location): Use end_hard_regno.
      
      From-SVN: r124961
      Richard Sandiford committed
    • hard-reg-set.h (GO_IF_HARD_REG_SUBSET, [...]): Delete in favor of... · 56b138ae
      gcc/
      	* hard-reg-set.h (GO_IF_HARD_REG_SUBSET, GO_IF_HARD_REG_EQUAL): Delete
      	in favor of...
      	(hard_reg_subset_p, hard_reg_sets_equal_p, hard_reg_sets_intersect_p)
      	(hard_reg_set_empty_p): ...these new functions.
      	* bt-load.c (choose_btr): Use hard_reg_subset_p instead of
      	GO_IF_HARD_REG_SUBSET.
      	* cfgcleanup.c (old_insns_match_p): Use hard_reg_sets_equal_p
      	instead of GO_IF_HARD_REG_EQUAL.
      	* df-problems.c (df_urec_local_compute): Use hard_reg_set_empty_p
      	instead of GO_IF_HARD_REG_EQUAL.
      	* global.c (find_reg): Use hard_reg_set_empty_p instead of
      	GO_IF_HARD_REG_SUBSET.
      	(modify_reg_pav): Use hard_reg_set_empty_p instead of
      	GO_IF_HARD_REG_EQUAL.
      	* local-alloc.c (find_free_reg): Use hard_reg_subset_p instead
      	of GO_IF_HARD_REG_SUBSET.
      	* reg-stack.c (change_stack, convert_regs_1): Use hard_reg_sets_equal_p
      	instead of GO_IF_HARD_REG_EQUAL.
      	* regclass.c (init_reg_sets_1, reg_scan_mark_refs): Use
      	hard_reg_subset_p instead of GO_IF_HARD_REG_SUBSET.
      	(reg_classes_intersect_p): Use hard_reg_sets_intersect_p instead
      	of GO_IF_HARD_REG_SUBSET,
      	* reload1.c (finish_spills): Use hard_reg_subset_p instead of
      	GO_IF_HARD_REG_SUBSET.
      	* struct-equiv.c (death_notes_match_p): Use hard_reg_sets_equal_p
      	instead of GO_IF_HARD_REG_EQUAL.
      	* config/sh/sh.c (push_regs, calc_live_regs): Use
      	hard_reg_sets_intersect_p instead of hard_regs_intersect_p.
      	(hard_regs_intersect_p): Delete.
      
      From-SVN: r124954
      Richard Sandiford committed
  32. 29 Apr, 2007 1 commit
  33. 01 Feb, 2007 1 commit
    • lower-subreg.c: New file. · e53a16e7
      gcc/:
      	* lower-subreg.c: New file.
      	* rtl.def (CONCATN): Define.
      	* passes.c (init_optimization_passes): Add pass_lower_subreg and
      	pass_lower_subreg2.
      	* emit-rtl.c (update_reg_offset): New static function, broken out
      	of gen_rtx_REG_offset.
      	(gen_rtx_REG_offset): Call update_reg_offset.
      	(gen_reg_rtx_offset): New function.
      	* regclass.c: Revert patch of 2006-03-05, restoring
      	reg_scan_update.
      	(clear_reg_info_regno): New function.
      	* dwarf2out.c (concatn_loc_descriptor): New static function.
      	(loc_descriptor): Handle CONCATN.
      	* common.opt (fsplit_wide_types): New option.
      	* opts.c (decode_options): Set flag_split_wide_types when
      	optimizing.
      	* timevar.def (TV_LOWER_SUBREG): Define.
      	* rtl.h (gen_reg_rtx_offset): Declare.
      	(reg_scan_update): Declare.
      	* regs.h (clear_reg_info_regno): Declare.
      	* tree-pass.h (pass_lower_subreg): Declare.
      	(pass_lower_subreg2): Declare.
      	* doc/invoke.texi (Option Summary): List -fno-split-wide-types.
      	(Optimize Options): Add -fsplit-wide-types to -O1 list.  Document
      	-fsplit-wide-types.
      	* doc/rtl.texi (Regs and Memory): Document concat and concatn.
      	* Makefile.in (OBJS-common): Add lower-subreg.o.
      	(lower-subreg.o): New target.
      gcc/testsuite/:
      	* gcc.dg/lower-subreg-1.c (test): New test.
      
      From-SVN: r121453
      Ian Lance Taylor committed
  34. 03 Jan, 2007 1 commit
    • alias.c (init_alias_analysis): Use VEC_safe_grow_cleared. · a590ac65
      	* alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
      	* cfgbuild.c (find_basic_blocks): Likewise.
      	* cfgrtl.c (rtl_create_basic_block): Likewise.
      	* function.c (temp_slots_at_level): Likewise.
      	* reg-stack.c (stack_regs_mentioned): Likewise.
      	* regclass.c (allocate_reg_info): Likewise.
      	* tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
      	set_bb_for_stmt, move_block_to_fn): Likewise.
      	* tree-complex.c (tree_lower_complex): Likewise.
      	* vec.h (VEC_safe_grow_cleared): New.
      
      From-SVN: r120386
      Kazu Hirata committed
  35. 02 Jan, 2007 2 commits
    • Revert: · 61465e75
      	2007-01-02  Kazu Hirata  <kazu@codesourcery.com>
      
      	* alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
      	* cfgbuild.c (find_basic_blocks): Likewise.
      	* cfgrtl.c (rtl_create_basic_block): Likewise.
      	* function.c (temp_slots_at_level): Likewise.
      	* reg-stack.c (stack_regs_mentioned): Likewise.
      	* regclass.c (allocate_reg_info): Likewise.
      	* tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
      	set_bb_for_stmt, move_block_to_fn): Likewise.
      	* tree-complex.c (tree_lower_complex): Likewise.
      	* vec.h (VEC_safe_grow_cleared): New.
      
      From-SVN: r120351
      Kazu Hirata committed
    • alias.c (init_alias_analysis): Use VEC_safe_grow_cleared. · d887a682
      	* alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
      	* cfgbuild.c (find_basic_blocks): Likewise.
      	* cfgrtl.c (rtl_create_basic_block): Likewise.
      	* function.c (temp_slots_at_level): Likewise.
      	* reg-stack.c (stack_regs_mentioned): Likewise.
      	* regclass.c (allocate_reg_info): Likewise.
      	* tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
      	set_bb_for_stmt, move_block_to_fn): Likewise.
      	* tree-complex.c (tree_lower_complex): Likewise.
      	* vec.h (VEC_safe_grow_cleared): New.
      
      From-SVN: r120345
      Kazu Hirata committed