Commit Graph

101733 Commits

Author SHA1 Message Date
Laurent GUERBY 8b3ea3a806 re PR bootstrap/44458 (Bootstrap fails on arm_float_words_big_endian implicit declaration when Ada on arm-linux)
2010-07-13  Laurent GUERBY  <laurent@guerby.net>

        PR bootstrap/44458
        * gcc-interface/targtyps.c: Include tm_p.h.
        * gcc-interface/Make-lang.in: Update dependencies.

From-SVN: r162146
2010-07-13 15:59:20 +00:00
Iain Sandoe 6a9368d941 re PR objc/44488 (objc test inconsistencies w/ / w/out --enable-build-with-cxx)
PR objc/44488
	* lib/objc-torture.exp (objc-set-runtime-options): Base runtime list
	on the target.  Make sure that we can assemble the emitted asm when 
	the test type is 'compile'.

From-SVN: r162144
2010-07-13 15:20:21 +00:00
Jakub Jelinek c55c061a89 re PR testsuite/44701 (PR44492 fix broke gcc.target/powerpc/asm-es-2.c)
PR testsuite/44701
	* recog.c (constrain_operands): Allow side-effects in memory
	operands if either < or > constraint is used, rather than if
	both < and > is used.

From-SVN: r162142
2010-07-13 16:03:49 +02:00
Richard Guenther 85e5e340be re PR c++/36960 (Reference variable in virtually inherited base corrupted under optimization)
2010-07-13  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36960
	* g++.dg/torture/pr36960.C: New testcase.

From-SVN: r162141
2010-07-13 13:31:26 +00:00
Daniel Franke 6368f16604 re PR fortran/43665 (INTENT(IN) etc. optimization of calls: function annotations for noclobber/noescape arguments)
2010-07-13  Daniel Franke  <franke.daniel@gmail.com>
            Tobias Burnus  <burnus@net-b.de>

        PR fortran/43665
        * trans-decl.c (gfc_build_intrinsic_function_decls): Add
        noclobber/noescape annotations to function calls.
        (gfc_build_builtin_function_decls): Likewise.


Co-Authored-By: Tobias Burnus <burnus@net-b.de>

From-SVN: r162140
2010-07-13 15:20:52 +02:00
Paolo Carlini 135d47df21 re PR c++/44908 (SFINAE vs pointer to member via virtual base)
cp/
2010-07-13  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/44908
	* call.c (convert_like_real): Adjust convert_ptrmem call, pass
	complain argument.
	* typeck.c (get_delta_difference): Update prototype, add a
	tsubst_flags_t parameter; update get_delta_difference_1 calls and
	add checks for error_mark_node.
	(get_delta_difference_1): Update prototype, add a tsubst_flags_t
	parameter; update lookup_base call.
	(build_ptrmemfunc): Update prototype, add a tsubst_flags_t
	parameter; update get_delta_difference call and add check for
	error_mark_node.
	(convert_ptrmem): Update prototype, add a tsubst_flags_t
	parameter; update get_delta_difference call and add check for
	error_mark_node;  update build_ptrmemfunc call.
	(build_static_cast_1): Adjust convert_ptrmem call.
	(expand_ptrmemfunc_cst): Adjust get_delta_difference call.
	(cp_build_unary_op): Adjust build_ptrmemfunc call.
	* cvt.c (cp_convert_to_pointer, convert_force): Adjust convert_ptrmem
	and build_ptrmemfunc calls.
	* cp-tree.h: Update build_ptrmemfunc and convert_ptrmem prototypes.

testsuite/
2010-07-13  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/44908
	* g++.dg/template/sfinae21.C: New.
	* g++.dg/template/sfinae22.C: Likewise.

From-SVN: r162138
2010-07-13 11:47:58 +00:00
Richard Guenther 2eb0b984b6 re PR middle-end/44911 (line breaks in asm comments break assembly with -fverbose-asm)
2010-07-13  Richard Guenther  <rguenther@suse.de>

	PR middle-end/44911
	* tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
	MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
	without name.

From-SVN: r162137
2010-07-13 11:18:50 +00:00
Kaz Kojima d965817815 pr44683.x: New.
* gcc.c-torture/execute/pr44683.x: New.
	* gcc.dg/torture/builtin-cproj-1.c: Add dg-add-options ieee.

From-SVN: r162136
2010-07-13 10:43:52 +00:00
Kaz Kojima 535b951fb6 re PR target/44761 (sh.md warnings)
PR target/44761
	* mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
	to variable emited.
	* config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
	* config/sh/sh.md (symGOT_load): Likewise.
	(symDTPOFF2reg): Likewise.
	(symTPOFF2reg): Likewise.

