1. 07 Oct, 2010 1 commit
  2. 28 Sep, 2010 1 commit
  3. 04 Jul, 2010 1 commit
    • tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document new arguments. · 720f5239
      	* doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
      	Document new arguments.
      	* doc/tm.texi: Regenerate.
      	* targhooks.c (default_builtin_vectorization_cost): Add new arguments.
      	Handle unaligned store.
      	* targhooks.h (default_builtin_vectorization_cost): Add new arguments.
      	* target.def (builtin_vectorization_cost): Add new arguments.
      	* target.h (enum vect_cost_for_stmt): Add unaligned_store.
      	* tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
      	of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
      	(vect_vfa_segment_size): Fix indentation.
      	* tree-vectorizer.h (struct _vect_peel_info): New.
      	(struct _vect_peel_extended_info): New.
      	(struct _loop_vec_info): Add new field for peeling hash table and a
      	macro for its access.
      	(VECT_MAX_COST): Define.
      	(vect_get_load_cost): Declare.
      	(vect_get_store_cost, vect_get_known_peeling_cost, 
      	vect_get_single_scalar_iteraion_cost): Likewise.
      	(vect_supportable_dr_alignment): Add new argument.
      	* tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
      	field.
      	(destroy_loop_vec_info): Free peeling hash table.
      	(vect_analyze_loop_form): Update call to builtin_vectorization_cost.
      	(vect_analyze_loop): Move vect_enhance_data_refs_alignment before
      	vect_analyze_slp. Fix indentation.
      	(vect_get_single_scalar_iteraion_cost): New function.
      	(vect_get_known_peeling_cost): Likewise.
      	(vect_estimate_min_profitable_iters): Rename byte_misalign to npeel. 
      	Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per 
      	statement. Move outside cost calculation inside unknown peeling case.
      	Call vect_get_known_peeling_cost for known amount of peeling.
      	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
      	reference to the print message of forced alignment.
      	(vect_verify_datarefs_alignment): Update call to 
      	vect_supportable_dr_alignment.
      	(vect_get_data_access_cost): New function.
      	(vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
      	vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
      	vect_peeling_hash_choose_best_peeling): Likewise.
      	(vect_enhance_data_refs_alignment): Fix documentation. Use hash table
      	to store all the accesses in the loop and find best possible access to
      	align using peeling for known alignment case. For unknown alignment
      	check if stores are preferred or if peeling is worthy.
      	(vect_find_same_alignment_drs): Analyze pairs of loads too.
      	(vect_supportable_dr_alignment): Add new argument and check aligned
      	accesses according to it. 
      	* tree-vect-stmts.c (vect_get_stmt_cost): New function.
      	(cost_for_stmt): Call vect_get_stmt_cost. 
      	(vect_model_simple_cost): Likewise.
      	(vect_model_store_cost): Call vect_get_stmt_cost. Call 
      	vect_get_store_cost to calculate the cost of the statement.
      	(vect_get_store_cost): New function.
      	(vect_model_load_cost): Call vect_get_stmt_cost. Call 
      	vect_get_load_cost to calculate the cost of the statement.
      	(vect_get_load_cost): New function.
      	(vectorizable_store): Update call to vect_supportable_dr_alignment.
      	(vectorizable_load): Likewise.
      	* config/spu/spu.c (spu_builtin_vectorization_cost): Add new
      	arguments. 
      	* config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
      	arguments. Handle unaligned store.
      	* config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
      	(rs6000_builtin_support_vector_misalignment): Return true for word and
      	double word alignments for VSX.
      	* tree-vect-slp.c (vect_build_slp_tree): Update calls to 
      	vect_supportable_dr_alignment and builtin_vectorization_cost.
      
      
      Co-Authored-By: Revital Eres <eres@il.ibm.com>
      
      From-SVN: r161797
      Ira Rosen committed
  4. 29 Jun, 2010 4 commits
    • re PR other/44034 (target hooks are hard to maintain) · 38f8b050
      gcc:
      	PR other/44034
      	* target.def, doc/tm.texi.in, genhooks.c: New files.
      	* target.h: Instead of defining individual hook members,
      	define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
      	include target.def.
      	* target-def.h: Instead of defining individual hook initializers,
      	include target-hooks-def.h.
      	* df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
      	targetm.live_on_entry -> targetm.extra_live_on_entry
      	targetm.sched.md_finish ->targetm.sched.finish
      	targetm.sched.md_init -> targetm.sched.init
      	targetm.sched.md_init_global -> targetm.sched.init_global
      	targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
      	targetm.asm_out.except_table_label ->
      	  targetm.asm_out.emit_except_table_label
      	targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
      	targetm.target_help -> targetm.help
      	targetm.vectorize.builtin_support_vector_misalignment ->
      	  targetm.vectorize.support_vector_misalignment
      	targetm.file_start_app_off -> targetm.asm_file_start_app_off
      	targetm.file_start_file_directive ->
      	 targetm.asm_file_start_file_directive
      	* dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
      	* varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
      	* gcc/config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
      	TARGET_VECTOR_ALIGNMENT_REACHABLE ->
      	  TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
      	TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
      	  TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
      	TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
      	* config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
      	* Makefile.in (TARGET_H): Depend on target.def.
      	(TARGET_DEF_H): Depend on target-hooks-def.h.
      	(target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
      	(s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
      	* doc/tm.texi: Regenerate.
      gcc/c-family:
      	* c-common.c: Rename targetm member:
      	targetm.enum_va_list -> targetm.enum_va_list_p
      gcc/po:
      	* EXCLUDES: Add genhooks.c.
      Index: gcc/doc/tm.texi
      
      From-SVN: r161547
      Joern Rennecke committed
    • tm.texi (TARGET_OPTION_OVERRIDE): Document. · 74f7912a
              * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
              (OVERRIDE_OPTIONS): Add note of obsolescence.
              Replace references with references to TARGET_OPTION_OVERRIDE.
              (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
               the macro).
              * targhooks.c (default_target_option_override): New function.
              * targhooks.h (default_target_option_override): Declare.
              * target.h (struct gcc_target): Add override member to
              target_option emmber.
              * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
              targetm.target_option.override call.
              * target-def.h (TARGET_OPTION_OVERRIDE): Define.
              (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
      
      From-SVN: r161538
      Joern Rennecke committed
    • calls.c, [...]: Call targetm.calls.function_arg... · 3c07301f
      	* calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
      	targetm.calls.function_incoming_arg, and
      	targetm.calls.function_arg_advance instead of FUNCTION_ARG,
      	FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
      	* target.h (struct gcc_target): Add function_arg_advance,
      	function_arg, and function_incoming_arg fields.
      	* target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
      	(TARGET_FUNCTION_INCOMING_ARG): Define.
      	(TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
      	and TARGET_FUNCTION_INCOMING_ARG.
      	* targhooks.h (default_function_arg_advance): Declare.
      	(default_function_arg, default_function_incoming_arg): Declare.
      	* targhooks.c (default_function_arg_advance): New function.
      	(default_function_arg, default_function_incoming_arg): New function.
      	* config/i386/i386.c (function_arg_advance): Rename to...
      	(ix86_function_arg_advance): ...this.  Make static.
      	(function_arg): Rename to...
      	(ix86_function_arg): ...this.  Make static.
      	(TARGET_FUNCTION_ARG_ADVANCE): Define.
      	(TARGET_FUNCTION_ARG): Define.
      	* config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
      	(FUNCTION_ARG): Delete.
      	* config/i386/i386-protos.h (function_arg_advance): Delete prototype.
      	(function_arg): Delete prototype.
      
      From-SVN: r161530
      Nathan Froyd committed
    • reginfo.c (init_reg_sets_1): Adjust comments. · 079e7538
      	* reginfo.c (init_reg_sets_1): Adjust comments.
      	* combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
      	* calls.c (prepare_call_address): Likewise.
      	(emit_call_1): Use targetm.calls.return_pops_args.
      	(expand_call): Likewise.
      	* function.c (assign_parms): Likewise.
      	* system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
      	* target.h (struct gcc_target) [struct calls]: Add
      	return_pops_args field.
      	* targhooks.h (default_return_pops_args): Declare.
      	* targhooks.c (default_return_pops_args): Define.
      	* target-def.h (TARGET_RETURN_POPS_ARGS): Define.
      	(TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
      	* doc/tm.texi (RETURN_POPS_ARGS): Rename to...
      	(TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
      	documentation.
      	* config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
      	* config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
      	* config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
      	* config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
      	* config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
      	* config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
      	* config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
      	* config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
      	* config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
      	* config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
      	* config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
      	* config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
      	* config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
      	* config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
      	* config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
      	* config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
      	* config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
      	* config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
      	* config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
      	* config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
      	* config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
      	* config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
      	* config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
      	* config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
      	* config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
      	* config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
      	* config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
      	* config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
      	* config/score/score.h (RETURN_POPS_ARGS): Likewise.
      	* config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
      	* config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
      	* config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
      	* config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
      	* config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
      	* config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
      	* config/i386/i386-protos.h (ix86_return_pops_args): Delete.
      	* config/i386/i386.h (RETURN_POPS_ARGS): Delete.
      	* config/i386/i386.c (ix86_return_pops_args): Make static.
      	Constify arguments.
      	(TARGET_RETURN_POPS_ARGS): Define.
      	* config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
      	* config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
      	(TARGET_RETURN_POPS_ARGS): Define.
      	* config/vax/vax.h (RETURN_POPS_ARGS): Move to...
      	* config/vax/vax.c (vax_return_pops_args): ...here.  New function.
      	(TARGET_RETURN_POPS_ARGS): Define.
      
      From-SVN: r161528
      Nathan Froyd committed
  5. 27 Jun, 2010 1 commit
    • target.h (struct gcc_target): Add register_move_cost field. · de8f4b07
      	* target.h (struct gcc_target): Add register_move_cost field.
      	* target-def.h (TARGET_REGISTER_MOVE_COST): New.
      	(TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
      	* targhooks.c (default_register_move_cost): New function.
      	* targhooks.h (default_register_move_cost): Declare function.
      	* defaults.h (REGISTER_MOVE_COST): Delete.
      	* ira-int.h (ira_register_move_cost): Update comment.
      	* ira.c: (ira_register_move_cost): Update comment.
      	* reload.h (register_move_cost): Declare.
      	* reginfo.c (register_move_cost): New function.
      	(move_cost): Update comment.
      	(init_move_cost, memory_move_secondary_cost): Replace
      	REGISTER_MOVE_COST with register_move_cost.
      	* postreload.c (reload_cse_simplify_set): (Ditto.).
      	* reload.c (find_valid_class, find_reloads): (Ditto.).
      	* reload1.c (choose_reload_regs): (Ditto.).
      	* doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
      	(REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
      	* doc/md.texi (can_create_pseudo_p): Update documentation.
      
      	* config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
      	* config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
      	* config/i386/i386.h (ix86_memory_move_cost): Make static.
      	(TARGET_MEMORY_MOVE_COST): Define.
      
      	* config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
      	* config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
      	* config/ia64/ia64.h (ia64_memory_move_cost): Make static.
      	(TARGET_MEMORY_MOVE_COST): Define.
      
      From-SVN: r161470
      Anatoly Sokolov committed
  6. 15 Jun, 2010 1 commit
    • * target.h (struct asm_out):Add declare_constant_name field. · e4f7c483
      	* target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
      	(TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
      	* output.h (default_asm_declare_constant_name): Declare.
      	(assemble_label): Update prototype.
      	* varasm.c (assemble_constant_contents): Use
      	targetm.asm_out.declare_constant_name target hook.
      	(assemble_label): Add 'file' argument.
      	(default_asm_declare_constant_name): New function.
      	* system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
      	* doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
      	(TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
      
      	* config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
      	* config/darwin.c (darwin_asm_declare_constant_name): New function.
      	(machopic_output_indirection): Update assemble_label argument list.
      	* config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
      	(TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
      
      From-SVN: r160811
      Anatoly Sokolov committed
  7. 07 Jun, 2010 1 commit
    • tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update documentation. · 35e1a5e7
      	* doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
      	documentation.
      	* targhooks.c (default_builtin_vectorization_cost): New function.
      	* targhooks.h (default_builtin_vectorization_cost): Declare.
      	* target.h (enum vect_cost_for_stmt): Define.
      	(builtin_vectorization_cost): Change argument and comment.
      	* tree-vectorizer.h: Remove cost model macros.
      	* tree-vect-loop.c: Include target.h.
      	(vect_get_cost): New function.
      	(vect_estimate_min_profitable_iters): Replace cost model macros with
      	calls to vect_get_cost.
      	(vect_model_reduction_cost, vect_model_induction_cost): Likewise.
      	* target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
      	default implementation.
      	* tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
      	calls to target hook builtin_vectorization_cost.
      	(vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
      	Likewise.
      	* Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
      	* config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
      	implementation to return costs.
      	* config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
      	* config/spu/spu.h: Remove vectorizer cost model macros.
      	* config/i386/i386.h: Likewise.
      	* tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
      	a call to target hook builtin_vectorization_cost.
      
      From-SVN: r160360
      Ira Rosen committed
  8. 05 Jun, 2010 1 commit
    • target.h (struct gcc_target): Add memory_move_cost field. · f5c21ef3
      	* target.h (struct gcc_target): Add memory_move_cost field.
      	* target-def.h (TARGET_MEMORY_MOVE_COST): New.
      	(TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
      	* targhooks.c (default_memory_move_cost): New function.
      	* targhooks.h (default_memory_move_cost): Declare function.
      	* reload.h (memory_move_cost): Declare.
      	(memory_move_secondary_cost): Change type of 'in' argument to bool.
      	* reginfo.c (memory_move_cost): New function.
      	(memory_move_secondary_cost): Change type of 'in' argument to bool.
      	* ira.h (ira_memory_move_cost): Update comment.
      	* ira.c: (ira_memory_move_cost): Update comment.
      	(setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
      	with memory_move_cost.
      	* postreload.c (reload_cse_simplify_set): (Ditto.).
      	* reload1.c (choose_reload_regs): (Ditto.).
      	* doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
      	(MEMORY_MOVE_COST):  Revise documentation.
      
      	* config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
      	* config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
      	* config/i386/i386.h (ix86_memory_move_cost): Make static. Change
      	type of 'in' argument to bool.
      	(TARGET_MEMORY_MOVE_COST): Define.
      
      From-SVN: r160323
      Anatoly Sokolov committed
  9. 04 Jun, 2010 1 commit
    • final.c (output_asm_insn): Call targetm.asm_out.print_operand_punct_valid_p. · 6e2188e0
      	* final.c (output_asm_insn): Call
      	targetm.asm_out.print_operand_punct_valid_p.  Update comments.
      	(output_operand): Call targetm.asm_out.print_operand.  Update comments.
      	(output_address): Call targetm.asm_out.print_operand_address.
      	Update comments.
      	* target.h (struct gcc_target): Add print_operand,
      	print_operand_address, and print_operand_punct_valid_p fields.
      	* targhooks.h (default_print_operand): Declare.
      	(default_print_operand_address): Declare.
      	(default_print_operand_punct_valid_p): Declare.
      	* targhooks.c (default_print_operand): Define.
      	(default_print_operand_address): Define.
      	(default_print_operand_punct_valid_p): Define.
      	* target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
      	(TARGET_PRINT_OPERAND_ADDRESS): Likewise.
      	(TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
      	(TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
      	TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
      	* vmsdbgout.c (addr_const_to_string): Update comment.
      	* config/i386/i386.c (print_operand): Rename to...
      	(ix86_print_operand): ...this.  Make static.
      	(print_operand_address): Rename to...
      	(ix86_print_operand_address): ...this.  Make static.  Call
      	ix86_print_operand instead of PRINT_OPERAND.
      	(ix86_print_operand_punct_valid_p): New function.
      	(TARGET_PRINT_OPERAND): Define.
      	(TARGET_PRINT_OPERAND_ADDRESS): Define.
      	(TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
      	* config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
      	(PRINT_OPERAND_PUNCT_VALID_P): Delete.
      	(PRINT_OPERAND): Delete.
      	(PRINT_OPERAND_ADDRESS): Delete.
      	* config/i386/i386-protos.h (print_operand): Delete prototype.
      	(print_operand_address): Delete prototype.
      
      From-SVN: r160245
      Nathan Froyd committed
  10. 28 May, 2010 1 commit
    • c-common.c (c_common_nodes_and_builtins): Replace use of TARGET_ENUM_VA_LIST by… · d4048208
      c-common.c (c_common_nodes_and_builtins): Replace use of TARGET_ENUM_VA_LIST by target hook enum_va_list.
      
      2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
      
              * c-common.c (c_common_nodes_and_builtins): Replace use
              of TARGET_ENUM_VA_LIST by target hook enum_va_list.
              * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
              to ix86_enum_va_list.
              * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
              * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
              (TARGET_ENUM_VA_LIST_P): Add hook description.
              * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
              * target.h (gcc_target): Add enum_va_list hook.
      
      From-SVN: r159966
      Kai Tietz committed
  11. 25 May, 2010 1 commit
    • invoke.texi: Document -Ofast. · be6d3f0e
      2010-05-25  Richard Guenther  <rguenther@suse.de>
      
      	* doc/invoke.texi: Document -Ofast.
      	* target.h (struct gcc_target): Add handle_ofast.
      	* target-def.h (TARGET_HANDLE_OFAST): Add.
      	(TARGET_INITIALIZER): Adjust.
      	* opts.c (decode_options): Handle -Ofast.  Enable
      	-ffast-math with it.
      	* common.opt (Ofast): Add.
      
      From-SVN: r159815
      Richard Guenther committed
  12. 19 May, 2010 1 commit
    • hooks.h (hook_tree_tree_tree_bool_null): Rename to... · f311c3b4
      	* hooks.h (hook_tree_tree_tree_bool_null): Rename to...
      	(hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
      	* hooks.c: Likewise.
      	* target-def.h (TARGET_FOLD_BUILTIN): Define to
      	hook_tree_tree_int_treep_bool_null.
      	* target.h: (struct gcc_target): Update signature of fold_builtin
      	field.
      	* doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
      	* builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
      	instead of the call expression.
      	(fold_builtin_call_array): Pass n and argarray directly.
      	(fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
      	consing a list.
      	* config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
      	MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
      	`i' and use it in place of `arity'.
      	* config/sparc/sparc.c (sparc_fold_builtin): Update signature.
      	Dereference `args' directly.
      	* config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
      
      From-SVN: r159585
      Nathan Froyd committed
  13. 12 May, 2010 1 commit
    • target.h (struct gcc_target): Add mode_dependent_address_p field. · cbda7dc6
      	* target.h (struct gcc_target): Add mode_dependent_address_p field.
      	* target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
      	(TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
      	* targhooks.c (default_mode_dependent_address_p): New function.
      	* targhooks.h (default_mode_dependent_address_p): Declare function.
      	* doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
      	(GO_IF_MODE_DEPENDENT_ADDRESS): Update.
      	* recog.c: (mode_dependent_address_p): Call mode_dependent_address_p
      	target hook. Change return type to bool.
      	* recog.h: (mode_dependent_address_p): Change return type to bool.
      
      From-SVN: r159339
      Anatoly Sokolov committed
  14. 07 May, 2010 1 commit
    • configure.ac (--enable-lto): Add x86_64-apple-darwin* as a platform that supports LTO. · c082f9f3
      ChangeLog:
      	* configure.ac (--enable-lto): Add x86_64-apple-darwin* as
      	a platform that supports LTO.
      	* configure: Regenerate.
      
      gcc/ChangeLog:
      	* config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
      	lto-macho as lto_binary_reader.
      	* target.h (struct gcc_target): New hooks lto_start and	lto_end.
      	* target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
      	* cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
      	in lto_start and lto_end calls.
      	(is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
      	magic numbers.
      	(scan_prog_file): Update is_elf_or_coff call.
      	* doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
      
      	* collect2.c (main): Fix enum comparison.
      
      	* config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
      	Add prototypes.
      	* darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
      	* darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
      	and TARGET_ASM_LTO_END.
      	* darwin.c: Include obstack.h and lto-streamer.h.
      	(lto_section_names_offset, lto_section_names_obstack,
      	lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
      	global variables.
      	(LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
      	(darwin_asm_lto_start): New function.  Redirect output to asm_out_file
      	to a temporary file.
      	(darwin_asm_lto_end): New function.  Restore asm_out_file.
      	(darwin_asm_named_section): For LTO sections, replace the name with
      	the offset of the section name in a string table, and build this
      	table.
      	(darwin_file_start): Initialize global vars for LTO support.
      	(darwin_file_end): If output to asm_out_file was redirected, append it
      	to the proper asm_out_file here.  Add the section names section.
      
      lto/ChangeLog:
      	* lto.h (struct lto_file_struct): Document offset member.
      	* lto-endian.h: New file.
      	* lto-macho.h: New file.
      	* lto-macho.c: New file.
      	* Make-lang.in: Add rule for lto-macho.o.
      
      From-SVN: r159173
      Steven Bosscher committed
  15. 05 May, 2010 1 commit
    • re PR testsuite/43758 (19 new GCC HEAD@158360 regressions) · 564a129d
      	PR testsuite/43758
      	* target.h (struct gcc_target): Add attribute_takes_identifier_p.
      	* target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
      	(TARGET_INITIALIZER): Use it.
      	* c-common.c (attribute_takes_identifier_p): Call it.
      	* c-common.h: Update prototype.
      	* config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
      	(TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
      
      From-SVN: r159079
      Jason Merrill committed
  16. 03 May, 2010 1 commit
    • tm.texi (defmac SMALL_REGISTER_CLASSES): Remove. · 42db504c
      	* doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
      	(TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
      	based on the above, for new target hook.
      
      	* hooks.c (hook_bool_mode_true): New generic hook.
      	* hooks.h (hook_bool_mode_true): Add prototype.
      
      	* target.h (struct gcc_target): Add small_register_classes_for_mode_p
      	target hook.
      	* target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
      	target hook, set to hook_bool_mode_false.
      	* regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
      	* reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
      	with targetm.small_register_classes_for_mode_p.
      	(find_reusable_reload): Likewise.
      	(combine_reloads): Likewise.
      	* reload1.c (reload_as_needed): Likewise.
      	* cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
      	* ifcvt.c (noce_process_if_block, check_cond_move_block,
      	dead_or_predicable): Likewise.
      	* regmove.c (optimize_reg_copy_1): Likewise.
      	* calls.c (prepare_call_address): Likewise.
      	(precompute_register_parameters): Likewise.
      
      	* config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
      	hook definition.
      	* config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
      	implementation of the hook that considers all register classes
      	small except for SH64.
      	(sh_override_options): Use the new hook.
      	* config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
      	Add prototype.
      
      	* config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
      	hook definition.
      	* config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
      	implementation of the hook that considers all register classes
      	small for THUMB1.
      	* config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
      	Add prototype.
      
      	* config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
      	hook definition.
      	* config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
      	implementation of the hook that considers all register classes
      	small for MIPS16.
      	* config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
      	Add prototype.
      
      	* config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
      	hook definition.
      	* config/m32c/m32c.h: Likewise.
      	* config/pdp11/pdp11.h: Likewise.
      	* config/avr/avr.h: Likewise.
      	* config/xtensa/xtensa.h: Likewise.
      	* config/m68hc11/m68hc11.h: Likewise.
      	* config/mn10300/mn10300.h: Likewise.
      	* config/mcore/mcore.h: Likewise.
      	* config/h8300/h8300.h: Likewise.
      	* config/bfin/bfin.h: Likewise.
      
      	* config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
      	* config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
      
      From-SVN: r158997
      Steven Bosscher committed
  17. 02 May, 2010 1 commit
    • target.h (struct calls): Add function_value_regno_p field. · 82f81f18
      	* target.h (struct calls): Add function_value_regno_p field.
      	* target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
      	(TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
      	* targhooks.c (default_function_value_regno_p): New function.
      	* targhooks.h (default_function_value_regno_p): Declare function.
      	* rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
      	* builtins.c. (apply_result_size): (Ditto.).
      	* combine.c. (likely_spilled_retval_p): (Ditto.).
      	* mode-switching.c. Include 'target.h'.
      	(create_pre_exit): Use function_value_regno_p hook.
      	* Makefile.in (mode-switching.o): Add dependency on TARGET_H.
      	* doc/tm.texi (FUNCTION_VALUE_REGNO_P,
      	TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
      
      	* config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
      	* config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
      	(ix86_function_value_regno_p): Declare as static, change argument
      	type to const unsigned int.
      	* config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
      
      From-SVN: r158970
      Anatoly Sokolov committed
  18. 09 Apr, 2010 1 commit
    • target.h (builtin_conversion): Pass in input and output types. · 88dd7150
      2010-04-09  Richard Guenther  <rguenther@suse.de>
      
      	* target.h (builtin_conversion): Pass in input and output types.
      	* targhooks.c (default_builtin_vectorized_conversion): Adjust.
      	* targhooks.h (default_builtin_vectorized_conversion): Likewise.
      	* tree-vect-stmts.c (vectorizable_conversion): Adjust.
      	* doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
      
      	* config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
      	Handle AVX modes.
      	* config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
      
      From-SVN: r158162
      Richard Guenther committed
  19. 08 Apr, 2010 1 commit
    • Implement target hook for loop unrolling · 40ac4f73
      2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
                  Wolfgang Gellerich  <gellerich@de.ibm.com>
      
              Implement target hook for loop unrolling
              * target.h (loop_unroll_adjust): Add a new target hook function.
              * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
              * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
              * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
              (s390_loop_unroll_adjust): Implement the new target hook for s390.
              * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll target hook
              (decide_unroll_stupid): Likewise.
      
      
      Co-Authored-By: Wolfgang Gellerich <gellerich@de.ibm.com>
      
      From-SVN: r158132
      Christian Borntraeger committed
  20. 27 Mar, 2010 1 commit
  21. 24 Mar, 2010 1 commit
    • re PR debug/43293 (Invalid unwind info for i?86 -fpic) · 6d217c32
      	PR debug/43293
      	* target.h (struct gcc_target): Add code_end hook.
      	* target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
      	if not yet defined.
      	(TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
      	* toplev.c (compile_file): Call targetm.asm_out.code_end
      	hook before unwind info/debug info output.
      	* config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
      	* config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
      	(TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
      	* config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
      	(TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
      	* config/i386/i386.c (ix86_file_end): Renamed to...
      	(ix86_code_end): ... this.  Make static.  Don't call
      	file_end_indicate_exec_stack.  Emit unwind info using
      	final_start_function/final_end_function.
      	(darwin_x86_file_end): Remove.
      	(TARGET_ASM_CODE_END): Define.
      	* config/i386/i386.h (TARGET_ASM_FILE_END,
      	NEED_INDICATE_EXEC_STACK): Don't define.
      	* config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
      	(TARGET_ASM_FILE_END): Define to darwin_file_end.
      	* config/i386/i386-protos.h (ix86_file_end): Remove prototype.
      	* doc/tm.texi (TARGET_ASM_CODE_END): Document.
      
      From-SVN: r157707
      Jakub Jelinek committed
  22. 19 Jan, 2010 1 commit
  23. 26 Nov, 2009 1 commit
    • target.h (targetm.vectorize.builtin_vec_perm_ok): New. · faf63e39
      	* target.h (targetm.vectorize.builtin_vec_perm_ok): New.
      	* target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New.
      	* hooks.h, hooks.c (hook_bool_tree_tree_true): New.
      	* tree-vect-slp.c (vect_create_mask_and_perm): Don't create
      	the vector constant here...
      	(vect_transform_slp_perm_load): ... do it here instead.  Validate
      	that the permutation vector is implementable by the target.
      
      From-SVN: r154665
      Richard Henderson committed
  24. 25 Nov, 2009 1 commit
    • Remove trailing white spaces. · b8698a0f
      2009-11-25  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* alias.c: Remove trailing white spaces.
      	* alloc-pool.c: Likewise.
      	* alloc-pool.h: Likewise.
      	* attribs.c: Likewise.
      	* auto-inc-dec.c: Likewise.
      	* basic-block.h: Likewise.
      	* bb-reorder.c: Likewise.
      	* bt-load.c: Likewise.
      	* builtins.c: Likewise.
      	* builtins.def: Likewise.
      	* c-common.c: Likewise.
      	* c-common.h: Likewise.
      	* c-cppbuiltin.c: Likewise.
      	* c-decl.c: Likewise.
      	* c-format.c: Likewise.
      	* c-lex.c: Likewise.
      	* c-omp.c: Likewise.
      	* c-opts.c: Likewise.
      	* c-parser.c: Likewise.
      	* c-pretty-print.c: Likewise.
      	* c-tree.h: Likewise.
      	* c-typeck.c: Likewise.
      	* caller-save.c: Likewise.
      	* calls.c: Likewise.
      	* cfg.c: Likewise.
      	* cfganal.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cfghooks.c: Likewise.
      	* cfghooks.h: Likewise.
      	* cfglayout.c: Likewise.
      	* cfgloop.c: Likewise.
      	* cfgloop.h: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cfgrtl.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraph.h: Likewise.
      	* cgraphbuild.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* cif-code.def: Likewise.
      	* collect2.c: Likewise.
      	* combine.c: Likewise.
      	* convert.c: Likewise.
      	* coverage.c: Likewise.
      	* crtstuff.c: Likewise.
      	* cse.c: Likewise.
      	* cselib.c: Likewise.
      	* dbgcnt.c: Likewise.
      	* dbgcnt.def: Likewise.
      	* dbgcnt.h: Likewise.
      	* dbxout.c: Likewise.
      	* dce.c: Likewise.
      	* ddg.c: Likewise.
      	* ddg.h: Likewise.
      	* defaults.h: Likewise.
      	* df-byte-scan.c: Likewise.
      	* df-core.c: Likewise.
      	* df-problems.c: Likewise.
      	* df-scan.c: Likewise.
      	* df.h: Likewise.
      	* dfp.c: Likewise.
      	* diagnostic.c: Likewise.
      	* diagnostic.h: Likewise.
      	* dominance.c: Likewise.
      	* domwalk.c: Likewise.
      	* double-int.c: Likewise.
      	* double-int.h: Likewise.
      	* dse.c: Likewise.
      	* dwarf2asm.c: Likewise.
      	* dwarf2asm.h: Likewise.
      	* dwarf2out.c: Likewise.
      	* ebitmap.c: Likewise.
      	* ebitmap.h: Likewise.
      	* emit-rtl.c: Likewise.
      	* et-forest.c: Likewise.
      	* except.c: Likewise.
      	* except.h: Likewise.
      	* expmed.c: Likewise.
      	* expr.c: Likewise.
      	* expr.h: Likewise.
      	* final.c: Likewise.
      	* flags.h: Likewise.
      	* fold-const.c: Likewise.
      	* function.c: Likewise.
      	* function.h: Likewise.
      	* fwprop.c: Likewise.
      	* gcc.c: Likewise.
      	* gcov-dump.c: Likewise.
      	* gcov-io.c: Likewise.
      	* gcov-io.h: Likewise.
      	* gcov.c: Likewise.
      	* gcse.c: Likewise.
      	* genattr.c: Likewise.
      	* genattrtab.c: Likewise.
      	* genautomata.c: Likewise.
      	* genchecksum.c: Likewise.
      	* genconfig.c: Likewise.
      	* genflags.c: Likewise.
      	* gengtype-parse.c: Likewise.
      	* gengtype.c: Likewise.
      	* gengtype.h: Likewise.
      	* genmddeps.c: Likewise.
      	* genmodes.c: Likewise.
      	* genopinit.c: Likewise.
      	* genpreds.c: Likewise.
      	* gensupport.c: Likewise.
      	* ggc-common.c: Likewise.
      	* ggc-page.c: Likewise.
      	* ggc-zone.c: Likewise.
      	* ggc.h: Likewise.
      	* gimple-iterator.c: Likewise.
      	* gimple-low.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* gimple.c: Likewise.
      	* gimple.def: Likewise.
      	* gimple.h: Likewise.
      	* gimplify.c: Likewise.
      	* graphds.c: Likewise.
      	* graphite-clast-to-gimple.c: Likewise.
      	* gthr-nks.h: Likewise.
      	* gthr-posix.c: Likewise.
      	* gthr-posix.h: Likewise.
      	* gthr-posix95.h: Likewise.
      	* gthr-single.h: Likewise.
      	* gthr-tpf.h: Likewise.
      	* gthr-vxworks.h: Likewise.
      	* gthr.h: Likewise.
      	* haifa-sched.c: Likewise.
      	* hard-reg-set.h: Likewise.
      	* hooks.c: Likewise.
      	* hooks.h: Likewise.
      	* hosthooks.h: Likewise.
      	* hwint.h: Likewise.
      	* ifcvt.c: Likewise.
      	* incpath.c: Likewise.
      	* init-regs.c: Likewise.
      	* integrate.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* ipa-struct-reorg.c: Likewise.
      	* ipa-struct-reorg.h: Likewise.
      	* ipa-type-escape.c: Likewise.
      	* ipa-type-escape.h: Likewise.
      	* ipa-utils.c: Likewise.
      	* ipa-utils.h: Likewise.
      	* ipa.c: Likewise.
      	* ira-build.c: Likewise.
      	* ira-color.c: Likewise.
      	* ira-conflicts.c: Likewise.
      	* ira-costs.c: Likewise.
      	* ira-emit.c: Likewise.
      	* ira-int.h: Likewise.
      	* ira-lives.c: Likewise.
      	* ira.c: Likewise.
      	* jump.c: Likewise.
      	* lambda-code.c: Likewise.
      	* lambda-mat.c: Likewise.
      	* lambda-trans.c: Likewise.
      	* lambda.h: Likewise.
      	* langhooks.c: Likewise.
      	* lcm.c: Likewise.
      	* libgcov.c: Likewise.
      	* lists.c: Likewise.
      	* loop-doloop.c: Likewise.
      	* loop-init.c: Likewise.
      	* loop-invariant.c: Likewise.
      	* loop-iv.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* lower-subreg.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* lto-compress.c: Likewise.
      	* lto-opts.c: Likewise.
      	* lto-section-in.c: Likewise.
      	* lto-section-out.c: Likewise.
      	* lto-streamer-in.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* lto-streamer.c: Likewise.
      	* lto-streamer.h: Likewise.
      	* lto-symtab.c: Likewise.
      	* lto-wpa-fixup.c: Likewise.
      	* matrix-reorg.c: Likewise.
      	* mcf.c: Likewise.
      	* mode-switching.c: Likewise.
      	* modulo-sched.c: Likewise.
      	* omega.c: Likewise.
      	* omega.h: Likewise.
      	* omp-low.c: Likewise.
      	* optabs.c: Likewise.
      	* optabs.h: Likewise.
      	* opts-common.c: Likewise.
      	* opts.c: Likewise.
      	* params.def: Likewise.
      	* params.h: Likewise.
      	* passes.c: Likewise.
      	* plugin.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* postreload.c: Likewise.
      	* predict.c: Likewise.
      	* predict.def: Likewise.
      	* pretty-print.c: Likewise.
      	* pretty-print.h: Likewise.
      	* print-rtl.c: Likewise.
      	* print-tree.c: Likewise.
      	* profile.c: Likewise.
      	* read-rtl.c: Likewise.
      	* real.c: Likewise.
      	* recog.c: Likewise.
      	* reg-stack.c: Likewise.
      	* regcprop.c: Likewise.
      	* reginfo.c: Likewise.
      	* regmove.c: Likewise.
      	* regrename.c: Likewise.
      	* regs.h: Likewise.
      	* regstat.c: Likewise.
      	* reload.c: Likewise.
      	* reload1.c: Likewise.
      	* resource.c: Likewise.
      	* rtl.c: Likewise.
      	* rtl.def: Likewise.
      	* rtl.h: Likewise.
      	* rtlanal.c: Likewise.
      	* sbitmap.c: Likewise.
      	* sched-deps.c: Likewise.
      	* sched-ebb.c: Likewise.
      	* sched-int.h: Likewise.
      	* sched-rgn.c: Likewise.
      	* sched-vis.c: Likewise.
      	* sdbout.c: Likewise.
      	* sel-sched-dump.c: Likewise.
      	* sel-sched-dump.h: Likewise.
      	* sel-sched-ir.c: Likewise.
      	* sel-sched-ir.h: Likewise.
      	* sel-sched.c: Likewise.
      	* sel-sched.h: Likewise.
      	* sese.c: Likewise.
      	* sese.h: Likewise.
      	* simplify-rtx.c: Likewise.
      	* stack-ptr-mod.c: Likewise.
      	* stmt.c: Likewise.
      	* stor-layout.c: Likewise.
      	* store-motion.c: Likewise.
      	* stringpool.c: Likewise.
      	* stub-objc.c: Likewise.
      	* sync-builtins.def: Likewise.
      	* target-def.h: Likewise.
      	* target.h: Likewise.
      	* targhooks.c: Likewise.
      	* targhooks.h: Likewise.
      	* timevar.c: Likewise.
      	* tlink.c: Likewise.
      	* toplev.c: Likewise.
      	* toplev.h: Likewise.
      	* tracer.c: Likewise.
      	* tree-affine.c: Likewise.
      	* tree-affine.h: Likewise.
      	* tree-browser.def: Likewise.
      	* tree-call-cdce.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-chrec.c: Likewise.
      	* tree-chrec.h: Likewise.
      	* tree-complex.c: Likewise.
      	* tree-data-ref.c: Likewise.
      	* tree-data-ref.h: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-dump.c: Likewise.
      	* tree-dump.h: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-flow-inline.h: Likewise.
      	* tree-flow.h: Likewise.
      	* tree-if-conv.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-loop-linear.c: Likewise.
      	* tree-mudflap.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-nomudflap.c: Likewise.
      	* tree-nrv.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-optimize.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-pass.h: Likewise.
      	* tree-phinodes.c: Likewise.
      	* tree-predcom.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-ssa-address.c: Likewise.
      	* tree-ssa-alias.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree-ssa-copy.c: Likewise.
      	* tree-ssa-copyrename.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-dse.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-ifcombine.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-live.h: Likewise.
      	* tree-ssa-loop-ch.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-manip.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-loop-unswitch.c: Likewise.
      	* tree-ssa-loop.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssa-operands.c: Likewise.
      	* tree-ssa-operands.h: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-propagate.c: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-sink.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-uncprop.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-ssanames.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-tailcall.c: Likewise.
      	* tree-vect-data-refs.c: Likewise.
      	* tree-vect-generic.c: Likewise.
      	* tree-vect-loop-manip.c: Likewise.
      	* tree-vect-loop.c: Likewise.
      	* tree-vect-patterns.c: Likewise.
      	* tree-vect-slp.c: Likewise.
      	* tree-vect-stmts.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree-vectorizer.h: Likewise.
      	* tree-vrp.c: Likewise.
      	* tree.c: Likewise.
      	* tree.def: Likewise.
      	* tree.h: Likewise.
      	* treestruct.def: Likewise.
      	* unwind-compat.c: Likewise.
      	* unwind-dw2-fde-glibc.c: Likewise.
      	* unwind-dw2.c: Likewise.
      	* value-prof.c: Likewise.
      	* value-prof.h: Likewise.
      	* var-tracking.c: Likewise.
      	* varasm.c: Likewise.
      	* varpool.c: Likewise.
      	* vec.c: Likewise.
      	* vec.h: Likewise.
      	* vmsdbgout.c: Likewise.
      	* web.c: Likewise.
      	* xcoffout.c: Likewise.
      
      From-SVN: r154645
      H.J. Lu committed
  25. 29 Oct, 2009 1 commit
    • re PR middle-end/37565 (__optimize__ attribute doesn't work correctly) · 2b7e2984
      2009-10-29  Steve Ellcey  <sje@cup.hp.com>
      
      	PR middle-end/37565
      	PR target/38018
      	* doc/tm.texi (OVERRIDE_OPTIONS): Update.
      	(TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
      	* optc-gen.awk (cl_target_option_restore): Include call to 
      	targetm.override_options_after_change.
      	* target-def.h (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
      	* target.h (override_options_after_change): New.
      	* c-common.c (parse_optimize_options): Call
      	targetm.override_options_after_change.
      	* config/ia64/ia64.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
      	(ia64_override_options_after_change): New.
      	(ia64_override_options) Add call to above.
      
      From-SVN: r153714
      Steve Ellcey committed
  26. 27 Oct, 2009 1 commit
    • target.h (have_conditional_execution): Add a new target hook function. · 2929029c
      	* target.h (have_conditional_execution): Add a new target hook function.
      	* target-def.h (TARGET_HAVE_CONDITIONAL_EXECUTION): Likewise.
      	* targhooks.h (default_have_conditional_execution): Likewise.
      	* targhooks.c (default_have_conditional_execution): Likewise.
      	* doc/tm.texi (TARGET_HAVE_CONDITIONAL_EXECUTION): Document it.
      	* config/arm/arm.c (TARGET_HAVE_CONDITIONAL_EXECUTION): Define it.
      	(arm_have_conditional_execution): New function.
      	* ifcvt.c (noce_process_if_block, find_if_header,
      	cond_exec_find_if_block, dead_or_predicable): Change the usage of macro
      	HAVE_conditional_execution to a target hook call.
      	* recog.c (peephole2_optimize): Likewise.
      	* sched-rgn.c (add_branch_dependences): Likewise.
      	* final.c (asm_insn_count, final_scan_insn): Likewise.
      	* bb-reorder.c (HAVE_conditional_execution): Remove it.
      
      From-SVN: r153584
      Wei Guozhi committed
  27. 26 Oct, 2009 2 commits
    • tm.texi (TARGET_ADDR_SPACE_POINTER_MODE): Document. · d4ebfa65
      2009-10-26  Ben Elliston  <bje@au.ibm.com>
      	    Michael Meissner  <meissner@linux.vnet.ibm.com>
      	    Ulrich Weigand  <uweigand@de.ibm.com>
      
      	* doc/tm.texi (TARGET_ADDR_SPACE_POINTER_MODE): Document.
      	(TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
      	(TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise.
      
      	* target.h (struct target_def): Add pointer_mode, address_mode,
      	and valid_pointer_mode to addr_space substructure.
      	* target-def.h (TARGET_ADDR_SPACE_POINTER_MODE): Define.
      	(TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
      	(TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise.
      	(TARGET_ADDR_SPACE_HOOKS): Add them.
      	* targhooks.c (target_default_pointer_address_modes_p): New function.
      	* target.h (target_default_pointer_address_modes_p): Add prototype.
      	* targhooks.c (default_addr_space_pointer_mode): New function.
      	(default_addr_space_address_mode): Likewise.
      	(default_addr_space_valid_pointer_mode): Likewise.
      	* targhooks.h (default_addr_space_pointer_mode): Add prototype.
      	(default_addr_space_address_mode): Likewise.
      	(default_addr_space_valid_pointer_mode): Likewise.
      	* output.h (default_valid_pointer_mode): Move to ...
      	* targhooks.h (default_valid_pointer_mode): ... here.
      	* varasm.c (default_valid_pointer_mode): Move to ...
      	* targhooks.c (default_valid_pointer_mode): ... here.
      
      	* varasm.c (output_constant): Use targetm.addr_space.valid_pointer_mode
      	instead of targetm.valid_pointer_mode.
      
      	* fold-const.c (fit_double_type): Use int_or_pointer_precision.
      	* tree.c (integer_pow2p): Likewise.
      	(tree_log2): Likewise.
      	(tree_floor_log2): Likewise.
      	(signed_or_unsigned_type_for): Support pointer type of different size.
      	(int_or_pointer_precision): New function.
      	* tree.h (int_or_pointer_precision): Add prototype.
      	* stor-layout.c (layout_type): Set TYPE_PRECISION for offset types.
      	* varasm.c (initializer_constant_valid_p): Use TYPE_PRECISION of
      	incoming pointer type instead of POINTER_SIZE.
      
      	* tree.c (build_pointer_type): Use appropriate pointer mode
      	instead of ptr_mode.
      	(build_reference_type): Likewise.
      	* expr.c (store_expr): Likewise.
      	(expand_expr_addr_expr): Likewise.
      	* tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
      	* cfgexpand.c (expand_debug_expr): Likewise.
      	
      	* auto-inc-dec.c: Include "target.h".
      	(try_merge): Use appropriate address mode instead of Pmode.
      	(find_inc): Likewise.
      	* combine.c (find_split_point): Likewise.
      	* cselib.c (cselib_record_sets): Likewise.
      	* dse.c (replace_inc_dec): Likewise.
      	(canon_address): Likewise.
      	* var-tracking.c (replace_expr_with_values): Likewise.
      	(count_uses): Likewise.
      	(add_uses): Likewise.
      	(add_stores): Likewise.
      	* emit-rtl.c: Include "target.h".
      	(adjust_address_1): Use appropriate address mode instead of Pmode.
      	(offset_address): Likewise.
      	* explow.c (break_out_memory_refs): Likewise.
      	(memory_address_addr_space): Likewise.
      	(promote_mode): Likewise.
      	* expr.c (move_by_pieces): Likewise.
      	(emit_block_move_via_loop): Likewise.
      	(store_by_pieces): Likewise.
      	(store_by_pieces_1): Likewise.
      	(expand_assignment): Likewise.
      	(store_constructor): Likewise.
      	(expand_expr_addr_expr): Likewise.
      	(expand_expr_real_1): Likewise.
      	* cfgexpand.c (expand_debug_expr): Likewise.
      	* ifcvt.c (noce_try_cmove_arith): Likewise.
      	* regcprop.c (kill_autoinc_value): Likewise.
      	* regmove.c (try_auto_increment): Likewise.
      	* reload.c (find_reloads): Likewise.
      	(find_reloads_address): Likewise.
      	(find_reloads_address_1): Likewise.
      	* sched-deps.c: Include "target.h".
      	(sched_analyze_1): Use appropriate address mode instead of Pmode.
      	(sched_analyze_2): Likewise.
      	* sel-sched-dump.c: Include "target.h".
      	(debug_mem_addr_value): Use appropriate address mode instead of Pmode.
      	* stor-layout.c (layout_type): Likewise.
      	* tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
      	(multiplier_allowed_in_address_p): Likewise.
      	(get_address_cost): Likewise.
      	* varasm.c (make_decl_rtl): Likewise.
      	
      	* expr.c (expand_assignment): Always convert offsets to appropriate
      	address mode.
      	(store_expr): Likewise.
      	(store_constructor): Likewise.
      	(expand_expr_real_1): Likewise.
      
      	* reload.h (form_sum): Add MODE argument.
      	* reload.c (form_sum): Add MODE argument, use it instead of Pmode.
      	Update recursive calls.
      	(subst_indexed_address): Update calls to form_sum.
      	
      	* tree-flow.h (addr_for_mem_ref): Add ADDRSPACE argument.
      	* tree-ssa-address.c: Include "target.h".
      	(templates): Replace by ...
      	(mem_addr_template_list): ... this new vector.
      	(TEMPL_IDX): Handle address space numbers.
      	(gen_addr_rtx): Add address mode argument, use it instead of Pmode.
      	(addr_for_mem_ref): Add ADDRSPACE argument.  Use per-address-space
      	instead of global cache.  Update call to gen_addr_rtx.
      	(valid_mem_ref_p): Update call to addr_for_mem_ref.
      	* expr.c (expand_expr_real_1): Update call to addr_for_mem_ref.
      	
      	* rtl.h (convert_memory_address_addr_space): Add prototype.
      	(convert_memory_address): Define as macro.
      	* explow.c (convert_memory_address): Rename to ...
      	(convert_memory_address_addr_space): ... this.  Add ADDRSPACE argument.
      	Use appropriate pointer and address modes instead of ptr_mode / Pmode.
      	Update recursive calls.
      	(memory_address_addr_space): Call convert_memory_address_addr_space.
      	* expmed.c (make_tree): Likewise.
      	* expr.c (expand_assignment): Likewise.
      	(expand_expr_addr_expr_1): Likewise.  Also, add ADDRSPACE argument.
      	(expand_expr_addr_expr): Likewise.  Also, update call.
      
      	* alias.c (find_base_value): Guard pointer size optimizations.
      	(find_base_term): Likewise.
      	* rtlanal.c (nonzero_bits1): Likewise.
      	(num_sign_bit_copies1): Likewise.
      	* simplify-rtx.c (simplify_unary_operation_1): Likewise.
      
      	* Makefile.in (tree-ssa-address.o): Add $(TARGET_H) dependency.
      	(emit-rtl.o): Likewise.
      	(auto-inc-dec.o): Likewise.
      	(sched-deps.o): Likewise.
      
      Co-Authored-By: Michael Meissner <meissner@linux.vnet.ibm.com>
      Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com>
      
      From-SVN: r153573
      Ben Elliston committed
    • extend.texi (Named Address Spaces): New section. · 09e881c9
      2009-10-26  Ben Elliston  <bje@au.ibm.com>
      	    Michael Meissner  <meissner@linux.vnet.ibm.com>
      	    Ulrich Weigand  <uweigand@de.ibm.com>
      
      	* doc/extend.texi (Named Address Spaces): New section.
      	* coretypes.h (addr_space_t): New type.
      	(ADDR_SPACE_GENERIC): New define.
      	(ADDR_SPACE_GENERIC_P): New macro.
      
      	* doc/tm.texi (Named Address Spaces): New section.
      	(TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Document.
      	(TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Document.
      	(TARGET_ADDR_SPACE_SUBSET_P): Document.
      	(TARGET_ADDR_SPACE_CONVERT): Document.
      	* target.h (struct gcc_target): Add addr_space substructure.
      	* target-def.h (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
      	(TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise.
      	(TARGET_ADDR_SPACE_SUBSET_P): Likewise.
      	(TARGET_ADDR_SPACE_CONVERT): Likewise.
      	(TARGET_ADDR_SPACE_HOOKS): Likewise.
      	(TARGET_INITIALIZER): Initialize addr_space hooks.
      	* targhooks.c (default_addr_space_legitimate_address_p): New function.
      	(default_addr_space_legitimize_address): Likewise.
      	(default_addr_space_subset_p): Likewise.
      	(default_addr_space_convert): Likewise.
      	* targhooks.h (default_addr_space_legitimate_address_p): Add prototype.
      	(default_addr_space_legitimize_address): Likewise.
      	(default_addr_space_subset_p): Likewise.
      	(default_addr_space_convert): Likewise.
      
      	* doc/rtl.texi (MEM_ADDR_SPACE): Document.
      	* rtl.h (mem_attrs): Add ADDRSPACE memory attribute.
      	(MEM_ADDR_SPACE): New macro.
      	* emit-rtl.c (get_mem_attrs): Add ADDRSPACE argument and set
      	address space memory attribute.
      	(mem_attrs_htab_hash): Handle address space memory attribute.
      	(mem_attrs_htab_eq): Likewise.
      	(set_mem_attributes_minus_bitpos): Likewise.
      	(set_mem_alias_set): Likewise.
      	(set_mem_align): Likewise.
      	(set_mem_expr): Likewise.
      	(set_mem_offset): Likewise.
      	(set_mem_size): Likewise.
      	(adjust_address_1): Likewise.
      	(offset_address): Likewise.
      	(widen_memoy_address): Likewise.
      	(get_spill_slot_decl): Likewise.
      	(set_mem_attrs_for_spill): Likewise.
      	(set_mem_addr_space): New function.
      	* emit-rtl.h (set_mem_addr_space): Add prototype.
      	* print-rtl.c (print_rtx): Print address space memory attribute.
      	* expr.c (expand_assignment): Set address space memory attribute
      	of generated MEM RTXes as appropriate.
      	(expand_expr_real_1): Likewise.
      	* cfgexpand.c (expand_debug_expr): Likewise.
      	* tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
      
      	* tree.h (struct tree_base): Add address_space bitfield.  Reduce
      	size of "spare" bitfield.
      	(TYPE_ADDR_SPACE): New macro.
      	(ENCODE_QUAL_ADDR_SPACE): Likewise.
      	(DECODE_QUAL_ADDR_SPACE): Likewise.
      	(CLEAR_QUAL_ADDR_SPACE): Likewise.
      	(KEEP_QUAL_ADDR_SPACE): Likewise.
      	(TYPE_QUALS): Encode type address space.
      	(TYPE_QUALS_NO_ADDR_SPACE): New macro.
      	* tree.c (set_type_quals): Set type address space.
      	(build_array_type): Inherit array address space from element type.
      	* print-tree.c (print_node_brief): Print type address space.
      	(print_node): Likewise.
      	* tree-pretty-print.c (dump_generic_node): Likewise.
      
      	* explow.c (memory_address): Rename to ...
      	(memory_address_addr_space): ... this.  Add ADDRSPACE argument.
      	Use address-space aware variants of memory address routines.
      	* recog.c (memory_address_p): Rename to ...
      	(memory_address_addr_space_p): ... this.  Add ADDSPACE argument.
      	Use address-space aware variants of memory address routines.
      	(offsettable_address_p): Rename to ...
      	(offsettable_address_addr_space_p): ... this.  Add ADDRSPACE argument.
      	Use address-space aware variants of memory address routines.
      	* reload.c (strict_memory_address_p): Rename to ...
      	(strict_memory_address_addr_space_p): ... this.  Add ADDSPACE argument.
      	Use address-space aware variants of memory address routines.
      	(maybe_memory_address_p): Rename to ...
      	(maybe_memory_address_addr_space_p): ... this.  Add ADDSPACE argument.
      	Use address-space aware variants of memory address routines.
      	* expr.h (memory_address_addr_space): Add prototype.
      	(memory_address): Define as macro.
      	* recog.h (memory_address_addr_space_p): Add prototype.
      	(memory_address_p): Define as macro.
      	(offsettable_address_addr_space_p): Add prototype.
      	(offsettable_address_p): Define as macro.
      	(strict_memory_address_addr_space_p): Add prototype.
      	(strict_memory_address_p): Define as macro.
      
      	* combine.c (find_split_point): Use address-space aware variants
      	of memory address routines.
      	* emit-rtl.c (operand_subword): Likewise.
      	(change_address_1): Likewise.
      	(adjust_address_1): Likewise.
      	(offset_address): Likewise.
      	* expr.c (emit_move_insn): Likewise.
      	(expand_assignment): Likewise.
      	(expand_expr_real_1): Likewise.
      	* recog.c (verify_changes): Likewise.
      	(general_operand): Likewise.
      	(offsettable_memref_p): Likewise.
      	(offsettable_nonstrict_memref_p): Likewise.
      	(constrain_operands): Likewise.
      	* reload.c (get_secondary_mem): Likewise.
      	(find_reloads_toplev): Likewise.
      	(find_reloads_address): Likewise.
      	(find_reloads_subreg_address): Likewise.
      	* reload1.c (reload): Likewise.
      	* rtlhooks.c (gen_lowpart_if_possible): Likewise.
      	* rtl.h (address_cost): Add ADDRSPACE argument.
      	* rtlanal.c (address_cost): Add ADDRSPACE argument.  Use address-space
      	aware variant of memory address routines.
      	* loop-invariant.c (create_new_invariant): Update address_cost call.
      	* tree-ssa-loop-ivopts.c (computation_cost): Likewise.
      	* fwprop.c (should_replace_address): Add ADDRSPACE argument.
      	Use address-space aware variant of memory address routines.
      	(propagate_rtx_1): Update call to should_replace_address.
      	* tree-flow.h (multiplier_allowed_in_address_p): Add ADDRSPACE
      	argument.
      	* tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Add
      	ADDRSPACE argument.  Use per-address-space instead of global cache.
      	Use address-space aware variant of memory address routines.
      	(get_address_cost): Likewise.
      	(get_computation_cost_at): Update calls.
      	* tree-ssa-address.c (valid_mem_ref_p): Add ADDRSPACE argument.
      	Use address-space aware variant of memory address routines.
      	(create_mem_ref_raw): Update call to valid_mem_ref_p.
      	(most_expensive_mult_to_index): Update call to
      	multiplier_allowed_in_address_p.
      
      	* dwarf2out.c (modified_type_die): Output DW_AT_address_class
      	attribute to indicate named address spaces.
      
      	* varasm.c (get_variable_section): DECLs in named address spaces
      	cannot be "common".
      
      	* reload.c (find_reloads_address): Do not use LEGITIMIZE_RELOAD_ADDRESS
      	for addresses in a non-generic address space.
      
      	* expr.c (emit_block_move_hints): Do not use libcalls for
      	memory in non-generic address spaces.
      	(clear_storage_hints): Likewise.
      	(expand_assignment): Likewise.
      
      	* fold-const.c (operand_equal_p): Expressions refering to different
      	address spaces are not equivalent.
      
      	* rtl.c (rtx_equal_p_cb): MEMs refering to different address
      	spaces are not equivalent.
      	(rtx_equal_p): Likewise.
      	* cse.c (exp_equiv_p): Likewise.
      	* jump.c (rtx_renumbered_equal_p): Likewise.
      	* reload.c (operands_match_p): Likewise.
      
      	* alias.c (nonoverlapping_memrefs_p): MEMs refering to different
      	address spaces may alias.
      	(true_dependence): Likewise.
      	(canon_true_dependence): Likewise.
      	(write_dependence_p): Likewise.
      
      	* dse.c (canon_address): Handle named address spaces.
      	* ifcvt.c (noce_try_cmove_arith): Likewise.
      
      	* tree.def (ADDR_SPACE_CONVERT_EXPR): New tree code.
      	* expr.c (expand_expr_real_2): Expand ADDR_SPACE_CONVERT_EXPR.
      	* convert.c (convert_to_pointer): Generate ADDR_SPACE_CONVERT_EXPR
      	to handle conversions between different address spaces.
      	* fold-const.c (fold_convert_loc): Likewise.
      	(fold_unary_loc): Handle ADDR_SPACE_CONVERT_EXPR.
      	* tree-pretty-print.c (dump_generic_node): Likewise.
      	* gimple-pretty-print.c (dump_unary_rhs): Likewise.
      	* tree-cfg.c (verify_gimple_assign_unary): Likewise.
      	* tree-inline.c (estimate_operator_cost): Likewise.
      	* tree-ssa.c (useless_type_conversion_p): Conversions between pointers
      	to different address spaces are not useless.
      
      Co-Authored-By: Michael Meissner <meissner@linux.vnet.ibm.com>
      Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com>
      
      From-SVN: r153572
      Ben Elliston committed
  28. 17 Oct, 2009 1 commit
    • targhooks.c (default_libcall_value): Don't use LIBCALL_VALUE macro if not defined. · 7fc6a96b
      	* targhooks.c (default_libcall_value): Don't use LIBCALL_VALUE macro
      	if not defined. Change type of second argument to const_rtx.
      	(default_function_value): Call gcc_unreachable if FUNCTION_VALUE
      	macro not defined.
      	* targhooks.h (default_libcall_value): Update prototype.
      	* target.h (struct gcc_target): Change type of second argument of
      	libcall_value to const_rtx.
      	* config/arm/arm.c (arm_libcall_value): Change type of second argument
      	to const_rtx.
      	(arm_libcall_uses_aapcs_base): Change type of argument to const_rtx.
      	* doc/tm.texi (TARGET_LIBCALL_VALUE):  Revise documentation.
      
      From-SVN: r152933
      Anatoly Sokolov committed
  29. 09 Oct, 2009 1 commit
    • re PR lto/41638 (Back-end builtins are mishandled) · e9e4b3a8
      2009-10-09  Richard Guenther  <rguenther@suse.de>
      
      	PR lto/41638
      	* target-def.h (TARGET_BUILTIN_DECL): Define.
      	(TARGET_INITIALIZER): Add TARGET_BUILTIN_DECL.
      	* target.h (struct gcc_target): Add builtin_decl target hook.
      	* doc/tm.texi (TARGET_BUILTIN_DECL): Document.
      
      	* lto-streamer-in.c (lto_get_builtin_tree): Fix handling of
      	target builtins.
      	* lto-streamer-out.c (lto_output_tree_pointers): Use sorry,
      	not gcc_unreachable.
      	(lto_output_builtin_tree): Sorry if the target does not support
      	streaming target builtins.
      
      	* config/rs6000/rs6000.c (TARGET_BUILTIN_DECL): Define.
      	(rs6000_builtin_decl): New function.
      	* config/i386/i386.c (TARGET_BUILTIN_DECL): Define.
      	(ix86_builtin_decl): New function.
      
      From-SVN: r152606
      Richard Guenther committed
  30. 22 Sep, 2009 1 commit
    • re PR target/41246 (should "sorry" when regparm=3 and nested functions are encountered) · 531ca746
      	PR target/41246
      	* target.h (struct gcc_target): Add asm_out.trampoline_template,
      	calls.static_chain, calls.trampoline_init,
      	calls.trampoline_adjust_address.
      	* target-def.h (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
      	(TARGET_STATIC_CHAIN, TARGET_TRAMPOLINE_INIT): New.
      	(TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
      	* builtins.c (expand_builtin_setjmp_receiver): Use
      	targetm.calls.static_chain; only clobber registers.
      	(expand_builtin_init_trampoline): Use targetm.calls.trampoline_init;
      	set up memory attributes properly for the trampoline block.
      	(expand_builtin_adjust_trampoline): Use
      	targetm.calls.trampoline_adjust_address.
      	* calls.c (prepare_call_address): Add fndecl argument.  Use
      	targetm.calls.static_chain.
      	* df-scan.c (df_need_static_chain_reg): Remove.
      	(df_get_entry_block_def_set): Use targetm.calls.static_chain;
      	consolodate static chain handling.
      	* doc/tm.texi: Document new hooks.
      	* emit-rtl.c (static_chain_rtx, static_chain_incoming_rtx): Remove.
      	(init_emit_regs): Don't initialize them.
      	* expr.h (prepare_call_address): Update decl.
      	* final.c (profile_function): Use targetm.calls.static_chain.
      	* function.c (expand_function_start): Likewise.
      	* rtl.h (static_chain_rtx, static_chain_incoming_rtx): Remove.
      	* stmt.c (expand_nl_goto_receiver): Use targetm.calls.static_chain;
      	only clobber registers.
      	* targhooks.c (default_static_chain): New.
      	(default_asm_trampoline_template, default_trampoline_init): New.
      	(default_trampoline_adjust_address): New.
      	* targhooks.h: Declare them.
      	* varasm.c (assemble_trampoline_template): Use
      	targetm.asm_out.trampoline_template.  Make the memory block const
      	and set its size.
      
      From-SVN: r151983
      Richard Henderson committed
  31. 15 Sep, 2009 1 commit
  32. 25 Aug, 2009 1 commit
    • hooks.h (hook_bool_const_int_const_int_true): Declare. · 7b5cbb57
      	* hooks.h (hook_bool_const_int_const_int_true): Declare.
      	* hooks.c (hook_bool_const_int_const_int_true): New function.
      	* target.h (struct gcc_target): Add can_eliminate field.
      	* target-def.h (TARGET_CAN_ELIMINATE): Define.
      	(TARGET_INITIALIZER): Use TARGET_CAN_ELIMINATE.
      	* ira.c (setup_eliminable_regset): Use can_eliminate target hook.
      	* reload1.c (update_eliminables, init_elim_table): (Ditto.).
      	(elim_table): Revise comment.
      	* system.h (CAN_ELIMINATE): Poison.
      	* defaults.h (CAN_ELIMINATE): Remove.
      	* doc/tm.texi (CAN_ELIMINATE): Revise documentation.
      
      	* config/alpha/vms.h (CAN_ELIMINATE): Remove macro.
      	* config/alpha/alpha.c (TARGET_CAN_ELIMINATE) [TARGET_ABI_OPEN_VMS]:
      	Define macro.
      	(alpha_vms_can_eliminate): Declare as static, change return type to
      	bool.
      	* config/alpha/alpha-protos.h (alpha_vms_can_eliminate): Remove.
      
      	* config/arm/arm.h (CAN_ELIMINATE): Remove macro.
      	* config/arm/arm.c (TARGET_CAN_ELIMINATE): Define macro.
      	(arm_can_eliminate): New function.
      
      	* config/avr/avr.h (CAN_ELIMINATE): Remove macro.
      	* config/avr/avr.c (TARGET_CAN_ELIMINATE): Define macro.
      	(avr_can_eliminate): Declare as static.
      	* config/avr/avr-protos.h (avr_can_eliminate): Remove.
      
      	* config/bfin/bfin.h (CAN_ELIMINATE): Remove macro.
      	* config/bfin/bfin.c (TARGET_CAN_ELIMINATE): Define macro.
      	(bfin_can_eliminate): New function.
      
      	* config/crx/crx.h (CAN_ELIMINATE): Remove macro.
      	* config/crx/crx.c (TARGET_CAN_ELIMINATE): Define macro.
      	(crx_can_eliminate): New function.
      	
      	* config/fr30/fr30.h (CAN_ELIMINATE): Remove macro.
      	* config/fr30/fr30.c (TARGET_CAN_ELIMINATE): Define macro.
      	(fr30_can_eliminate): New function.
      
      	* config/frv/frv.h (CAN_ELIMINATE): Remove macro.
      	* config/frv/frv.c (TARGET_CAN_ELIMINATE): Define macro.
      	(frv_can_eliminate): New function.
      
      	* config/h8300/h8300.h (CAN_ELIMINATE): Remove macro.
      	* config/h8300/h8300.c (TARGET_CAN_ELIMINATE): Define macro.
      	(h8300_can_eliminate): New function.
      
      	* config/i386/i386.h (CAN_ELIMINATE): Remove macro.
      	* config/i386/i386.c (TARGET_CAN_ELIMINATE): Define macro.
      	(i386_can_eliminate): Declare as static, change return type to bool.
      	* config/i386/i386-protos.h (i386_can_eliminate): Remove.
      
      	* config/ia64/ia64.h (CAN_ELIMINATE): Remove macro.
      	* config/ia64/ia64.c (TARGET_CAN_ELIMINATE): Define macro.
      	(ia64_can_eliminate): New function.
      
      	* config/iq2000/iq2000.h (CAN_ELIMINATE): Remove macro.
      	* config/iq2000/iq2000.c (TARGET_CAN_ELIMINATE): Define macro.
      	(iq2000_can_eliminate): New function.
      
      	* config/m32r/m32r.h (CAN_ELIMINATE): Remove macro.
      	* config/m32r/m32r.c (TARGET_CAN_ELIMINATE): Define macro.
      	(m32r_can_eliminate): New function.
      
      	* config/m68hc11/m68hc11.h (CAN_ELIMINATE): Remove macro.
      	* config/m68hc11/m68hc11.c (TARGET_CAN_ELIMINATE): Define macro.
      	(m68hc11_can_eliminate): New function.
      
      	* config/m68k/m68k.h (CAN_ELIMINATE): Remove macro.
      	* config/m68k/m68k.c (TARGET_CAN_ELIMINATE): Define macro.
      	(m68k_can_eliminate): New function.
      
      	* config/mep/mep.h (CAN_ELIMINATE): Remove macro.
      	* config/mep/mep.c (TARGET_CAN_ELIMINATE): Define macro.
      	(mep_can_eliminate): New function.
      
      	* config/mips/mips.h (CAN_ELIMINATE): Remove macro.
      	* config/mips/mips.c (TARGET_CAN_ELIMINATE): Define macro.
      	(mips_can_eliminate): New function.
      
      	* config/rs6000/rs6000.h (CAN_ELIMINATE): Remove macro.
      	* config/rs6000/rs6000.c (TARGET_CAN_ELIMINATE): Define macro.
      	(rs6000_can_eliminate): New function.
      
      	* config/s390/s390.h (CAN_ELIMINATE): Remove macro.
      	* config/s390/s390.c (TARGET_CAN_ELIMINATE): Define macro.
      	(s390_can_eliminate): Declare as static.
      	* config/s390/s390-protos.h (sparc_can_eliminate): Remove.
      
      	* config/score/score.h (CAN_ELIMINATE): Remove macro.
      	* config/score/score.c (TARGET_CAN_ELIMINATE): Define macro.
      	(score_can_eliminate): New function.
      
      	* config/sparc/sparc.h (CAN_ELIMINATE): Remove macro.
      	* config/sparc/sparc.c (TARGET_CAN_ELIMINATE): Define macro.
      	(sparc_can_eliminate): Declare as static.
      	* config/sparc/sparc-protos.h (sparc_can_eliminate): Remove.
      
      	* config/stormy16/stormy16.h (CAN_ELIMINATE): Remove macro.
      	* config/stormy16/stormy16.c (TARGET_CAN_ELIMINATE): Define macro.
      	(xstormy16_can_eliminate): New function.
      
      	* config/v850/v850.h (CAN_ELIMINATE): Remove macro.
      	* config/v850/v850.c (TARGET_CAN_ELIMINATE): Define macro.
      	(v850_can_eliminate): New function.
      
      From-SVN: r151096
      Anatoly Sokolov committed
  33. 14 Aug, 2009 1 commit
    • extend.texi (Symbol-Renaming Pragmas): redefine_extname is supported on all platforms. · c54d7dc9
      2009-08-14  Olatunji Ruwase <tjruwase@google.com>
      
              * doc/extend.texi (Symbol-Renaming Pragmas): redefine_extname is
              supported on all platforms.
              * target.h (struct gcc_target): Remove
              handle_pragma_redefine_extname.
              * c-cppbuiltin.c: Remove use of
              targetm.handle_pragma_redefine_extname.
              * c-pragma.c: Likewise.
              * target-def.h (TARGET_INITIALIZER): Remove
              TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME.
              * config/sol2.h: Remove use of
              TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME.
      
      2009-08-14  Olatunji Ruwase <tjruwase@google.com>
      
              * gcc.dg/pragma-re-1.c: Supported on all platforms.
              * gcc.dg/pragma-re-2.c: Likewise.
              * gcc.dg/pragma-re-3.c: Likewise.
              * gcc.dg/pragma-re-4.c: Likewise.
              * g++.dg/other/pragma-re-1.C: Likewise.
              * g++.dg/other/pragma-re-2.C: Likewise.
      
      From-SVN: r150780
      Olatunji Ruwase committed
  34. 06 Aug, 2009 1 commit
  35. 01 Aug, 2009 1 commit
    • expr.c (store_constructor): Use promote_decl_mode. · cde0f3fd
      2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
      
      	* expr.c (store_constructor): Use promote_decl_mode.  Remove
      	now write-only variable unsignedp.
      	(expand_expr_real_1): Use promote_decl_mode.
      	* expr.h (promote_function_mode, promote_decl_mode): New.
      	(promote_mode): Remove last argument.
      	* function.c (assign_temp): Drop last argument of promote_mode.
      	(assign_parm_find_data_types): Use promote_function_mode.
      	(assign_parm_setup_reg): Likewise.
      	(expand_function_end): Use promote_function_mode.
      	* calls.c (initialize_argument_information): Use promote_function_mode.
      	(precompute_arguments): Use promote_mode instead of checking if
      	only PROMOTE_FUNCTION_MODE is defined.
      	(expand_call): When making sibcall decisions, use promote_function_mode.
      	Below, remove an if for targetm.calls.promote_function_return and
      	and use promote_function_mode.
      	(emit_library_call_value_1): Use promote_function_mode, fix bug
      	where promote_mode was passed FOR_CALL == 0 for a return value in an
      	assertion.
      	* cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
      	* explow.c (promote_function_mode, promote_decl_mode): New.
      	(promote_mode): Keep only the FOR_CALL == 0 case.
      	* combine.c (setup_incoming_promotion): Remove test of
      	promote_function_args.  Use promote_function_mode.
      	* stmt.c (expand_value_return): Use promote_decl_mode.
      	(expand_decl): Use promote_decl_mode.
      
      	* expr.c (store_constructor): Use promote_decl_mode.  Remove
      	now write-only variable unsignedp.
      	(expand_expr_real_1): Use promote_decl_mode.
      	* expr.h (promote_function_mode, promote_decl_mode): New.
      	(promote_mode): Remove last argument.
      	* function.c (assign_temp): Drop last argument of promote_mode.
      	(assign_parm_find_data_types): Use promote_function_mode.
      	(assign_parm_setup_reg): Likewise.
      	(expand_function_end): Use promote_function_mode.
      	* calls.c (initialize_argument_information): Use promote_function_mode.
      	(precompute_arguments): Use promote_mode instead of checking if
      	only PROMOTE_FUNCTION_MODE is defined.
      	(expand_call): When making sibcall decisions, use promote_function_mode.
      	Below, remove an if for targetm.calls.promote_function_return and
      	and use promote_function_mode.
      	(emit_library_call_value_1): Use promote_function_mode, fix bug
      	where promote_mode was passed FOR_CALL == 0 for a return value in an
      	assertion.
      	* cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
      	* explow.c (promote_function_mode, promote_decl_mode): New.
      	(promote_mode): Keep only the FOR_CALL == 0 case.
      	* combine.c (setup_incoming_promotion): Remove test of
      	promote_function_args.  Use promote_function_mode.
      	* stmt.c (expand_value_return): Use promote_decl_mode.
      	(expand_decl): Use promote_decl_mode.
      
      	* explow.c (promote_function_mode): Just call the target hook.
      	* targhooks.c (default_promote_function_mode,
      	default_promote_function_mode_always_promote): New.
      	* targhooks.h (default_promote_function_mode,
      	default_promote_function_mode_always_promote): Declare.
      	* target.h (promote_function_args, promote_function_return): Remove.
      	(promote_function_mode): New.
      	* target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
      	TARGET_PROMOTE_FUNCTION_RETURN): Remove.
      	(TARGET_PROMOTE_FUNCTION_MODE): New.
      	(TARGET_CALLS): Adjust.
      	* system.h (TARGET_PROMOTE_FUNCTION_ARGS,
      	TARGET_PROMOTE_FUNCTION_RETURN, PROMOTE_FUNCTION_MODE): Poison.
      
      	* config/s390/s390.h (PROMOTE_FUNCTION_MODE): Move...
      	* config/s390/s390.c (s390_promote_function_mode): ... here,
      	with pointer handling.
      	(TARGET_PROMOTE_FUNCTION_MODE): Define.
      	(TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
      
      	* config/sparc/sparc.h (PROMOTE_FUNCTION_MODE): Move...
      	* config/sparc/sparc.c (sparc_promote_function_mode): ... here,
      	with pointer handling.
      	(TARGET_PROMOTE_FUNCTION_MODE): Define.
      	(TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
      	
      	* config/sh/sh-protos.h (sh_promote_function_mode): New.
      	* config/sh/sh.c (sh_promote_function_mode): New.
      	(TARGET_PROMOTE_FUNCTION_MODE): Define.
      	(TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
      
      	* config/cris/cris.h (PROMOTE_FUNCTION_MODE): Move...
      	* config/cris/cris.c (cris_promote_function_mode): ... here.
      	(TARGET_PROMOTE_FUNCTION_MODE): Define.
      	(TARGET_PROMOTE_FUNCTION_ARGS): Remove.
      
      	* config/mmix/mmix.h (PROMOTE_FUNCTION_MODE): Move...
      	* config/mmix/mmix.c (mmix_promote_function_mode): ... here.
      	(TARGET_PROMOTE_FUNCTION_MODE): Define.
      	(TARGET_PROMOTE_FUNCTION_ARGS): Remove.
      
      	* config/arm/arm.h (PROMOTE_FUNCTION_MODE): Move...
      	* config/arm/arm.c (arm_promote_function_mode): ... here, without complex
      	type handling.
      	(TARGET_PROMOTE_FUNCTION_MODE): Define.
      	(TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
      
      	* config/pa/pa.c (pa_promote_function_mode): New.
      	(TARGET_PROMOTE_FUNCTION_MODE): Define.
      	(TARGET_PROMOTE_FUNCTION_RETURN): Remove.
      
      	* config/alpha/alpha.c (TARGET_PROMOTE_FUNCTION_ARGS,
      	TARGET_PROMOTE_FUNCTION_RETURN): Remove.
      	(TARGET_PROMOTE_FUNCTION_MODE): Define equivalently.
      	* config/xtensa/xtensa.c: Likewise.
      	* config/stormy16/stormy16.c: Likewise.
      	* config/iq2000/iq2000.c: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/picochip/picochip.c: Likewise.
      	* config/arc/arc.c: Likewise.
      	* config/mcore/mcore.c: Likewise.
      	* config/score/score.c: Likewise.
      	* config/mips/mips.c: Likewise.
      	* config/bfin/bfin.c: Likewise.
      	* config/ia64/ia64.c: Likewise (disabled though).
      
      	* config/frv/frv.h: Remove pointless remark.
      
      	* doc/tm.texi (PROMOTE_FUNCTION_MODE,
      	TARGET_PROMOTE_FUNCTION_ARGS,
      	TARGET_PROMOTE_FUNCTION_RETURN): Consolidate into...
      	(TARGET_PROMOTE_FUNCTION_MODE): ... this.
      
      From-SVN: r150336
      Paolo Bonzini committed
  36. 29 Jun, 2009 1 commit
    • target.h (struct gcc_target): Add frame_pointer_required field. · b52b1749
      	* target.h (struct gcc_target): Add frame_pointer_required field.
      	* target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
      	(TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
      	* ira.c (setup_eliminable_regset): Use frame_pointer_required target
      	hook.
      	* reload1.c (update_eliminables): (Ditto.).
      	* gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
      	* doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
      	(INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
      
      	* config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
      
      	* config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
      	(arm_frame_pointer_required): New function.
      
      	* config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
      	(avr_frame_pointer_required_p): Declare as static.
      	* config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
      
      	* config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
      	(bfin_frame_pointer_required): Make as static, change return type
      	to bool.
      	* config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
      
      	* config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
      	(cris_frame_pointer_required): New function.
      	
      	* config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
      
      	* config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
      	(fr30_frame_pointer_required): New function.
      	
      	* config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
      	(frv_frame_pointer_required): Make as static, change return type
      	to bool.
      	* config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
      
      	* config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
      	(ix86_frame_pointer_required): Make as static, change return type to
      	bool.
      	* config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
      
      	* config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
      
      	* config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
      
      	* config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
      	
      	* config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
      
      	* config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
      	(mips_frame_pointer_required): Make as static.
      	* config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
      	
      	* config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
      	(mmix_frame_pointer_required): Mew function.
      
      	* config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
      
      	* config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
      
      	* config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
      
      	* config/sh/sh.h (CAN_ELIMINATE): Remove macro.
      
      	* config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
      	(CAN_ELIMINATE): Redefine.
      	* config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
      	(sparc_frame_pointer_required): New function.
      	(sparc_can_eliminate): New function.
      	* config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
      
      	* config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
      
      	* config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
      	* config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
      	(xtensa_frame_pointer_required): Make as static, change return type
      	to bool.
      	* config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
      	Remove.
      
      From-SVN: r149065
      Anatoly Sokolov committed