Commit Graph

101557 Commits

Author SHA1 Message Date
Richard Sandiford
7c6811fe1e Makefile.in (gcse.o, [...]): Depend on gcse.h..
gcc/
	* Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
	* gcse.h: New file.
	* gcse.c: Include gcse.h.
	(default_target_gcse): New variable.
	(this_target_gcse): New conditional variable.
	(can_copy): Redefine as a macro.
	(can_copy_init_p): New macro.
	(can_copy_p): Remove can_copy_init_p.
	* target-globals.h (this_target_gcse): Declare.
	(target_globals): Add a gcse field.
	(restore_target_globals): Copy the gcse field to
	this_target_gcse.
	* target-globals.c: Include gcse.h.
	(default_target_globals): Initialize the gcse field.
	(save_target_globals): Likewise.

From-SVN: r162108
2010-07-12 19:04:03 +00:00
Richard Sandiford
15e7b94f18 ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs and...
gcc/
	* ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
	and x_ira_prohibited_mode_move_regs_initialized_p.
	(ira_prohibited_mode_move_regs): Redefine as a macro.
	* ira.c (ira_prohibited_mode_move_regs): Delete.
	(ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.

From-SVN: r162107
2010-07-12 19:03:50 +00:00
Richard Sandiford
cc14227fd9 reload.h (target_reload): Add x_cached_reg_save_code and x_cached_reg_restore_code.
gcc/
	* reload.h (target_reload): Add x_cached_reg_save_code and
	x_cached_reg_restore_code.
	* caller-save.c (cached_reg_save_code, cached_reg_restore_code):
	Redefine as macros.

From-SVN: r162106
2010-07-12 19:03:43 +00:00
Richard Sandiford
fa19795ec4 Makefile.in (target-globals.o): Depend on builtins.h.
gcc/
	* Makefile.in (target-globals.o): Depend on builtins.h.
	* builtins.h: New file.
	* builtins.c: Include builtins.h.
	(default_target_builtins): New variable.
	(this_target_builtins): New conditional variable.
	(apply_args_mode, apply_result_mode): Redefine as macros.
	* target-globals.h (this_target_builtins): Declare.
	(target_globals): Add a builtins field.
	(restore_target_globals): Copy the builtins field to
	this_target_builtins.
	* target-globals.c: Include builtins.h.
	(default_target_globals): Initialize the builtins field.
	(save_target_globals): Likewise.

From-SVN: r162105
2010-07-12 19:03:35 +00:00
Richard Sandiford
c371bb7380 gcc/
* expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
	(algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
	from expmed.c.
	(target_expmed): Add x_alg_hash and x_alg_hash_used_p.
	(alg_hash, alg_hash_used_p): New macros.
	* expmed.c (init_expmed): Clear alg_hash if reinitializing.
	(alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
	(alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.

From-SVN: r162104
2010-07-12 19:03:25 +00:00
Richard Sandiford
aa1c5d72e9 ira-int.h (target_ira_int): Add x_max_struct_costs_size...
gcc/
	* ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
	x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
	* ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
	(this_op_costs, costs_classes): Redefine as macros.
	(record_reg_classes): Don't take op_costs as a parameter.
	(record_operand_costs): Likewise.  Update calls to record_reg_classes.
	(scan_one_insn): Update call to record_operand_costs.

From-SVN: r162103
2010-07-12 19:03:15 +00:00
Richard Sandiford
afcc66c49a Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
gcc/
	* Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
	* ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
	(target_ira_int): New structure.
	(default_target_ira_int): Declare.
	(this_target_ira_int): Declare as a variable or define as a macro.
	(ira_reg_mode_hard_regset, ira_register_move_cost)
	(ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
	(ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
	(prohibited_class_mode_regs, ira_important_classes_num)
	(ira_important_classes, ira_reg_class_intersect)
	(ira_reg_classes_intersect_p, ira_reg_class_super_classes)
	(ira_reg_class_union): Redefine as macros.
	* ira.h (target_ira): New structure.
	(default_target_ira): Declare.
	(this_target_ira): Declare as a variable or define as a macro.
	(ira_available_class_regs, ira_hard_regno_cover_class)
	(ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
	(ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
	(ira_class_hard_regs_num): Redefine as macros.
	* ira.c (default_target_ira, default_target_ira_int): New variables.
	(this_target_ira, this_target_ira_int): New conditional variables.
	(ira_reg_mode_hard_regset, ira_memory_move_cost)
	(ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
	(ira_class_subset_p): Delete.
	(no_unit_alloc_regs): Redefine as a macro.
	(ira_class_hard_regs, ira_non_ordered_class_hard_regs)
	(ira_class_hard_regs_num, ira_class_hard_reg_index)
	(ira_available_class_regs): Delete.
	(alloc_reg_class_subclasses): Redefine as a macro.
	(ira_reg_class_cover_size, ira_reg_class_cover)
	(ira_important_classes_num, ira_important_classes)
	(ira_important_class_nums, ira_class_translate): Delete.
	(cover_class_order): Document the variable's lifetime.
	(reorder_important_classes): Don't set ira_important_class_nums.
	(ira_reg_class_intersect, ira_reg_classes_intersect_p)
	(ira_reg_class_super_classes, ira_reg_class_union)
	(ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
	Delete.
	(setup_reg_class_nregs): Don't set ira_max_regs.
	(prohibited_class_mode_regs): Delete.
	* target-globals.h (this_target_ira, this_target_ira_int): Declare.
	(target_globals): Add ira and ira_int fields.
	(restore_target_globals): Copy the ira field to this_target_ira
	and the ira_int field to this_target_ira_int.
	* target-globals.c: Include ira-int.h.
	(default_target_globals): Initialize the ira and ira_int fields.
	(save_target_globals): Likewise.

From-SVN: r162102
2010-07-12 19:03:06 +00:00
Richard Sandiford
4391924a33 Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
gcc/
	* Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
	* cfgloop.h (target_cfgloop): New structure.
	(default_target_cfgloop): Declare.
	(this_target_cfgloop): Declare as a variable or define as a macro.
	(target_avail_regs, target_clobbered_regs, target_res_regs)
	(target_reg_cost, target_spill_cost): Redefine as macros.
	* cfgloopanal.c (default_target_cfgloop): New variable.
	(this_target_cfgloop): New conditional variable.
	(target_avail_regs, target_clobbered_regs, target_res_regs)
	(target_reg_cost, target_spill_cost): Delete.
	* target-globals.h (this_target_cfgloop): Declare.
	(target_globals): Add a cfgloop field.
	(restore_target_globals): Copy the cfgloop field to
	this_target_cfgloop.
	* target-globals.c: Include cfgloop.h.
	(default_target_globals): Initialize the cfgloop field.
	(save_target_globals): Likewise.

From-SVN: r162101
2010-07-12 19:02:55 +00:00
Richard Sandiford
9d86796b62 regs.h (target_regs): Add x_direct_load, x_direct_store and x_float_extend_from_mem.
gcc/
	* regs.h (target_regs): Add x_direct_load, x_direct_store and
	x_float_extend_from_mem.
	(direct_load, direct_store, float_extend_from_mem): New macros.
	* expr.c (direct_load, direct_store, float_extend_from_mem): Delete.

From-SVN: r162100
2010-07-12 18:55:57 +00:00
Richard Sandiford
3e9c326a88 Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
gcc/
	* Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
	(target-globals.o): Depend on $(LIBFUNCS_H).
	* libfuncs.h: Include hashtab.h.
	(libfunc_entry): Moved from optabs.c.
	(target_libfuncs): New structure.
	(default_target_libfuncs): Declare.
	(this_target_libfuncs): Declare as a variable or define as a macro.
	(libfunc_table): Redefine as a macro.
	* optabs.c (default_target_libfuncs): New variable.
	(this_target_libfuncs): New conditional variable.
	(libfunc_table): Delete.
	(libfunc_entry): Moved to optabs.h.
	(libfunc_hash): Redefine as a macro.
	(hash_libfunc, eq_libfunc): Fix comments.
	(init_optabs): Use libfunc_hash to detect cases where the function
	has already been called.  Clear the hash table instead of
	recreating it.
	* target-globals.h (this_target_libfuncs): Declare.
	(target_globals): Add a libfuncs field.
	(restore_target_globals): Copy the libfuncs field to
	this_target_libfuncs.
	* target-globals.c: Include libfuncs.h.
	(default_target_globals): Initialize the libfuncs field.
	(save_target_globals): Likewise.

From-SVN: r162099
2010-07-12 18:55:48 +00:00
Richard Sandiford
9f7f18923a Makefile.in (LIBFUNCS_H): New variable.
gcc/
	* Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
	in all dependency lists.

From-SVN: r162098
2010-07-12 18:55:34 +00:00
Richard Sandiford
4bcbfa0393 Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
gcc/
	* Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
	* optabs.h (target_optabs): New structure.
	(default_target_optabs): Declare.
	(this_target_optabs): Declare as a variable or define as a macro.
	(optab_table, convert_optab_table, direct_optab_table): Redefine
	as macros.
	* optabs.c (default_target_optabs): New variable.
	(this_target_optabs): New conditional variable.
	(optab_table, convert_optab_table, direct_optab_table): Delete.
	* target-globals.h (this_target_optabs): Declare.
	(target_globals): Add a optabs field.
	(restore_target_globals): Copy the optabs field to
	this_target_optabs.
	* target-globals.c: Include expr.h and optabs.h.
	(default_target_globals): Initialize the optabs field.
	(save_target_globals): Likewise.

From-SVN: r162097
2010-07-12 18:54:35 +00:00
Richard Sandiford
b660937531 flags.h (target_flagstate): Add x_flag_excess_precision.
gcc/
	* flags.h (target_flagstate): Add x_flag_excess_precision.
	(flag_excess_precision): Redefine as a macro.
	* toplev.c (flag_excess_precision): Delete.

From-SVN: r162096
2010-07-12 18:54:26 +00:00
Richard Sandiford
bcbaaba1a3 defaults.h (MAX_MOVE_MAX, [...]): Define if not defined.
gcc/
	* defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
	* libgcc2.c (MIN_UNITS_PER_WORD): Delete.
	* hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
	(no_caller_save_reg_set): Redefine as a macro.
	* reload.h (target_reload): Add x_caller_save_initialized_p and
	x_regno_save_mode.
	(caller_save_initialized_p): Redefine as a macro.
	* caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
	(MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
	(regno_save_mode): Redefine as a macro.

From-SVN: r162095
2010-07-12 18:54:17 +00:00
Richard Sandiford
462f85cedc Makefile.in (expmed.o, [...]): Depend on expmed.h.
gcc/
	* Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
	* expmed.h: New file.
	* expmed.c (default_target_costs): New variable.
	(this_target_costs): New conditional variable.
	(sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
	(shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
	(sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
	* target-globals.h (this_target_expmed): Declare.
	(target_globals): Add a expmed field.
	(restore_target_globals): Copy the expmed field to
	this_target_expmed.
	* target-globals.c: Include expmed.h.
	(default_target_globals): Initialize the expmed field.
	(save_target_globals): Likewise.

From-SVN: r162094
2010-07-12 18:54:08 +00:00
Richard Sandiford
d474db8448 Makefile.in (target-globals.o): Depend on reload.h.
gcc/
	* Makefile.in (target-globals.o): Depend on reload.h.
	* reload.h (target_reload): New structure.
	(default_target_reload): Declare.
	(this_target_reload): Declare as a variable or define as a macro.
	(indirect_symref_ok, double_reg_address_ok): Redefine as macros.
	* reload1.c (default_target_reload): New variable
	(this_target_reload): New conditional variable.
	(indirect_symref_ok, double_reg_address_ok): Delete.
	(spill_indirect_levels): Redefine as a macro.
	* target-globals.h (this_target_reload): Declare.
	(target_globals): Add a reload field.
	(restore_target_globals): Copy the reload field to
	this_target_reload.
	* target-globals.c: Include hard-reg-set.h.
	(default_target_globals): Initialize the reload field.
	(save_target_globals): Likewise.

From-SVN: r162093
2010-07-12 18:53:59 +00:00
Richard Sandiford
7bf84454ff rtl.h (target_rtl): Add x_static_reg_base_value.
gcc/
	* rtl.h (target_rtl): Add x_static_reg_base_value.
	* alias.c (static_reg_base_value): Redefine as a macro.

From-SVN: r162092
2010-07-12 18:53:49 +00:00
Richard Sandiford
360d045b05 Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
gcc/
	* Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
	(GTFILES): Remove reginfo.c.
	* rtl.h (target_rtl): Add x_top_of_stack.
	(top_of_stack): New macro.
	* reginfo.c: Don't include ggc.h or gt-reginfo.h.
	(top_of_stack): Delete.

From-SVN: r162091
2010-07-12 18:53:42 +00:00
Richard Sandiford
55e78c8cf9 regs.h (target_regs): Add x_hard_regs_of_mode...
gcc/
	* regs.h (target_regs): Add x_hard_regs_of_mode, x_contains_reg_of_mode,
	x_move_cost, x_may_move_in_cost, x_may_move_out_cost and
	x_last_mode_for_init_move_cost.
	(have_regs_of_mode, contains_reg_of_mode, move_cost)
	(may_move_in_cost, may_move_out_cost): Redefine as macros.
	* reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
	(may_move_in_cost, may_move_out_cost): Delete.
	(last_mode_for_init_move_cost): Redefine as a macro.

From-SVN: r162090
2010-07-12 18:53:33 +00:00
Richard Sandiford
6642445b2c hard-reg-set.h (target_hard_regs): New structure.
gcc/
	* hard-reg-set.h (target_hard_regs): New structure.
	(default_target_hard_regs): Declare.
	(this_target_hard_regs): Declare as a variable or define as a macro.
	(fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
	(call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
	(reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
	(reg_class_size, reg_class_subclasses, reg_class_subunion)
	(reg_class_superunion, reg_names): Redefine as macros.
	* reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
	(call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
	(regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
	(reg_class_contents, reg_class_size, reg_class_subclasses)
	(reg_class_subunion, reg_class_superunion, reg_names): Delete.
	(default_target_hard_regs): New variable
	(this_target_hard_regs, initial_call_really_used_regs)
	(initial_reg_alloc_order): New conditional variables.
	(initial_reg_names): New variable.
	(init_reg_sets): Assert that initial_call_really_used_regs,
	initial_reg_alloc_order and initial_reg_names
	are all the same size as their variable counterparts.  Use them to
	initialize those counterparts.
	* target-globals.h (this_target_hard_regs): Declare.
	(target_globals): Add a hard_regs field.
	(restore_target_globals): Copy the hard_regs field to
	this_target_hard_regs.
	* target-globals.c: Include hard-reg-set.h.
	(default_target_globals): Initialize the hard_regs field.
	(save_target_globals): Likewise.

From-SVN: r162089
2010-07-12 18:53:25 +00:00
Richard Sandiford
5fb0e246f4 Makefile.in (target-globals.o): Depend on $(RTL_H).
gcc/
	* Makefile.in (target-globals.o): Depend on $(RTL_H).
	* rtl.h: (target_rtl): New structure.
	(default_target_rtl): Declare.
	(this_target_rtl): Declare as a variable or define as a macro.
	(global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
	Redefine as macros.
	* emit-rtl.c (default_target_rtl): New variable.
	(this_target_rtl): New conditional variable.
	(global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
	(return_address_pointer_rtx): Delete.
	(initial_regno_reg_rtx): New macro.
	(init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
	(init_emit_regs): Likewise.
	* target-globals.h (this_target_rtl): Declare.
	(target_globals): Add a rtl field.
	(restore_target_globals): Copy the rtl field to this_target_rtl.
	* target-globals.c: Include rtl.h.
	(default_target_globals): Initialize the rtl field.
	(save_target_globals): Likewise.

From-SVN: r162088
2010-07-12 18:53:17 +00:00
Richard Sandiford
939dcd0d38 Makefile.in (target-globals.o): Depend on $(REGS_H).
gcc/
	* Makefile.in (target-globals.o): Depend on $(REGS_H).
	* regs.h (target_reg_modes): New structure.
	(default_target_reg_modes): Declare.
	(this_target_reg_modes): Declare as a variable or define as a macro.
	(hard_regno_nregs, reg_raw_mode): Redefine as macros.
	* reginfo.c (default_target_reg_modes): New variable.
	(this_target_reg_modes): New conditional variable.
	(hard_regno_nregs, reg_raw_mode): Delete.
	* target-globals.h (this_target_regs): Declare.
	(target_globals): Add a regs field.
	(restore_target_globals): Copy the regs field to this_target_regs.
	* target-globals.c: Include regs.h.
	(default_target_globals): Initialize the regs field.
	(save_target_globals): Likewise.

From-SVN: r162087
2010-07-12 18:53:08 +00:00
Richard Sandiford
3bd36029de tm.texi.in (SWITCHABLE_TARGET): Document.
gcc/
	* doc/tm.texi.in (SWITCHABLE_TARGET): Document.
	* doc/tm.texi: Regenerate.
	* Makefile.in (OBJS-common): Add target-globals.o.
	(gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
	and target-globals.h.
	(target-globals.o): New rule.
	(GTFILES): Include $(srcdir)/target-globals.h.
	* defaults.h (SWITCHABLE_TARGET): Define.
	* gengtype.c (open_base_files): Add target-globals.h to the
	list of includes.
	* target-globals.h: New file.
	* target-globals.c: Likewise.

	* Makefile.in (target-globals.o): Depend on $(FLAGS_H).
	* flags.h (target_flag_state): New structure.
	(default_target_flag_state): Declare.
	(this_target_flag_state): Declare as a variable or define as a macro.
	(align_loops_log): Redefine as a macro.
	(align_loops_max_skip, align_jumps_log): Likewise.
	(align_jumps_max_skip, align_labels_log): Likewise.
	(align_labels_max_skip, align_functions_log): Likewise.
	* toplev.c (default_target_flag_state): New variable.
	(this_target_flag_state): New conditional variable.
	(align_loops_log): Delete.
	(align_loops_max_skip, align_jumps_log): Likewise.
	(align_jumps_max_skip, align_labels_log): Likewise.
	(align_labels_max_skip, align_functions_log): Likewise.
	* target-globals.h (this_target_flag_state): Declare.
	(target_globals): Add a flag_state field.
	(restore_target_globals): Copy the flag_state field to
	this_target_flag_state.
	* target-globals.c: Include flags.h.
	(default_target_globals): Initialize the flag_state field.
	(save_target_globals): Likewise.

From-SVN: r162086
2010-07-12 18:53:01 +00:00
Jie Zhang
7beb0596ea postreload.c (reg_symbol_ref[]): New.
* postreload.c (reg_symbol_ref[]): New.
	(move2add_use_add2_insn): New.
	(move2add_use_add3_insn): New.
	(reload_cse_move2add): Handle SYMBOL + OFFSET case.
	(move2add_note_store): Likewise.

From-SVN: r162085
2010-07-12 17:22:48 +00:00
Joern Rennecke
2bc7b00c49 Fix comment typo.
From-SVN: r162084
2010-07-12 18:17:47 +01:00
Joern Rennecke
ea19b1ec7b re PR rtl-optimization/44752 (insn-automata.c: empty translation unit)
PR rtl-optimization/44752
	* genautomata.c (main): Don't emit an empty file even if there
	is no automaton.

From-SVN: r162083
2010-07-12 18:16:38 +01:00
Rainer Orth
e2b4f10338 i386.c (ix86_sol10_return_in_memory): Rename to ix86_solaris_return_in_memory.
* config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
	ix86_solaris_return_in_memory.
	* config/i386-protos.h: Reflect this.
	* config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
	* config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
	Move ...
	* config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.

From-SVN: r162082
2010-07-12 15:30:50 +00:00
Mikael Morin
04a17bb6ed expr.c (gfc_get_int_expr): Don't initialize mpfr data twice.
2010-07-12  Mikael Morin  <mikael@gcc.gnu.org>

	* expr.c (gfc_get_int_expr): Don't initialize mpfr data twice.
	* resolve.c (build_default_init_expr): Ditto.

From-SVN: r162081
2010-07-12 14:31:00 +00:00
Rainer Orth
872cc2d3c9 inclhack.def (solaris_cond_init): New fix.
* inclhack.def (solaris_cond_init): New fix.
	* fixincl.x: Regenerate.
	* tests/base/pthread.h [SOLARIS_COND_INIT_CHECK]: New test.
	[SOLARIS_MUTEX_INIT_2_CHECK]: Adapt.

From-SVN: r162080
2010-07-12 14:29:50 +00:00
Jie Zhang
fb2f8cf836 arm.c (arm_get_frame_offsets): Don't use r3 to align the stack when it's going to be saved.
* config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
	align the stack when it's going to be saved.

	testsuite/
	* gcc.target/arm/interrupt-1.c: New test.
	* gcc.target/arm/interrupt-2.c: New test.

From-SVN: r162078
2010-07-12 14:02:08 +00:00
Rainer Orth
f457c53d3c pr42427.c: Require c99_runtime.
* gcc.dg/pr42427.c: Require c99_runtime.
	* gcc.target/i386/avx-cmpsd-1.c: Use dg-require-effective-target
	c99_runtime.
	* gcc.target/i386/avx-cmpss-1.c: Likewise.
	* gcc.target/i386/avx-vcmppd-1.c: Likewise.
	* gcc.target/i386/avx-vcmppd-256-1.c: Likewise.
	* gcc.target/i386/avx-vcmpps-1.c: Likewise.
	* gcc.target/i386/avx-vcmpps-256-1.c: Likewise.
	* gcc.target/i386/avx-vcmpsd-1.c: Likewise.
	* gcc.target/i386/avx-vcmpss-1.c: Likewise.
	* gcc.target/i386/sse-cmpss-1.c: Likewise.
	* gcc.target/i386/sse2-cmpsd-1.c: Likewise
	* gcc.target/i386/pr37275.c: Require visibility support.

From-SVN: r162075
2010-07-12 12:21:10 +00:00
Rainer Orth
8f89ba7c3d re PR pch/14940 (PCH largefile test fails on various platforms)
PR pch/14940
	* config/host-solaris.c (mmap_fixed): New function.
	(sol_gt_pch_get_address): Use it.
	(sol_gt_pch_use_address): Likewise.

From-SVN: r162074
2010-07-12 11:57:16 +00:00
Rainer Orth
ae6a053582 config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to pentiumpro on Solaris 8 and 9/x86.
gcc:
	* config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
	pentiumpro on Solaris 8 and 9/x86.
	* doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
	Document SSE/SSE2 support.
	* doc/sourcebuild.texi (Effective-Target Keywords): Document sse.

	gcc/testsuite:
	* lib/target-supports.exp (check_effective_target_sse): New proc.
	* gcc.target/i386/sol2-check.h: New file.
	* gcc.target/i386/sse-check.h (ILL_INSN, ILL_INSN_LEN): Define.
	Include sol2-check.h.
	(main) Only run do_test () if sol2_check ().
	* gcc.target/i386/sse2-check.h: Likewise.
	* gcc.target/i386/sse3-check.h: Likewise.
	* gcc.dg/vect/tree-vect.h (check_vect) [__i386__ || __x86_64__]
	[__sun__ && __svr4__]: Execute SSE2 instruction.
	* gcc.target/i386/math-torture/math-torture.exp: Only add options
	with -msse to MATH_TORTURE_OPTIONS if check_effective_target_sse.
	* g++.dg/debug/dwarf2/const2b.C: Use dg-require-effective-target sse.
	* g++.dg/ext/vector14.C: Likewise.
	* g++.dg/other/mmintrin.C: Likewise.
	* gcc.dg/20020418-1.c: Likewise.
	* gcc.dg/debug/dwarf2/const-2b.c: Likewise.
	* gcc.dg/format/ms_unnamed-1.c: Likewise.
	* gcc.dg/format/unnamed-1.c: Likewise.
	Adapt dg-warning line number.
	* gcc.dg/graphite/pr40281.c: Likewise.
	* gcc.dg/pr32176.c: Likewise.
	* gcc.dg/pr40550.c: Likewise.
	* gcc.dg/prefetch-loop-arrays-1.c: Likewise.
	* gcc.dg/torture/pr36891.c: Likewise.
	* gcc.target/i386/20020218-1.c: Likewise.
	* gcc.target/i386/20020523.c: Likewise.
	* gcc.target/i386/abi-1.c: Likewise.
	* gcc.target/i386/brokensqrt.c: Likewise.
	* gcc.target/i386/fastcall-sseregparm.c: Likewise.
	* gcc.target/i386/pr13366.c: Likewise.
	* gcc.target/i386/pr13685.c: Likewise.
	* gcc.target/i386/pr24306.c: Likewise.
	* gcc.target/i386/pr31486.c: Likewise.
	* gcc.target/i386/pr32065-1.c: Likewise.
	* gcc.target/i386/pr32065-2.c: Likewise.
	* gcc.target/i386/pr32389.c: Likewise.
	* gcc.target/i386/pr38824.c: Likewise.
	* gcc.target/i386/pr38931.c: Likewise.
	* gcc.target/i386/pr39592-1.c: Likewise.
	* gcc.target/i386/pr43766.c: Likewise.
	* gcc.target/i386/recip-divf.c: Likewise.
	* gcc.target/i386/recip-sqrtf.c: Likewise.
	* gcc.target/i386/recip-vec-divf.c: Likewise.
	* gcc.target/i386/recip-vec-sqrtf.c: Likewise.
	* gcc.target/i386/sse-1.c: Likewise.
	* gcc.target/i386/sse-16.c: Likewise.
	* gcc.target/i386/sse-2.c: Likewise.
	* gcc.target/i386/sse-20.c: Likewise.
	* gcc.target/i386/sse-3.c: Likewise.
	* gcc.target/i386/sse-7.c: Likewise.
	* gcc.target/i386/sse-9.c: Likewise.
	* gcc.target/i386/sse-addps-1.c: Likewise.
	* gcc.target/i386/sse-addss-1.c: Likewise.
	* gcc.target/i386/sse-andnps-1.c: Likewise.
	* gcc.target/i386/sse-andps-1.c: Likewise.
	* gcc.target/i386/sse-cmpss-1.c: Likewise.
	* gcc.target/i386/sse-comiss-1.c: Likewise.
	* gcc.target/i386/sse-comiss-2.c: Likewise.
	* gcc.target/i386/sse-comiss-3.c: Likewise.
	* gcc.target/i386/sse-comiss-4.c: Likewise.
	* gcc.target/i386/sse-comiss-5.c: Likewise.
	* gcc.target/i386/sse-comiss-6.c: Likewise.
	* gcc.target/i386/sse-copysignf-vec.c: Likewise.
	* gcc.target/i386/sse-cvtsi2ss-1.c: Likewise.
	* gcc.target/i386/sse-cvtsi2ss-2.c: Likewise.
	* gcc.target/i386/sse-cvtss2si-1.c: Likewise.
	* gcc.target/i386/sse-cvtss2si-2.c: Likewise.
	* gcc.target/i386/sse-cvttss2si-1.c: Likewise.
	* gcc.target/i386/sse-cvttss2si-2.c: Likewise.
	* gcc.target/i386/sse-divps-1.c: Likewise.
	* gcc.target/i386/sse-divss-1.c: Likewise.
	* gcc.target/i386/sse-init-v4hi-1.c: Likewise.
	* gcc.target/i386/sse-init-v4sf-1.c: Likewise.
	* gcc.target/i386/sse-maxps-1.c: Likewise.
	* gcc.target/i386/sse-maxss-1.c: Likewise.
	* gcc.target/i386/sse-minps-1.c: Likewise.
	* gcc.target/i386/sse-minss-1.c: Likewise.
	* gcc.target/i386/sse-movaps-1.c: Likewise.
	* gcc.target/i386/sse-movaps-2.c: Likewise.
	* gcc.target/i386/sse-movhlps-1.c: Likewise.
	* gcc.target/i386/sse-movhps-1.c: Likewise.
	* gcc.target/i386/sse-movhps-2.c: Likewise.
	* gcc.target/i386/sse-movlhps-1.c: Likewise.
	* gcc.target/i386/sse-movmskps-1.c: Likewise.
	* gcc.target/i386/sse-movntps-1.c: Likewise.
	* gcc.target/i386/sse-movss-1.c: Likewise.
	* gcc.target/i386/sse-movss-2.c: Likewise.
	* gcc.target/i386/sse-movss-3.c: Likewise.
	* gcc.target/i386/sse-movups-1.c: Likewise.
	* gcc.target/i386/sse-movups-2.c: Likewise.
	* gcc.target/i386/sse-mulps-1.c: Likewise.
	* gcc.target/i386/sse-mulss-1.c: Likewise.
	* gcc.target/i386/sse-orps-1.c: Likewise.
	* gcc.target/i386/sse-rcpps-1.c: Likewise.
	* gcc.target/i386/sse-recip-vec.c: Likewise.
	* gcc.target/i386/sse-recip.c: Likewise.
	* gcc.target/i386/sse-rsqrtps-1.c: Likewise.
	* gcc.target/i386/sse-set-ps-1.c: Likewise.
	* gcc.target/i386/sse-sqrtps-1.c: Likewise.
	* gcc.target/i386/sse-subps-1.c: Likewise.
	* gcc.target/i386/sse-subss-1.c: Likewise.
	* gcc.target/i386/sse-ucomiss-1.c: Likewise.
	* gcc.target/i386/sse-ucomiss-2.c: Likewise.
	* gcc.target/i386/sse-ucomiss-3.c: Likewise.
	* gcc.target/i386/sse-ucomiss-4.c: Likewise.
	* gcc.target/i386/sse-ucomiss-5.c: Likewise.
	* gcc.target/i386/sse-ucomiss-6.c: Likewise.
	* gcc.target/i386/sse-unpckhps-1.c: Likewise.
	* gcc.target/i386/sse-unpcklps-1.c: Likewise.
	* gcc.target/i386/sse-xorps-1.c: Likewise.
	* gcc.target/i386/ssefn-1.c: Likewise.
	* gcc.target/i386/ssefn-3.c: Likewise.
	* gcc.target/i386/sseregparm-1.c: Likewise.
	* gcc.target/i386/stackalign/return-3.c: Likewise.
	* gcc.target/i386/vectorize1.c: Likewise.
	* gcc.target/i386/vperm-v4sf-1.c: Likewise.
	* gcc.target/i386/xorps-sse.c: Likewise.
	* gfortran.dg/pr28158.f90: Likewise.
	* gfortran.dg/pr30667.f: Likewise.
	* gnat.dg/loop_optimization7.adb: Likewise.
	* gnat.dg/sse_nolib.adb: Likewise.

	libgfortran:
	* config/fpu-387.h [__sun__ && __svr4__] Include <signal.h>,
	<ucontext.h>.
	(sigill_caught): New.
	(sigill_hdlr): New function
	(has_sse) [__sun__ && __svr4__]: Check if SSE instruction causes
	SIGILL.

From-SVN: r162073
2010-07-12 11:32:42 +00:00
Andi Kleen
e56d9a76ea lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error instead of gcc_assert to print better error message for...
2010-07-12  Andi Kleen  <ak@linux.intel.com>

        * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
        instead of gcc_assert to print better error message for
        multiple prevailing defs.

From-SVN: r162070
2010-07-12 08:35:08 +00:00
Uros Bizjak
9db335b97c i386.c (ix86_asm_output_function_label): Change format string placeholder from 0x%x to %#x.
* config/i386/i386.c (ix86_asm_output_function_label): Change format
	string placeholder from 0x%x to %#x.
	(ix86_code_end): Use putc to output '\n'.
	(ix86_print_operand) <case ';'>: Use putc to output ';'.

From-SVN: r162067
2010-07-12 09:37:55 +02:00
GCC Administrator
30ac015ec7 Daily bump.
From-SVN: r162065
2010-07-12 00:17:03 +00:00
Tobias Burnus
ee08f2e522 tob@archimedes:~/scratch/gcc> head -n 15 ../intrinsic_use.diff
2010-07-11  Tobias Burnus  <burnus@net-b.de>

        PR fortran/44702
        * module.c (sort_iso_c_rename_list): Remove.
        (import_iso_c_binding_module,use_iso_fortran_env_module):
        Allow multiple imports of the same symbol.

2010-07-11  Tobias Burnus  <burnus@net-b.de>

        PR fortran/44702
        * gfortran.dg/use_rename_6.f90: New.
        * gfortran.dg/use_iso_c_binding.f90: Update dg-error.

From-SVN: r162061
2010-07-11 23:29:30 +02:00
Kai Tietz
5bf935c3c8 re PR fortran/44698 (I/O: FLUSH does not actually flush the buffer?)
2010-07-11  Kai Tietz  <kai.tietz@onevision.com>

	PR libfortran/44698
	* io/unix.c (flush_buf): Add _commit for WIN32.

From-SVN: r162060
2010-07-11 20:43:25 +00:00
Mikael Morin
f67df2ca8b arith.c (gfc_arith_done_1): Release mpfr internal caches.
2010-07-11  Mikael Morin  <mikael@gcc.gnu.org>

	* arith.c (gfc_arith_done_1): Release mpfr internal caches.

From-SVN: r162058
2010-07-11 12:14:25 +00:00
Paolo Carlini
8e7d962aa5 type_traits (is_convertible): Use SFINAE.
2010-07-11  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/type_traits (is_convertible): Use SFINAE.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
	dg-error line numbers.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/declval/requirements/1_neg.cc: Likewise.

From-SVN: r162056
2010-07-11 09:13:26 +00:00
Kai Tietz
23b488ada2 winnt.c (i386_pe_file_end): Quote symbol name in directive -export.
2010-07-11  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/winnt.c (i386_pe_file_end): Quote symbol name
	in directive -export.

From-SVN: r162055
2010-07-11 11:05:24 +02:00
Janus Weil
160ea5dd46 fixing ChangeLog
From-SVN: r162053
2010-07-11 10:00:47 +02:00
Janus Weil
d40477b49f re PR fortran/44869 ([OOP] generic TBPs not initialized properly)
2010-07-11  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44689
	* decl.c (build_sym,attr_decl1): Only build the class container if the
	symbol has sufficient attributes.
	* expr.c (gfc_check_pointer_assign): Use class_pointer instead of
	pointer attribute for classes.
	* match.c (gfc_match_allocate,gfc_match_deallocate): Ditto.
	* module.c (MOD_VERSION): Bump.
	(enum ab_attribute,attr_bits): Add AB_CLASS_POINTER.
	(mio_symbol_attribute): Handle class_pointer attribute.
	* parse.c (parse_derived): Use class_pointer instead of pointer
	attribute for classes.
	* primary.c (gfc_variable_attr,gfc_expr_attr): Ditto.
	* resolve.c (resolve_structure_cons,resolve_deallocate_expr,
	resolve_allocate_expr,resolve_fl_derived): Ditto.
	(resolve_fl_var_and_proc): Check for class_ok attribute.

2010-07-11  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44689
	* gfortran.dg/class_24.f03: New.

From-SVN: r162052
2010-07-11 09:55:11 +02:00
GCC Administrator
76986b412b Daily bump.
From-SVN: r162051
2010-07-11 00:16:56 +00:00
Mikael Morin
02fe70afde MAINTAINERS (Reviewers): Update my e-mail address
2010-07-10  Mikael Morin  <mikael@gcc.gnu.org>

	* MAINTAINERS (Reviewers): Update my e-mail address

From-SVN: r162046
2010-07-10 22:33:36 +00:00
Anatoly Sokolov
a56b31caff reginfo.h (reg_classes_intersect_p): Change arguments type to reg_class_t.
* reginfo.h (reg_classes_intersect_p): Change arguments type to
	reg_class_t.
	* rtl.h (reg_classes_intersect_p): Adjust prototype.

	* config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
	Remove macros.
	* config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
	rs6000_memory_move_cost): Remove
	* config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
	TARGET_MEMORY_MOVE_COST): Define.
	(rs6000_register_move_cost): Make static. Change arguments type from
	enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
	(rs6000_memory_move_cost): Make static. Change arguments type from
	'enum reg_class' to reg_class_t.

From-SVN: r162045
2010-07-11 01:42:15 +04:00
Sandra Loosemore
bec922f040 re PR middle-end/42505 (loop canonicalization causes a lot of unnecessary temporary variables)
2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>

	PR middle-end/42505

	gcc/
	* tree-inline.c (estimate_num_insns): Refactor builtin complexity
	lookup code into....
	* builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
	new functions.
	* tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
	* cfgloopanal.c (target_clobbered_regs): Define.
	(init_set_costs): Initialize target_clobbered_regs.
	(estimate_reg_pressure_cost): Add call_p argument.  When true,
	adjust the number of available registers to exclude the
	call-clobbered registers.
	* cfgloop.h (target_clobbered_regs): Declare.
	(estimate_reg_pressure_cost): Adjust declaration.
	* tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
	(ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
	(determine_set_costs): Dump target_clobbered_regs.
	(loop_body_includes_call): New function.
	(tree_ssa_iv_optimize_loop): Use it to initialize new field.
	* loop-invariant.c (gain_for_invariant): Adjust arguments to pass
	call_p flag through.
	(best_gain_for_invariant): Likewise.
	(find_invariants_to_move): Likewise.
	(move_single_loop_invariants): Likewise, using already-computed
	has_call field.

From-SVN: r162043
2010-07-10 14:43:29 -04:00
Mikael Morin
35151cd5f8 trans-io.c (gfc_build_st_parameter): Update calls to gfc_add_field_to_struct.
2010-07-10  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-io.c (gfc_build_st_parameter): Update calls to
	gfc_add_field_to_struct.
	* trans-stmt.c (ADD_FIELD): Ditto.
	* trans-types.c
	(gfc_get_derived_type): Ditto. Don't create backend_decl for C_PTR's
	C_ADDRESS field. 
	(gfc_add_field_to_struct_1): Set TYPE_FIELDS(context) instead of
	fieldlist, remove fieldlist from argument list.
	(gfc_add_field_to_struct): Update call to gfc_add_field_to_struct_1
	and remove fieldlist from argument list. 
	(gfc_get_desc_dim_type, gfc_get_array_descriptor_base,
	gfc_get_mixed_entry_union): Move setting
	TYPE_FIELDS to gfc_add_field_to_struct_1 and update calls to it.
	* trans-types.h (gfc_add_field_to_struct): Update prototype.

From-SVN: r162042
2010-07-10 18:14:45 +00:00
Paul Thomas
022e30c0b6 re PR fortran/44773 (Unnecessary temporaries increase the runtime for channel.f90 by ~70%)
2010-07-10  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/44773
	* trans-expr.c (arrayfunc_assign_needs_temporary): No temporary
	if the lhs has never been host associated, as well as not being
	use associated, a pointer or a target.
	* resolve.c (resolve_variable): Mark variables that are host
	associated.
	* gfortran.h: Add the host_assoc bit to the symbol_attribute
	structure.

From-SVN: r162038
2010-07-10 14:57:25 +00:00
Richard Guenther
ccf134c74c re PR debug/44832 (-fcompare-debug failure for C++ i386.c)
2010-07-10  Richard Guenther  <rguenther@suse.de>
	    Joern Rennecke  <joern.rennecke@embecosm.com>

	PR debug/44832
	* tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for
	LABEL_DECL.
	(remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
	unless they have DECL_IGNORED_P set.

Co-Authored-By: Joern Rennecke <joern.rennecke@embecosm.com>

From-SVN: r162035
2010-07-10 10:40:36 +01:00