From-SVN: r162135
2010-07-13 10:41:15 +00:00
Ramana Radhakrishnan 6d06590db7 expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
	* expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c

From-SVN: r162133
2010-07-13 09:48:58 +00:00
Rainer Orth ea2d8f1254 sol2-unwind.h (x86_64_fallback_frame_state): Correct explanation.
* config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
	explanation.
	Find ucontext_t * on Solaris 11.
	(x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
	Handle new Solaris 11 __sighndlr patterns.

From-SVN: r162129
2010-07-13 09:10:09 +00:00
Jakub Jelinek 2fed2012d5 re PR debug/44901 (-fcompare-debug failure for tree-predcom.c)
PR debug/44901
	* vec.h (VEC_block_remove): Fix comment.
	* tree-ssa-live.c (remove_unused_locals): Don't use
	VEC_unordered_remove on local_decls, instead replace a single
	vector element in each iteration if at least one element had
	to be removed and VEC_truncate at the end.
	* omp-low.c (expand_omp_taskreg): Likewise.

From-SVN: r162126
2010-07-13 08:59:56 +02:00
Janus Weil 88ce80316f re PR fortran/44434 ([OOP] ICE in in gfc_add_component_ref)
2010-07-13  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44434
	PR fortran/44565
	PR fortran/43945
	PR fortran/44869
	* gfortran.h (gfc_find_derived_vtab): Modified prototype.
	* class.c (gfc_build_class_symbol): Modified call to
	'gfc_find_derived_vtab'.
	(add_proc_component): Removed, moved code into 'add_proc_comp'.
	(add_proc_comps): Renamed to 'add_proc_comp', removed treatment of
	generics.
	(add_procs_to_declared_vtab1): Removed unnecessary argument 'resolved'.
	Removed treatment of generics.
	(copy_vtab_proc_comps): Removed unnecessary argument 'resolved'.
	Call 'add_proc_comp' instead of duplicating code.
	(add_procs_to_declared_vtab): Removed unnecessary arguments 'resolved'
	and 'declared'.
	(add_generic_specifics,add_generics_to_declared_vtab): Removed.
	(gfc_find_derived_vtab): Removed unnecessary argument 'resolved'.
	Removed treatment of generics.
	* iresolve.c (gfc_resolve_extends_type_of): Modified call to
	'gfc_find_derived_vtab'.
	* resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
	Removed treatment of generics.
	(resolve_select_type,resolve_fl_derived): Modified call to
	'gfc_find_derived_vtab'.
	* trans-decl.c (gfc_get_symbol_decl): Ditto.
	* trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
	Ditto.
	* trans-stmt.c (gfc_trans_allocate): Ditto.

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

	PR fortran/44434
	PR fortran/44565
	PR fortran/43945
	PR fortran/44869
	* gfortran.dg/dynamic_dispatch_1.f03: Fixed invalid test case.
	* gfortran.dg/dynamic_dispatch_2.f03: Ditto.
	* gfortran.dg/dynamic_dispatch_3.f03: Ditto.
	* gfortran.dh/typebound_call_16.f03: New.
	* gfortran.dg/typebound_generic_6.f03: New.
	* gfortran.dg/typebound_generic_7.f03: New.
	* gfortran.dg/typebound_generic_8.f03: New.

From-SVN: r162125
2010-07-13 08:57:17 +02:00
Jerry DeLisle b1743e3754 re PR fortran/37077 (Implement Internal Unit I/O for character KIND=4)
2010-07-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/37077
	* gfortran.dg/char4_iunit_1.f03: New test.

From-SVN: r162124
2010-07-13 02:16:29 +00:00
Jerry DeLisle c7421e06ca re PR fortran/37077 (Implement Internal Unit I/O for character KIND=4)
2010-07-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/37077
	* io/read.c: Fix comment.
	* io/io.h (is_char4_unit): New macro.
	* io/unit.c (get_internal_unit): Call new function open_internal4.
	* io/unix.c (mem_alloc_r4): New function. (mem_alloc_w4): New function.
	(mem_read4): New function, temporary stub. (mem_write4): New function.
	(open_internal4): New function to set stream pointers to use the new
	mem functions.
	* io/transfer.c (write_block): Use new mem_alloc_w4 to access internal
	units of kind=4.
	* io/unix.h: Add prototypes for open_internal4, mem_alloc_w4, and
	mem_alloc_r4.
	* io/write.c (memset4): New helper function. (memcpy4): New helper
	function. (write_default_char4): Use new helper functions.
	(write_a): Likewise. (write_l): Likewise. (write_boz): Likewise.
	(write_decimal): Likewise. (write_x): Likewise.
	(write_integer): Likewise.
	* io/write_float.def (output_float): Add code blocks to handle internal
	unit kind=4 output utilizing gfc_char4_t pointers. (write_infnan): Use
	new helper functions. (OUTPUT_FLOAT_FMT_G): Update this macro likewise.

From-SVN: r162123
2010-07-13 02:12:08 +00:00
Jerry DeLisle c8dce2cfdd re PR fortran/37077 (Implement Internal Unit I/O for character KIND=4)
2010-07-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/37077
	* trans-io.c (build_dt): Set common.unit to flag chracter(kind=4)
	internal unit.

From-SVN: r162122
2010-07-13 02:07:48 +00:00
Manuel López-Ibáñez cc343f65a4 c-decl.c (finish_function): Fix typo in comment.
2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c-decl.c (finish_function): Fix typo in comment.

From-SVN: r162121
2010-07-13 01:40:22 +00:00
H.J. Lu 5676e87dda Silence gcc warning on min_regno.
2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/44921
	* postreload.c (move2add_use_add3_insn): Silence gcc warning
	on min_regno.

From-SVN: r162120
2010-07-12 17:51:43 -07:00
GCC Administrator f40da4d105 Daily bump.
From-SVN: r162119
2010-07-13 00:17:03 +00:00
Jakub Jelinek 8556f58f76 tree-vrp.c (simplify_bit_ops_using_ranges): New function.
* tree-vrp.c (simplify_bit_ops_using_ranges): New function.
	(simplify_stmt_using_ranges): Use it.

	* gcc.dg/tree-ssa/vrp53.c: New test.

From-SVN: r162115
2010-07-13 00:11:27 +02:00
Ulrich Weigand 8dc9f5bd88 spu.h (struct spu_builtin_description): Remove FNDECL member.
* config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
	member.  Do not mark as GTY(()).
	* config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
	(spu_builtin_decls): New static variable.
	(spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
	(spu_init_builtins): Likewise.
	(spu_builtin_mul_widen_even): Likewise.
	(spu_builtin_mul_widen_odd): Likewise.
	(spu_builtin_mask_for_load): Likewise.
	(spu_builtin_vec_perm): Likewise.
	* config/spu/spu-c.c: Include "target.h".
	(spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
	of using spu_builtins[].fndecl.

From-SVN: r162114
2010-07-12 21:06:06 +00:00
Paolo Carlini 248ce2f8d1 re PR c++/44907 (SFINAE vs ambiguous base (the real one ;))
/cp
2010-07-12  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/44907
	* call.c (build_temp): Add tsubst_flags_t complain parameter;
	adjust build_special_member_call call, pass complain.
	(convert_like_real): Adjust build_temp call, pass complain.

/testsuite
2010-07-12  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/44907
	* g++.dg/template/sfinae19.C: New.
	* g++.dg/template/sfinae20.C: Likewise.

From-SVN: r162113
2010-07-12 19:59:31 +00:00
Richard Sandiford ac9b0eeae0 mips.c (mips_override_options): Make -mflip-mips16 imply -minterlink-mips16.
gcc/
	* config/mips/mips.c (mips_override_options): Make -mflip-mips16
	imply -minterlink-mips16.

From-SVN: r162112
2010-07-12 19:09:35 +00:00
Richard Sandiford 5aa62249ce mips.h (mips16_globals): Declare.
gcc/
	* config/mips/mips.h (mips16_globals): Declare.
	(SWITCHABLE_TARGET): Define.
	* config/mips/mips.c: Include target-globals.h.
	(mips16_globals): New variable.
	(mips_set_mips16_mode): Use save_target_globals and
	restore_target_globals instead of target_reinit.

From-SVN: r162111
2010-07-12 19:04:36 +00:00
Richard Sandiford 77f558794e reginfo.c (init_reg_sets): Don't zero globals here.
gcc/
	* reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
	to say that the function can be called more than once.
	* target-globals.c (save_target_globals): Call init_reg_sets.

From-SVN: r162110
2010-07-12 19:04:21 +00:00
Richard Sandiford 76ee381a9c Makefile.in (bb-reorder.o, [...]): Depend on bb-reorder.h
gcc/
	* Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
	* bb-reorder.h: New file.
	* bb-reorder.c (default_target_bb_reorder): New variable.
	(this_target_bb_reorder): New conditional variable.
	(uncond_jump_length): Redefine as a macro.
	* target-globals.h (this_target_bb_reorder): Declare.
	(target_globals): Add a bb_reorder field.
	(restore_target_globals): Copy the bb_reorder field to
	this_target_bb-reorder.
	* target-globals.c: Include bb-reorder.h.
	(default_target_globals): Initialize the bb_reorder field.
	(save_target_globals): Likewise.

From-SVN: r162109
2010-07-12 19:04:11 +00:00
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