1. 09 Dec, 2010 1 commit
    • rtl.h (invalid_mode_change_p): Adjust prototype. · fa1fabcb
      2010-12-09  Richard Guenther  <rguenther@suse.de>
      
      	* rtl.h (invalid_mode_change_p): Adjust prototype.
      	* reginfo.c (invalid_mode_change_p): Remove from argument.
      	* ira-costs.c (print_allocno_costs): Adjust callers.
      	(find_costs_and_classes): Likewise.
      
      2010-12-09  Richard Guenther  <rguenther@suse.de>
      
      	* ira.c (ira): Do not call finish_subregs_of_mode.
      	* ira-costs.c (finish_costs): Call finish_subregs_of_mode.
      
      From-SVN: r167631
      Richard Guenther committed
  2. 24 Nov, 2010 1 commit
    • common.opt (initial_max_fld_align, [...]): New Variable entries. · 299404a1
      	* common.opt (initial_max_fld_align, flag_debug_asm,
      	flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
      	flag_print_asm_name, graph_dump_format, help_printed,
      	help_columns, flag_opts_finished): New Variable entries.
      	(fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
      	frandom-seed=): Mark deferred.
      	(fsched-verbose=): Use UInteger and Var.
      	* flags.h (set_struct_debug_option, flag_print_asm_name,
      	rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
      	graph_dump_format): Don't declare here.
      	* haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
      	* opts-global.c: Include dbgcnt.h and debug.h.
      	(decode_options): Pass location to finish_options.
      	(handle_common_deferred_options): Check flag_dump_all_passed.
      	Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
      	OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
      	OPT_fstack_limit.
      	* opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
      	(set_struct_debug_option): Add location_t parameter.  Update
      	recursive call.  Use error_at.
      	(default_options_optimization): Use error_at.
      	(finish_options): Add location_t parameter.  Use
      	opts->x_flag_opts_finished instead of first_time_p.  Use
      	opts->x_optimize instead of optimize.  Use error_at.  Pass
      	location to inform.
      	(print_filtered_help): Use opts->x_help_printed to track what
      	options have been printed.
      	(print_specific_help): Use opts->x_help_columns to track number of
      	columns.
      	(common_handle_option): Pass locations and gcc_options pointers to
      	more functions.  Use warning_at instead of fnotice and warning.
      	Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
      	OPT_fdebug_prefix_map_.  Use error_at.  Set
      	opts->x_initial_max_fld_align; don't set maximum_field_alignment.
      	Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
      	OPT_fsched_verbose_.
      	(handle_param): Add location_r parameter.  Use error_at.
      	(set_debug_level): Add location_r parameter.  Use error_at and
      	warning_at.
      	(setup_core_dumping): Add diagnostic_context parameter.
      	(decode_d_option): Add gcc_options, location_t and
      	diagnostic_context parameters and use them instead of global
      	state.  Use warning_at.
      	(enable_warning_as_error): Use error_at.
      	* opts.h (finish_options): Update prototype.
      	(set_struct_debug_option): Declare here.
      	* rtl.h (fix_sched_param): Remove.
      	* stor-layout.c (initial_max_fld_align): Remove.
      	* toplev.c (rtl_dump_and_exit, flag_print_asm_name,
      	graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
      	(process_options): Set maximum_field_alignment.
      	* tree.h (initial_max_fld_align) Don't declare here.
      	* Makefile.in (opts.o, opts-global.o): Update dependencies.
      
      c-family:
      	* c-opts.c (c_common_handle_option): Pass location to
      	set_struct_debug_option.
      
      testsuite:
      	* gcc.dg/opts-5.c: New test.
      
      From-SVN: r167106
      Joseph Myers committed
  3. 22 Nov, 2010 1 commit
  4. 18 Nov, 2010 1 commit
    • re PR middle-end/46515 (Many libjava failures) · cd400280
      PR middle-end/46515
              * function.c (maybe_copy_prologue_epilogue_insn): Rename from
              maybe_copy_epilogue_insn; handle prologue insns as well.
              * rtl.h, cfglayout.c: Update for rename.
              * recog.c (peep2_attempt): Copy prologue/epilogue data for
              RTX_FRAME_RELATED_P insns.
      
      From-SVN: r166920
      Richard Henderson committed
  5. 16 Nov, 2010 1 commit
    • re PR rtl-optimization/46315 (-O2 -fno-strict-overflow causes wrong code generation) · 885c9b5d
      	PR rtl-optimization/46315
      	* rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
      	* rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
      	extracted from...
      	* dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
      	(remove_reg_equal_equiv_notes_for_defs): ...this.
      	(delete_unmarked_insns): Adjust to above renaming.
      	* ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
      	referring to registers set in the insns being moved, if any.
      
      	* df-core.c (df_ref_dump): New function extracted from...
      	(df_refs_chain_dump): ...here.  Call it.
      	(df_regs_chain_dump): Likewise.
      	* df-problems.c (df_chain_dump): Print 'e' for uses in notes.
      	* df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
      
      From-SVN: r166827
      Eric Botcazou committed
  6. 15 Nov, 2010 1 commit
  7. 12 Oct, 2010 1 commit
    • rtl.h: Include hashtab.h. · d95828db
      	* rtl.h: Include hashtab.h.
      	(iterative_hash_rtx): New prototype.
      	* rtl.c (iterative_hash_rtx): New function.
      	* dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
      	(output_loc_list): Return immediately if emitted is set,
      	set it.
      	(hash_loc_operands, hash_locs, hash_loc_list,
      	compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
      	optimize_location_lists_1, optimize_location_lists): New function.
      	(dwarf2out_finish): Call optimize_location_lists.
      	* Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
      
      From-SVN: r165351
      Jakub Jelinek committed
  8. 29 Sep, 2010 2 commits
    • re PR target/40457 (use stm and ldm to access consecutive memory words) · 22939744
      	PR target/40457
      	* postreload.c (move2add_use_add2_insn): Use full_costs for
      	comparison.
      	(move2add_use_add3_insn): Likewise.
      	(reload_cse_move2add): Likewise.
      	* rtlanal.c (get_full_rtx_cost): New function.
      	* rtl.h (struct full_rtx_costs): New.
      	(init_costs_to_max, init_costs_to_zero, costs_lt_p,
      	costs_add_n_insns): New inline functions.
      	(get_full_rtx_cost): Declare.
      
      testsuite/
      	PR target/40457
      	* gcc.target/arm/pr40457-3.c: New test.
      
      From-SVN: r164732
      Bernd Schmidt committed
    • optc-gen.awk: Generate global_options initializer instead of individual variables. · e3339d0f
      gcc:
      	* optc-gen.awk: Generate global_options initializer instead of
      	individual variables.  Add x_ prefix to names of structure
      	members.
      	* opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
      	names of structure members.
      	* doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
      	HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
      	* doc/tm.texi: Regenerate.
      	* alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
      	* builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
      	* c-parser.c (disable_extension_diagnostics,
      	restore_extension_diagnostics): Update names of cpp_options
      	members.
      	* combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
      	* common.opt (fcompare-debug-second): Don't use Var.
      	* config/alpha/alpha.h (target_flags): Remove.
      	* config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
      	HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
      	* config/bfin/bfin.h (target_flags): Remove.
      	* config/cris/cris.h (target_flags): Remove.
      	* config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
      	cl_target_option members.
      	* config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
      	(ix86_function_specific_print, ix86_valid_target_attribute_tree,
      	ix86_can_inline_p): Update names of cl_target_option members.
      	* config/i386/i386.h (ix86_isa_flags): Remove.
      	* config/lm32/lm32.h (target_flags): Remove.
      	* config/mcore/mcore.h (mcore_stack_increment): Remove.
      	* config/mcore/mcore.md (addsi3): Remove extern declaration of
      	flag_omit_frame_pointer.
      	* config/mep/mep.h (target_flags): Remove.
      	* config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
      	HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
      	* config/mmix/mmix.h (target_flags): Remove.
      	* config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
      	flag_expensive_optimizations): Remove.
      	* config/s390/s390.h (flag_pic): Remove.
      	* config/score/score-conv.h (target_flags): Remove.
      	* config/sh/sh.h (sh_fixed_range_str): Remove.
      	* config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
      	* dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
      	* df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
      	* diagnostic.c (diagnostic_initialize): Update names of
      	diagnostic_context members.
      	* diagnostic.h (diagnostic_context): Rename inhibit_warnings and
      	warn_system_headers.
      	(diagnostic_report_warnings_p): Update for new names.
      	* dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
      	* emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
      	HARD_FRAME_POINTER_IS_ARG_POINTER.
      	* flags.h (flag_compare_debug): Declare.
      	* ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
      	* opts.c (flag_compare_debug): Define.
      	(common_handle_option): Update names of diagnostic_context
      	members.  Handle -fcompare-debug-second.
      	(fast_math_flags_struct_set_p): Update names of cl_optimization
      	members.
      	* reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
      	* regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
      	* reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
      	* reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
      	* resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
      	* rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
      	HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
      	* sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
      	* stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
      
      gcc/c-family:
      	* c-common.c (c_cpp_error): Update names of diagnostic_context
      	members.
      	* c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Update names of
      	cl_optimization members.
      	* c-opts.c (warning_as_error_callback, c_common_handle_option,
      	sanitize_cpp_opts, finish_options): Update names of cpp_options
      	members.
      
      gcc/fortran:
      	* cpp.c (cpp_define_builtins): Update names of gfc_option_t
      	members.
      	(gfc_cpp_post_options): Update names of cpp_options members.
      	(cb_cpp_error): Update names of diagnostic_context members.
      	* f95-lang.c (gfc_init_builtin_functions): Update names of
      	gfc_option_t members.
      	* gfortran.h (gfc_option_t): Rename warn_conversion and
      	flag_openmp.
      	* intrinsic.c (gfc_convert_type_warn): Update names of
      	gfc_option_t members.
      	* options.c (gfc_init_options, gfc_post_options, set_Wall,
      	gfc_handle_option): Update names of gfc_option_t members.
      	* parse.c (next_free, next_fixed): Update names of gfc_option_t
      	members.
      	* scanner.c (pedantic): Remove extern declaration.
      	(skip_free_comments, skip_fixed_comments, include_line): Update
      	names of gfc_option_t members.
      	* trans-decl.c (gfc_generate_function_code): Update names of
      	gfc_option_t members.
      
      gcc/java:
      	* java-tree.h (flag_filelist_file, flag_assert, flag_jni,
      	flag_force_classes_archive_check, flag_redundant, flag_newer,
      	flag_use_divide_subroutine, flag_use_atomic_builtins,
      	flag_use_boehm_gc, flag_hash_synchronization,
      	flag_check_references, flag_optimize_sci, flag_indirect_classes,
      	flag_indirect_dispatch, flag_store_check,
      	flag_reduced_reflection): Remove.
      	* jcf-dump.c (flag_newer): Remove.
      	* jcf.h (quiet_flag): Remove.
      	* parse.h (quiet_flag): Remove.
      
      libcpp:
      	* include/cpplib.h (cpp_options): Rename warn_deprecated,
      	warn_traditional, warn_long_long and pedantic.
      	* directives.c (directive_diagnostics, _cpp_handle_directive):
      	Update names of cpp_options members.
      	* expr.c (cpp_classify_number, eval_token): Update names of
      	cpp_options members.
      	* init.c (cpp_create_reader, post_options): Update names of
      	cpp_options members.
      	* internal.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Update names of
      	cpp_options members.
      	* macro.c (parse_params): Update names of cpp_options members.
      
      From-SVN: r164723
      Joseph Myers committed
  9. 24 Sep, 2010 1 commit
    • re PR middle-end/45234 (ICE in expand_call, at calls.c:2845 when passing aligned… · 32990d5b
      re PR middle-end/45234 (ICE in expand_call, at calls.c:2845 when passing aligned function argument from unaligned stack after alloca)
      
      	PR middle-end/45234
      	* rtl.h (enum global_rtl_index): Add
      	GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
      	(LAST_VIRTUAL_POINTER_REGISTER): Define.
      	(virtual_preferred_stack_boundary_rtx,
      	VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
      	(LAST_VIRTUAL_REGISTER): Increase by one.
      	(REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
      	instead of LAST_VIRTUAL_REGISTER.
      	* function.c (instantiate_new_reg): Handle
      	virtual_preferred_stack_boundary_rtx.
      	* emit-rtl.c (init_virtual_regs): Handle
      	VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
      	(init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
      	* explow.c (round_push): If crtl->preferred_stack_boundary
      	is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
      	virtual_preferred_stack_boundary_rtx alignment instead of
      	crtl->preferred_stack_boundary alignment.
      	(allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
      	macros.  Never decrease crtl->preferred_stack_boundary,
      	use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
      	instead of PREFERRED_STACK_BOUNDARY.  Don't modify
      	stack_pointer_delta in dynamic allocation, even when size
      	is constant.
      	(probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
      	macro.
      	* print-rtl.c (print_rtx): Handle
      	VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
      	* config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
      	LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
      	* config/frv/frv.c (frv_emit_movsi): Likewise.
      	* config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
      	* config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
      	Likewise.
      
      	* gcc.dg/torture/stackalign/alloca-6.c: New test.
      	* gcc.target/i386/pr45234.c: New test.
      
      	Revert:
      	2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR middle-end/45234
      	* calls.c (expand_call): Make sure that all variable sized
      	adjustments are multiple of preferred stack boundary after
      	stack alignment.
      
      From-SVN: r164593
      Jakub Jelinek committed
  10. 09 Sep, 2010 1 commit
    • rtl.def (DEBUG_IMPLICIT_PTR): New rtl code. · c8a27c40
      	* rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
      	* rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
      	* rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
      	* print-rtl.c (print_rtx): Likewise.
      	* cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
      	* cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
      	for ADDR_EXPR with non-addressable object.
      	* dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
      	(struct dw_val_struct): Add v.val_decl_ref.
      	(dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
      	Handle DW_OP_GNU_implicit_pointer.
      	(size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
      	(get_ref_die_offset_label): New function.
      	(implicit_ptr_descriptor): New function.
      	(mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
      	(loc_descriptor): Likewise.
      	(gen_variable_die): Put even definitions into decl_die_table.
      	(resolve_addr_in_expr): Resolve still unresolved
      	DW_OP_GNU_implicit_pointer operands, if it can't be resolved
      	return false.
      	(dwarf2out_finish): Call output_location_lists after outputting
      	.debug_info and .debug_abbrev instead of before.
      
      	* dwarf2.h (DW_OP_GNU_implicit_pointer): New.
      
      2010-09-09  Roland McGrath  <roland@redhat.com>
      
      	* dwarf2out.c (DWARF_REF_SIZE): Define.
      	(size_of_loc_descr): Use it for DW_OP_call_ref.
      
      From-SVN: r164050
      Jakub Jelinek committed
  11. 14 Aug, 2010 1 commit
    • reload.h (register_move_cost, [...]): Adjust prototype. · faa832a7
      	* reload.h (register_move_cost, memory_move_secondary_cost,
      	secondary_reload_class): Adjust prototype.
      	* rtl.h (reg_class_subset_p): Adjust prototype.
      	* reload.c (secondary_reload_class): Change arguments type from
      	enum reg_class to reg_class_t. Change result type to reg_class_t.
      	* reginfo.c (register_move_cost, reg_class_subset_p): Change
      	arguments type from enum reg_class to reg_class_t.
      	(memory_move_secondary_cost): Change arguments type from
      	enum reg_class to reg_class_t. Change type of saved_flags to
      	reg_class_t.
      
      	* config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): 
      	Remove macros.
      	(mips_cost): Remove.
      	(struct mips_rtx_cost_data): Moved to mips.c.
      	* config/mips/mips-protos.h (mips_register_move_cost): Remove.
      	* config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
      	(mips_cost): Make static.
      	(mips_canonicalize_move_class): Change argument type to reg_class_t.
      	Change result type to reg_class_t.
      	(mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
      	type from enum reg_class to reg_class_t.
      	(mips_register_move_cost): Make static. Change arguments
      	type from enum reg_class to reg_class_t.
      	(mips_memory_move_cost): New function.
      	(TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
      
      From-SVN: r163252
      Anatoly Sokolov committed
  12. 09 Aug, 2010 1 commit
    • ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of alias_sets_conflict_p. · c6ea834c
      2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
      
      	* ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
      	alias_sets_conflict_p.
      	(walk_mems_1): Moved from alias.c.
      	(insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
      	in alias.c. 
              (add_inter_loop_mem_dep): Use insns_may_alias_p now.
              * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
              * alias.c (walk_mems_2): Moved to ddg.c.
      	(walk_mems_1): Ditto.
      	(insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
      	to ddg.c.
      	(nonoverlapping_memrefs_p): Add flag to guard offset-based memory
      	disambiguation.
      	*(may_alias_p): New function to check whether two memory expression
      	may alias or not. Currently used in buidling inter-iteration memory
      	dependence.
      	*alias.h (nonoverlapping_memrefs_p): New flag as third argument.
      	(insn_alias_sets_conflict_p): Removed
      	*rtl.h (may_alias_p): New function prototype.
      
      From-SVN: r163037
      Bingfeng Mei committed
  13. 05 Aug, 2010 1 commit
    • From Martin Thuresson <martint@google.com> · 5444da31
      	* postreload.c (reload_cse_simplify_operands): Use
      	SET_REGNO_RAW instead of SET_REGNO.
      	* caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
      	SET_REGNO.
      	* ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
      	instead of SET_REGNO.
      	* rtl.h (SET_REGNO_RAW): New macro.
      
      From-SVN: r162924
      Bernd Schmidt committed
  14. 30 Jul, 2010 1 commit
    • re PR debug/45055 (another -fcompare-debug failure with uninitialised read in walk_gimple_stmt) · f0fc0803
      	PR debug/45055
      	PR rtl-optimization/45137
      	* rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
      	prototypes.
      	* emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
      	New functions.
      	* combine.c (next_nonnote_nondebug_insn): Removed.
      	* ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
      	* haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
      	* sched-deps.c (sched_analyze_insn): Likewise.
      	(fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
      	* rtlanal.c (canonicalize_condition): Likewise.
      	* postreload.c (reload_combine_recognize_pattern): Likewise.
      	(reload_cse_move2add): Use next_nonnote_nondebug_insn.
      
      	* gcc.dg/pr45055.c: New test.
      
      From-SVN: r162714
      Jakub Jelinek committed
  15. 29 Jul, 2010 1 commit
    • revert: rtl.def (NOTE): Swap operands 4 and 5. · 0f953f83
      	Revert:
      	* rtl.def (NOTE): Swap operands 4 and 5.
              * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
      	NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
      	Adjust accordingly.
              * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
      
      From-SVN: r162692
      Jakub Jelinek committed
  16. 27 Jul, 2010 1 commit
    • rtl.def (DEBUG_INSN, [...]): Swap operands 4 and 5. · 418e920f
      	* rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
      	4 and 5.
      	* rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
      	NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
      	NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
      	* gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
      	CODE_LABELs and NOTEs.
      	* caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
      	* combine.c (try_combine): Likewise.
      	* ira.c (setup_prohibited_mode_move_regs): Likewise.
      	* print-rtl.c (print_rtx): Start REG_NOTES on a new line.
      
      From-SVN: r162602
      Bernd Schmidt committed
  17. 12 Jul, 2010 3 commits
    • rtl.h (target_rtl): Add x_static_reg_base_value. · 7bf84454
      gcc/
      	* rtl.h (target_rtl): Add x_static_reg_base_value.
      	* alias.c (static_reg_base_value): Redefine as a macro.
      
      From-SVN: r162092
      Richard Sandiford committed
    • Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h. · 360d045b
      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
      Richard Sandiford committed
    • Makefile.in (target-globals.o): Depend on $(RTL_H). · 5fb0e246
      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
      Richard Sandiford committed
  18. 10 Jul, 2010 1 commit
    • reginfo.h (reg_classes_intersect_p): Change arguments type to reg_class_t. · a56b31ca
      	* reginfo.h (reg_classes_intersect_p): Change arguments type to
      	reg_class_t.
      	* rtl.h (reg_classes_intersect_p): Adjust prototype.
      
      	* config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
      	Remove macros.
      	* config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
      	rs6000_memory_move_cost): Remove
      	* config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
      	TARGET_MEMORY_MOVE_COST): Define.
      	(rs6000_register_move_cost): Make static. Change arguments type from
      	enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
      	(rs6000_memory_move_cost): Make static. Change arguments type from
      	'enum reg_class' to reg_class_t.
      
      From-SVN: r162045
      Anatoly Sokolov committed
  19. 30 Jun, 2010 1 commit
    • toplev.h (_fatal_insn_not_found, [...]): Move declarations to rtl.h. · 0cbd9993
      2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	* toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
      	to rtl.h.
      	(error_for_asm,	warning_for_asm): Move declarations to rtl-error.h.
      	* rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations
      	here.
      	* rtl-error.h: New.
      	* regrename.c: Do not include toplev.h. Include rtl-error.h.
      	* rtl-error.c: Likewise.
      	* reload.c: Likewise.
      	* recog.c:  Likewise.
      	* sel-sched.c: Likewise.
      	* function.c: Likewise.
      	* reg-stack.c: Likewise.
      	* cfgrtl.c: Likewise.
      	* reload1.c: Likewise.
      	* final.c: Include rtl-error.
      	* Makefile.in: Adjust dependencies.
      
      From-SVN: r161617
      Manuel López-Ibáñez committed
  20. 10 Jun, 2010 4 commits
    • Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H). · 600ab3fc
      gcc/
      	* Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
      	* genmddeps.c: Include read-md.h.
      	(main): Call init_rtx_reader_args instead of init_md_reader_args.
      	* genattr.c (main): Likewise.
      	* genattrtab.c (main): Likewise.
      	* genautomata.c (main): Likewise.
      	* gencodes.c (main): Likewise.
      	* genconditions.c (main): Likewise.
      	* genconfig.c (main): Likewise.
      	* genconstants.c (main): Likewise.
      	* genemit.c (main): Likewise.
      	* genextract.c (main): Likewise.
      	* genflags.c (main): Likewise.
      	* genopinit.c (main): Likewise.
      	* genoutput.c (main): Likewise.
      	* genpeep.c (main): Likewise.
      	* genrecog.c (main): Likewise.
      	* genpreds.c (main): Likewise.
      	* gensupport.h (in_fname): Move to read-md.h.
      	(init_md_reader_args_cb): Rename to...
      	(init_rtx_reader_args_cb): ...this and return a bool.
      	(init_md_reader_args): Rename to...
      	(init_rtx_reader_args): ...this and return a bool.
      	(include_callback): Move to read-md.h.
      	* gensupport.c (in_fname, include_callback, base_dir, max_include_len)
      	(file_name_list, first_dir_md_include): Move to read-md.c
      	(first_bracket_include): Delete unused variable.
      	(last_dir_md_include): Move to read-md.c.
      	(process_include): Delete, moving code to read-md.c:handle_include.
      	(process_rtx): Don't handle INCLUDE.
      	(save_string): Delete.
      	(rtx_handle_directive): New function.
      	(init_md_reader_args_cb): Rename to...
      	(init_rtx_reader_args_cb): ...this and return a boolean success value.
      	Use read_md_args.
      	(init_md_reader_args): Rename to...
      	(init_rtx_reader_args): ...this and return a boolean success value.
      	* rtl.def (INCLUDE): Delete.
      	* rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
      	argument.
      	* read-rtl.c (read_conditions): Don't gobble ')' here.
      	(read_mapping): Likewise.
      	(read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
      	Handle top-level non-rtx constructs here rather than in read_rtx_1.
      	Store the whole queue in *X.  Remove call to init_md_reader.
      	(read_rtx_1): Rename to...
      	(read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
      	Don't handle top-level non-rtx constructs here.  Don't handle (nil)
      	here.
      	(read_nested_rtx): New function.  Handle (nil) here rather than
      	in read_rtx_code.
      	(read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
      	gobble ')' here.
      	* read-md.h (directive_handler_t): New type.
      	(in_fname, include_callback): Moved from read-md.h.
      	(read_constants, init_md_reader): Delete.
      	(read_md_files): Declare.
      	* read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
      	(last_dir_md_include_ptr, include_callback, max_include_len): Moved
      	from gensupport.c.
      	(read_constants): Rename to...
      	(handle_constants): ...this.  Don't gobble ')' here.
      	(handle_include, handle_file, handle_toplevel_file)
      	(parse_include): New functions, mostly taken from gensupport.c.
      	(init_md_reader): Subsume into...
      	(read_md_files): ...this new function.
      
      From-SVN: r160577
      Richard Sandiford committed
    • Makefile.in (READ_MD_H): Add $(HASHTAB_H). · 9f418533
      gcc/
      	* Makefile.in (READ_MD_H): Add $(HASHTAB_H).
      	(build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
      	* genconstants.c: Include read-md.h.
      	* read-rtl.c (md_constants): Move to read-md.c.
      	(md_name): Move to read-md.h.
      	(initialize_iterators): Use leading_string_hash instead of def_hash
      	and leading_string_eq_p instead of def_name_eq_p.
      	(read_name): Move to read-md.c.
      	(def_hash, def_name_eq_p): Delete.
      	(read_constants, traverse_md_constants): Move to read-md.c.
      	* rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
      	* read-md.h: Include hashtab.h.
      	(md_name): Moved from read-rtl.c.
      	(md_constant): Moved from read-md.h.
      	(leading_string_hash, leading_string_eq_p, read_name)
      	(read_constants, traverse_md_constants): Declare.
      	* read-md.c (md_constants): Moved from read-rtl.c.
      	(leading_string_hash, leading_string_eq_p): New functions.
      	(read_name, read_constants, traverse_md_constants): Moved from
      	read-rtl.c.
      
      From-SVN: r160575
      Richard Sandiford committed
    • read-md.h (read_md_file): Declare. · c5e88b39
      gcc/
      	* read-md.h (read_md_file): Declare.
      	(read_char, unread_char): New functions.
      	(fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
      	(read_quoted_string, read_string): Remove FILE * argument.
      	* read-md.c (read_md_file): New variable.
      	(read_md_filename, read_md_lineno): Update comments and remove
      	unnecessary initialization.
      	(fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
      	(read_escape, read_quoted_string, read_braced_string, read_string):
      	Remove FILE * argument.  Update calls accordingly, using read_char
      	and unread_char instead of getc and ungetc.
      	* rtl.h (read_rtx): Remove FILE * argument.
      	* read-rtl.c (iterator_group): Remove FILE * argument from
      	"find_builtin".
      	(iterator_traverse_data): Remove "infile" field.
      	(find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
      	(add_mapping, read_name, read_constants, read_conditions)
      	(validate_const_int, find_iterator, read_mapping, check_code_iterator)
      	(read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
      	Remove file arguments from all calls, using read_char and unread_char
      	instead of getc and ungetc.
      	* gensupport.c (process_include): Preserve read_md_file around
      	the include.  Set read_md_file to the handle of the included file.
      	Update call to read_rtx.
      	(init_md_reader_args_cb): Set read_md_file to the handle of the file
      	and remove local FILE *.  Update calls to read_rtx.
      
      From-SVN: r160572
      Richard Sandiford committed
    • Makefile.in (READ_MD_H): New variable. · 10692477
      gcc/
      	* Makefile.in (READ_MD_H): New variable.
      	(BUILD_RTL): Add build/read-md.o.
      	(lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
      	(build/gensupport.o, build/read-rtl.o, build/genattr.o)
      	(build/genattrtab.o, build/genconditions.o build/genemit.o)
      	(build/genextract.o, build/genflags.o, build/genoutput.o)
      	(build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
      	(build/read-md.o): New rule.
      	* defaults.h (obstack_chunk_alloc, obstack_chunk_free)
      	(OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
      	* coretypes.h: ...here.
      	* lto-wrapper.c: Include coretypes.h instead of defaults.h.
      	* pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
      	* genattr.c: Include read-md.h.
      	* genattrtab.c: Likewise.
      	* genconditions.c: Likewise.
      	* genemit.c: Likewise.
      	* genextract.c: Likewise.
      	* genflags.c: Likewise.
      	* genoutput.c: Likewise.
      	* genpreds.c: Likewise.
      	* genrecog.c: Likewise.
      	* rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
      	(join_c_conditions, print_c_condition, read_rtx_filename)
      	(read_rtx_lineno): Move to read-md.h.
      	* read-rtl.c: Include read-md.h.
      	(ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
      	(joined_conditions, joined_conditions_obstack, read_rtx_lineno)
      	(read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
      	(leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
      	(copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
      	(print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
      	(read_braced_string, read_string): Move to read-md.c.
      	(read_rtx): Move some initialization to init_md_reader and call
      	init_md_reader here.
      	* gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
      	Move to read-md.h.
      	* gensupport.c: Include read-md.h.
      	(message_with_line, n_comma_elts, scan_comma_elt): Move to
      	read-md.c.
      	* read-md.h, read-md.c: New files.
      
      From-SVN: r160570
      Richard Sandiford committed
  21. 08 Jun, 2010 1 commit
    • utils.c (init_gnat_to_gnu): Use typed GC allocation. · a9429e29
      gcc/ada:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* gcc-interface/utils.c (init_gnat_to_gnu): Use typed GC
      	allocation.
      	(init_dummy_type): Likewise.
      	(gnat_pushlevel): Likewise.
      
      	* gcc-interface/trans.c (Attribute_to_gnu): Likewise.
      	(Subprogram_Body_to_gnu): Likewise.
      	(Compilation_Unit_to_gnu): Likewise.
      	(start_stmt_group): Likewise.
      	(extract_encoding): Likewise.
      	(decode_name): Likewise.
      
      	* gcc-interface/misc.c (gnat_printable_name): Likewise.
      
      	* gcc-interface/decl.c (annotate_value): Likewise.
      
      	* gcc-interface/ada-tree.h (struct lang_type): Add variable_size
      	GTY option.
      	(struct lang_decl): Likewise.
      	(SET_TYPE_LANG_SPECIFIC): Use typed GC allocation.
      	(SET_DECL_LANG_SPECIFIC): Likewise.
      
      gcc/c-family:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* c-pragma.c (push_alignment): Use typed GC allocation.
      	(handle_pragma_push_options): Likewise.
      
      	* c-common.c (parse_optimize_options): Likewise.
      
      	* c-common.h (struct sorted_fields_type): Add variable_size GTY
      	option.
      
      gcc/cp:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* typeck2.c (abstract_virtuals_error): Likewise.
      
      	* pt.c (maybe_process_partial_specialization): Likewise.
      	(register_specialization): Likewise.
      	(add_pending_template): Likewise.
      	(lookup_template_class): Likewise.
      	(push_tinst_level): Likewise.
      
      	* parser.c (cp_lexer_new_main): Likewise.
      	(cp_lexer_new_from_tokens): Likewise.
      	(cp_token_cache_new): Likewise.
      	(cp_parser_context_new): Likewise.
      	(cp_parser_new): Likewise.
      	(cp_parser_nested_name_specifier_opt): Likewise.
      	(cp_parser_template_id): Likewise.
      
      	* name-lookup.c (binding_entry_make): Likewise.
      	(binding_table_construct): Likewise.
      	(binding_table_new): Likewise.
      	(cxx_binding_make): Likewise.
      	(pushdecl_maybe_friend): Likewise.
      	(begin_scope): Likewise.
      	(push_to_top_level): Likewise.
      
      	* lex.c (init_reswords): Likewise.
      	(retrofit_lang_decl): Likewise.
      	(cxx_dup_lang_specific_decl): Likewise.
      	(copy_lang_type): Likewise.
      	(cxx_make_type): Likewise.
      
      	* decl.c (make_label_decl): Likewise.
      	(check_goto): Likewise.
      	(start_preparsed_function): Likewise.
      	(save_function_data): Likewise.
      
      	* cp-tree.h (TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
      
      	* cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise.
      
      	* class.c (finish_struct_1): Likewise.
      
      	* cp-tree.h (struct lang_type): Add variable_size GTY option.
      	(struct lang_decl): Likewise.
      
      	* parser.c (cp_parser_new): Update comment to not reference
      	ggc_alloc.
      
      gcc/fortran:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* trans-types.c (gfc_get_nodesc_array_type): Use typed GC
      	allocation.
      	(gfc_get_array_type_bounds): Likewise.
      
      	* trans-decl.c (gfc_allocate_lang_decl): Likewise.
      	(gfc_find_module): Likewise.
      
      	* f95-lang.c (pushlevel): Likewise.
      
      	* trans.h (struct lang_type): Add variable_size GTY option.
      	(struct lang_decl): Likewise.
      
      gcc/java:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* jcf-reader.c (jcf_parse_constant_pool): Use typed GC allocation.
      
      	* jcf-parse.c (java_parse_file): Likewise.
      	(process_zip_dir): Likewise.
      
      	* java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Likewise.
      	(MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise.
      
      	* expr.c (add_type_assertion): Likewise.
      
      	* decl.c (make_binding_level): Likewise.
      	(java_dup_lang_specific_decl): Likewise.
      
      	* constants.c (set_constant_entry): Likewise.
      	(cpool_for_class): Likewise.
      
      	* class.c (add_method_1): Likewise.
      	(java_treetreehash_new): Likewise.
      
      	* java-tree.h (struct lang_type): Add variable_size GTY option.
      	(struct lang_decl): Likewise.
      
      	* jch.h (struct cpool_entry): Likewise.
      
      	* java-tree.h (java_treetreehash_create): Remove parameter ggc.
      
      	* except.c (prepare_eh_table_type): Update
      	java_treetreehash_create call.
      
      	* class.c (add_method_1): Update java_treetreehash_create call.
      	(java_treetreehash_create): Remove parameter gc.  Use
      	htab_create_ggc.
      
      gcc/lto:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* lto.c (lto_read_in_decl_state): Use typed GC allocation.
      	(lto_file_read): Likewise.
      	(new_partition): Likewise.
      	(read_cgraph_and_symbols): Likewise.
      
      gcc/objc:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC
      	allocation.
      
      	* objc-act.c (objc_volatilize_decl): Likewise.
      	(objc_build_string_object): Likewise.
      	(hash_init): Likewise.
      	(hash_enter): Likewise.
      	(hash_add_attr): Likewise.
      	(add_class): Likewise.
      	(start_class): Likewise.
      
      gcc/objcp:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* objcp-decl.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC
      	allocation.
      
      gcc:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
      
      	* doc/gty.texi (GTY Options): Document typed GC allocation and
      	variable_size GTY option.
      
      	* ggc-internal.h: New.
      
      	* ggc.h: Update copyright year.
      	(digit_string): Move to stringpool.c.
      	(ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
      	(gt_pch_save_stringpool, gt_pch_fixup_stringpool)
      	(gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
      	(init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
      	(ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
      	(ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
      	(ggc_force_collect, ggc_get_size, ggc_statistics)
      	(ggc_print_common_statistics): Move to ggc-internal.h.
      	(digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
      	(ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
      	(GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
      	(ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
      	(ggc_min_heapsize_heuristic, ggc_alloc_zone)
      	(ggc_alloc_zone_pass_stat): Remove.
      	(ggc_internal_alloc_stat, ggc_internal_alloc)
      	(ggc_internal_cleared_alloc_stat): New.
      	(GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
      	(ggc_internal_vec_alloc_stat)
      	(ggc_internal_cleared_vec_alloc_stat)
      	(ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
      	(ggc_alloc_atomic_stat, ggc_alloc_atomic)
      	(ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
      	(ggc_cleared_alloc_ptr_array_two_args): New.
      	(htab_create_ggc, splay_tree_new_ggc): Redefine.
      	(ggc_splay_alloc): Change the type of the first argument to
      	enum gt_types_enum.
      	(ggc_alloc_string): Make macro.
      	(ggc_alloc_string_stat): New.
      	(ggc_strdup): Redefine.
      	(rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
      	(ggc_alloc_rtvec_sized): New.
      	(ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
      	(ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
      	(ggc_internal_cleared_alloc_zone_stat)
      	(ggc_internal_zone_alloc_stat)
      	(ggc_internal_zone_cleared_alloc_stat)
      	(ggc_internal_zone_vec_alloc_stat)
      	(ggc_alloc_zone_rtx_def_stat)
      	(ggc_alloc_zone_tree_node_stat)
      	(ggc_alloc_zone_cleared_tree_node_stat)
      	(ggc_alloc_cleared_gimple_statement_d_stat): New.
      
      	* ggc-common.c: Include ggc-internal.h.
      	(ggc_internal_cleared_alloc_stat): Rename from
      	ggc_alloc_cleared_stat.
      	(ggc_realloc_stat): Use ggc_internal_alloc_stat.
      	(ggc_calloc): Remove.
      	(ggc_cleared_alloc_htab_ignore_args): New.
      	(ggc_cleared_alloc_ptr_array_two_args): New.
      	(ggc_splay_alloc): Add obj_type parameter.
      	(init_ggc_heuristics): Formatting fixes.
      
      	* ggc-none.c: Update copyright year.
      	(ggc_alloc_stat): Rename to ggc_alloc_stat.
      	(ggc_alloc_cleared_stat): Rename to
      	ggc_internal_cleared_alloc_stat.
      	(struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
      
      	* ggc-page.c: Update copyright year.  Include ggc-internal.h.
      	Remove references to ggc_alloc in comments.
      	(ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
      	(ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
      	(new_ggc_zone, destroy_ggc_zone): Remove.
      	(struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
      
      	* ggc-zone.c: Include ggc-internal.h.  Remove references to
      	ggc_alloc in comments.
      	(ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
      	(ggc_internal_alloc_zone_pass_stat): New.
      	(ggc_internal_cleared_alloc_zone_stat): New.
      	(ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
      	(ggc_alloc_stat): Rename ggc_internal_alloc_stat.
      	(new_ggc_zone, destroy_ggc_zone): Remove.
      
      	* stringpool.c: Update copyright year.  Include ggc-internal.h
      	(digit_vector): Make static.
      	(digit_string): Moved from ggc.h.
      	(stringpool_ggc_alloc): Use ggc_alloc_atomic.
      	(ggc_alloc_string): Rename to ggc_alloc_string_stat.
      
      	* Makefile.in (GGC_INTERNAL_H): New.
      	(ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
      	$(GGC_INTERNAL_H) to dependencies.
      
      	* gentype.c: Update copyright year.
      	(walk_type): Accept variable_size GTY option.
      	(USED_BY_TYPED_GC_P): New macro.
      	(write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
      	whitespace at the end of strings.
      	(get_type_specifier, variable_size_p): New functions.
      	(alloc_quantity, alloc_zone): New enums.
      	(write_typed_alloc_def): New function.
      	(write_typed_struct_alloc_def): Likewise.
      	(write_typed_typed_typedef_alloc_def): Likewise.
      	(write_typed_alloc_defns): Likewise.
      	(output_typename, write_splay_tree_allocator_def): Likewise.
      	(write_splay_tree_allocators): Likewise.
      	(main): Call write_typed_alloc_defns and
      	write_splay_tree_allocators.
      
      	* lto-streamer.h (lto_file_decl_data_ptr): New.
      
      	* passes.c (order): Define using cgraph_node_ptr.
      
      	* strinpool.c (struct string_pool_data): Declare nested_ptr using
      	ht_identifier_ptr.
      
      	* gimple.h (union gimple_statement_d): Likewise.
      
      	* rtl.h (struct rtx_def): Likewise.
      	(struct rtvec_def): Likewise.
      
      	* tree.h (union tree_node): Likewise.
      
      	* tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
      
      	* cfgloop.c (record_loop_exits): Use htab_create_ggc.
      
      	* tree-scalar-evolution.c (scev_initialize): Likewise.
      
      	* alias.c (record_alias_subset): Update splay_tree_new_ggc call.
      
      	* dwarf2asm.c (dw2_force_const_mem): Likewise.
      
      	* omp-low.c (lower_omp_critical): Likewise.
      
      	* bitmap.h (struct bitmap_head_def): Update comment to not
      	reference ggc_alloc.
      
      	* config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
      
      	* ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
      
      	* ipa-prop.c (duplicate_ggc_array): Rename to
      	duplicate_ipa_jump_func_array.  Use typed GC allocation.
      	(ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
      
      	* gimple.c (gimple_alloc_stat): Use
      	ggc_alloc_cleared_gimple_statement_d_stat.
      
      	* varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
      
      	* tree.c (make_node_stat): Use
      	ggc_alloc_zone_cleared_tree_node_stat.
      	(make_tree_vec_stat): Likewise.
      	(build_vl_exp_stat): Likewise.
      	(copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
      	(make_tree_binfo_stat): Likewise.
      	(tree_cons_stat): Likewise.
      
      	* rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
      	(shallow_copy_rtx_stat): Likewise.
      	(make_node_stat): Likewise.
      
      	* lto-symtab.c: Fix comment.
      
      	* tree-cfg.c (create_bb): Update comment to not reference
      	ggc_alloc_cleared.
      	* tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is
      	value.
      
      	* varpool.c (varpool_node): Use typed GC allocation.
      	(varpool_extra_name_alias): Likewise.
      
      	* varasm.c (emutls_decl): Likewise.
      	(get_unnamed_section): Likewise.
      	(get_noswitch_section): Likewise.
      	(get_section): Likewise.
      	(get_block_for_section): Likewise.
      	(build_constant_desc): Likewise.
      	(create_constant_pool): Likewise.
      	(force_const_mem): Likewise.
      
      	* tree.c (build_vl_exp_stat): Likewise.
      	(build_real): Likewise.
      	(build_string): Likewise.
      	(decl_debug_expr_insert): Likewise.
      	(decl_value_expr_insert): Likewise.
      	(type_hash_add): Likewise.
      	(build_omp_clause): Likewise.
      
      	* tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
      
      	* tree-ssa.c (init_tree_ssa): Likewise.
      
      	* tree-ssa-structalias.c (heapvar_insert): Likewise.
      
      	* tree-ssa-operands.c (ssa_operand_alloc): Likewise.
      
      	* tree-ssa-loop-niter.c (record_estimate): Likewise.
      
      	* tree-ssa-alias.c (get_ptr_info): Likewise.
      
      	* tree-scalar-evolution.c (new_scev_info_str): Likewise.
      
      	* tree-phinodes.c (allocate_phi_node): Likewise.
      
      	* tree-iterator.c (tsi_link_before): Likewise.
      	(tsi_link_after): Likewise.
      
      	* tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
      
      	* tree-dfa.c (create_var_ann): Likewise.
      
      	* tree-cfg.c (create_bb): Likewise.
      
      	* toplev.c (alloc_for_identifier_to_locale): Likewise.
      	(general_init): Likewise.
      
      	* stringpool.c (stringpool_ggc_alloc): Likewise.
      	(gt_pch_save_stringpool): Likewise.
      
      	* sese.c (if_region_set_false_region): Likewise.
      
      	* passes.c (do_per_function_toporder): Likewise.
      
      	* optabs.c (set_optab_libfunc): Likewise.
      	(set_conv_libfunc): Likewise.
      
      	* lto-symtab.c (lto_symtab_register_decl): Likewise.
      
      	* lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
      	(input_eh_region): Likewise.
      	(input_eh_lp): Likewise.
      	(make_new_block): Likewise.
      	(unpack_ts_real_cst_value_fields): Likewise.
      
      	* lto-section-in.c (lto_new_in_decl_state): Likewise.
      
      	* lto-cgraph.c (input_node_opt_summary): Likewise.
      
      	* loop-init.c (loop_optimizer_init): Likewise.
      
      	* lambda.h (lambda_vector_new): Likewise.
      
      	* lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
      
      	* ira.c (update_equiv_regs): Likewise.
      
      	* ipa.c (cgraph_node_set_new): Likewise.
      	(cgraph_node_set_add): Likewise.
      	(varpool_node_set_new): Likewise.
      	(varpool_node_set_add): Likewise.
      
      	* ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
      	(duplicate_ipa_jump_func_array): Likewise.
      	(ipa_read_node_info): Likewise.
      
      	* ipa-cp.c (ipcp_create_replace_map): Likewise.
      
      	* integrate.c (get_hard_reg_initial_val): Likewise.
      
      	* gimple.c (gimple_alloc_stat): Likewise.
      	(gimple_build_omp_for): Likewise.
      	(gimple_seq_alloc): Likewise.
      	(gimple_copy): Likewise.
      
      	* gimple-iterator.c (gsi_insert_before_without_update): Likewise.
      	(gsi_insert_after_without_update): Likewise.
      
      	* function.c (add_frame_space): Likewise.
      	(insert_temp_slot_address): Likewise.
      	(assign_stack_temp_for_type): Likewise.
      	(allocate_struct_function): Likewise.
      	(types_used_by_var_decl_insert): Likewise.
      
      	* except.c (init_eh_for_function): Likewise.
      	(gen_eh_region): Likewise.
      	(gen_eh_region_catch): Likewise.
      	(gen_eh_landing_pad): Likewise.
      	(add_call_site): Likewise.
      
      	* emit-rtl.c (get_mem_attrs): Likewise.
      	(get_reg_attrs): Likewise.
      	(start_sequence): Likewise.
      	(init_emit): Likewise.
      
      	* dwarf2out.c (new_cfi): Likewise.
      	(queue_reg_save): Likewise.
      	(dwarf2out_frame_init): Likewise.
      	(new_loc_descr): Likewise.
      	(find_AT_string): Likewise.
      	(new_die): Likewise.
      	(add_var_loc_to_decl): Likewise.
      	(clone_die): Likewise.
      	(clone_as_declaration): Likewise.
      	(break_out_comdat_types): Likewise.
      	(new_loc_list): Likewise.
      	(loc_descriptor): Likewise.
      	(add_loc_descr_to_each): Likewise.
      	(add_const_value_attribute): Likewise.
      	(tree_add_const_value_attribute): Likewise.
      	(add_comp_dir_attribute): Likewise.
      	(add_name_and_src_coords_attributes): Likewise.
      	(lookup_filename): Likewise.
      	(store_vcall_insn): Likewise.
      	(dwarf2out_init): Likewise.
      
      	* dbxout.c (dbxout_init): Likewise.
      
      	* config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
      
      	* config/sparc/sparc.c (sparc_init_machine_status): Likewise.
      
      	* config/score/score7.c (score7_output_external): Likewise.
      
      	* config/score/score3.c (score3_output_external): Likewise.
      
      	* config/s390/s390.c (s390_init_machine_status): Likewise.
      
      	* config/rs6000/rs6000.c (builtin_function_type): Likewise.
      	(rs6000_init_machine_status): Likewise.
      	(output_toc): Likewise.
      
      	* config/pa/pa.c (pa_init_machine_status): Likewise.
      	(get_deferred_plabel): Likewise.
      
      	* config/moxie/moxie.c (moxie_init_machine_status): Likewise.
      
      	* config/mmix/mmix.c (mmix_init_machine_status): Likewise.
      
      	* config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
      
      	* config/mep/mep.c (mep_init_machine_status): Likewise.
      	(mep_note_pragma_flag): Likewise.
      
      	* config/m32c/m32c.c (m32c_init_machine_status): Likewise.
      
      	* config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
      
      	* config/ia64/ia64.c (ia64_init_machine_status): Likewise.
      
      	* config/i386/winnt.c (i386_pe_record_external_function): Likewise.
      	(i386_pe_maybe_record_exported_symbol): Likewise.
      
      	* config/i386/i386.c (get_dllimport_decl): Likewise.
      	(ix86_init_machine_status): Likewise.
      	(assign_386_stack_local): Likewise.
      
      	* config/frv/frv.c (frv_init_machine_status): Likewise.
      
      	* config/darwin.c (machopic_indirection_name): Likewise.
      
      	* config/cris/cris.c (cris_init_machine_status): Likewise.
      
      	* config/bfin/bfin.c (bfin_init_machine_status): Likewise.
      
      	* config/avr/avr.c (avr_init_machine_status): Likewise.
      
      	* config/arm/arm.c (arm_init_machine_status): Likewise.
      
      	* config/alpha/alpha.c (alpha_init_machine_status): Likewise.
      	(alpha_need_linkage): Likewise.
      	(alpha_use_linkage): Likewise.
      
      	* cgraph.c (cgraph_allocate_node): Likewise.
      	(cgraph_create_edge_1): Likewise.
      	(cgraph_create_indirect_edge): Likewise.
      	(cgraph_add_asm_node): Likewise.
      
      	* cfgrtl.c (init_rtl_bb_info): Likewise.
      
      	* cfgloop.c (alloc_loop): Likewise.
      	(rescan_loop_exit): Likewise.
      
      	* cfg.c (init_flow): Likewise.
      	(alloc_block): Likewise.
      	(unchecked_make_edge): Likewise.
      
      	* c-parser.c (c_parse_init): Likewise.
      	(c_parse_file): Likewise.
      
      	* c-decl.c (bind): Likewise.
      	(record_inline_static): Likewise.
      	(push_scope): Likewise.
      	(make_label): Likewise.
      	(lookup_label_for_goto): Likewise.
      	(finish_struct): Likewise.
      	(finish_enum): Likewise.
      	(c_push_function_context): Likewise.
      
      	* bitmap.c (bitmap_element_allocate): Likewise.
      	(bitmap_gc_alloc_stat): Likewise.
      
      	* alias.c (record_alias_subset): Likewise.
      	(init_alias_analysis): Likewise.
      
      include:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* splay-tree.h: Update copyright years.
      	(splay_tree_s): Document fields.
      	(splay_tree_new_typed_alloc): New.
      
      	* hashtab.h: Update copyright years.
      	(htab_create_typed_alloc): New.
      
      libcpp:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* include/symtab.h (ht_identifier_ptr): New.
      
      libiberty:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* splay-tree.c: Update copyright years.
      	(splay_tree_new_typed_alloc): New.
      	(splay_tree_new_with_allocator): Use it.
      
      	* hashtab.c: Update copyright years.
      	(htab_create_typed_alloc): New.
      	(htab_create_alloc): Use it.
      
      	* functions.texi: Regenerate.
      
      From-SVN: r160425
      Laurynas Biveinis committed
  22. 01 Jun, 2010 1 commit
    • fwprop.c: Make emit-rtl.h include last. · 5936d944
      	* fwprop.c: Make emit-rtl.h include last.
      	* rtlanal.c: Include emit-rtl.h.
      	* genautomata.c: Output emit-rtl include into insn-automata.c
      	* df-scan.c: Include emit-rtl.h.
      	* haifa-sched.c: Indlude emit-rtl.h.
      	* mode-switching.c: Indlude emit-rtl.h.
      	* graph.c: Indlude emit-rtl.h.
      	* sel-sched.c: Include emit-rtl.h.
      	* sel-sched-ir.c: Include emit-rtl.h.
      	* ira-build.c: Include emit-rtl.h.
      	* emit-rtl.c: (first_insn, last_insn): Remove defines.
      	(get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
      	Move to emit-rtl.h.
      	(set_new_first_and_last_insn, get_last_insn_anywhere, get_first_nonnote_insn,
      	get_last_nonnote_insn, try_split, make_call_insn_raw, add_insn_after,
      	add_insn_before, remove_insn, delete_insns_since, reorder_insns_nobb,
      	emit_insn_after_1, emit_debug_insn_before, emit_insn, start_sequence,
      	push_to_sequence, push_to_sequence2, push_topmost_sequence, end_sequence,
      	copy_insn): Use accessor functions.
      	* emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
      	 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
      	set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
      	mem_expr_equal_p): Move here from rtl.h
      	(get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
      	Move here from emit-rtl.c; make inline.
      	* cfglayout.h: Include emit-rtl.h
      	* rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
      	 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
      	set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
      	mem_expr_equal_p, get_insns, set_first-insn, get_last_insn, set_last_insn,
      	get_max_uid): Move to emit-rtl.h.
      	* reg-stack.c: Include emit-rtl.h
      	* dce.c: Likewise.
      
      From-SVN: r160111
      Jan Hubicka committed
  23. 26 May, 2010 2 commits
    • explow.c (set_stack_check_libfunc): Adjust to accept name as a string instead of SYMBOL_REF rtx. · d477d1fe
      gcc/ChangeLog:
      	* explow.c (set_stack_check_libfunc): Adjust to accept name as a
      	string instead of SYMBOL_REF rtx.
      	* rtl.h (set_stack_check_libfunc): Move prototype from here...
      	* libfuncs.h: ...to here.  Adjust for explow.c change.
      
      ada/ChangeLog:
      	* gcc-interface/trans.c: Do not include rtl.h, insclude libfuncs.h.
      	(gigi): Adjust call to set_stack_check_libfunc.
      
      From-SVN: r159900
      Steven Bosscher committed
    • rtl.h (decl_default_tls_model): Move prototype from here... · d347d97e
      gcc/ChangeLog:
      	* rtl.h (decl_default_tls_model): Move prototype from here...
      	* output.h: ...to here.
      	* c-decl.c: Do not include rtl.h.
      	* c-pragma.c: Likewise.
      	* c-parser.c: Likewise.
      	* c-gimplify.c: Likewise.  And also not hard-reg-set.
      	* c-common.c: Do not include rtl.h.  Include tm_p.h and add a
      	FIXME note for it.  Add a FIXME note for expr.h.
      	* config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
      	ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
      	defined.
      
      cp/ChangeLog:
      	* decl.c: Do not include rtl.h
      	* semantics.c: Likewise.
      
      ada/ChangeLog:
      	* gcc-interface/utils.c: Do not include rtl.h.
      
      fortran/ChangeLog:
      	* trans-common.c: Do not include rtl.h, include output.h instead.
      	* trans-decl.c: Likewise.
      
      From-SVN: r159856
      Steven Bosscher committed
  24. 22 May, 2010 1 commit
    • rtl.h (union rtunion_def): Remove rt_bit member. · a2c9fe42
      	* rtl.h (union rtunion_def): Remove rt_bit member.
      	(XBITMAP, X0BITMAP, XCBITMAP): Remove.
      	* print-rtl (print_rtx): Do not print the member.
      	* gengtype.c (adjust_field_rtx_def): Do not handle it.
      	* gengenrtl.c (type_from_format): Likewise.
      	(accessor_from_format): Likewise.
      
      From-SVN: r159698
      Steven Bosscher committed
  25. 15 May, 2010 1 commit
    • vecir.h: New file with VEC primitives for tree, gimple, and rtl. · f4ce02c5
      gcc/ChangeLog
      	* vecir.h: New file with VEC primitives for tree, gimple, and rtl.
      	* Makefile.in: Add it.
      	Fix all other Makefile dependencies for changes below.
      	* tree.h: Include it instead of defining VEC primitives here.
      	* gimple.h: Likewise.
      	* rtl.h: Likewise.
      	* tree-inline.h: Inlclude vecir.h instead of gimple.h.
      	* except.h: Include vecir.h, break dependence on tree.h.
      
      	* gimplify.c (append_to_statement_list_1, append_to_statement_list):
      	Move from here...
      	* tree-iterator.c: ...to here.
      	* tree-iterator.h: Fix file introduction comment.  Add extern markers.
      
      	* c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
      	tm_p.h.
      	* c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
      	* c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
      	integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
      	tree-mudflap.h, and target.h.
      	* c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
      	predict.h, tree-inline.h, gimple.h, and langhooks.h.
      	* c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
      	Add FIXME for why gimple.h is still included (should be unnecessary
      	since GCC 4.5 gimplification unit-at-a-time).
      	* c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
      	* c-pragma.c: Add FIXME for why function.h needs to be included just
      	for cfun, at front-end level.
      	Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
      	Do not include ggc.h, but include vecprim.h for VEC(char).
      	* c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
      	Explain why target.h is included.
      	* c-omp.h: Do not include tm.h, function.h, and bitmap.h.
      	Explain why gimple.h is included.
      	* c-ppoutput.c: Do not include tm.h.
      	* c-common.c: Do not include gimple.h.  Explain why expr.h is included.
      	* c-parses.c: Explain why rtl.h is included, and that this (and only
      	this) is also why tm.h must be included.
      	Do not include except.h.
      	* c-lang.c: Do not include ggc.h.
      
      cp/ChangeLog
      	* decl.c: Include tree-iterator.h, as fixup for tree-inline.h changes.
      	* Make-lang.in: Fix dependencies accordingly.
      
      From-SVN: r159442
      Steven Bosscher committed
  26. 05 May, 2010 1 commit
    • re PR debug/43478 (Missing DW_AT_location for a variable) · e972a1d3
      	PR debug/43478
      	* df-problems.c (struct dead_debug_use, struct dead_debug): New.
      	(dead_debug_init, dead_debug_finish): New functions.
      	(dead_debug_add, dead_debug_insert_before): Likewise.
      	(df_note_bb_compute): Initialize a dead_debug object, add dead
      	debug uses to it, insert debug bind insns before death insns,
      	reset debug insns that refer to pending uses at the end.
      	* rtl.h (make_debug_expr_from_rtl): New prototype.
      	* varasm.c (make_debug_expr_from_rtl): New function.
      
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      
      From-SVN: r159063
      Alexandre Oliva committed
  27. 01 May, 2010 1 commit
    • rtl.h (CONST_DOUBLE_P): Define. · 3e93ff81
      	* rtl.h (CONST_DOUBLE_P): Define.
      	(rtx_to_double_int): Declare.
      	* emit-rtl.c (rtx_to_double_int): New function.
      	* dwarf2out.c (insert_double): New function.
      	(loc_descriptor, add_const_value_attribute): Clean up, use
      	rtx_to_double_int and insert_double functions.
      
      From-SVN: r158963
      Anatoly Sokolov committed
  28. 20 Apr, 2010 1 commit
    • double-int.h (double_int_setbit): Declare. · 54fb1ae0
      	* double-int.h (double_int_setbit): Declare.
      	* double-int.c (double_int_setbit): New function.
      	* rtl.h (immed_double_int_const): Declare.
      	* emit-rtl.c (immed_double_int_const): New function.
      	* builtins.c (expand_builtin_signbit): Clean up, use double_int_*
      	and immed_double_int_const functions.
      	* optabs.c (expand_absneg_bit, expand_copysign_absneg,
      	expand_copysign_bit):  (Ditto.).
      	* simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
      	* tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
      	* dojump.c (prefer_and_bit_test): (Ditto.).
      	* expr.c (convert_modes, reduce_to_bit_field_precision,
      	const_vector_from_tree): (Ditto.).
      	* expmed.c (mask_rtx, lshift_value): (Ditto.).
      
      From-SVN: r158566
      Anatoly Sokolov committed
  29. 16 Mar, 2010 1 commit
    • re PR debug/43051 (VTA causes a stack living parameter unavailable in most of the function) · 457eeaae
      	PR debug/43051
      	PR debug/43092
      	* cselib.c (cselib_preserve_constants,
      	cfa_base_preserved_val): New static variables.
      	(preserve_only_constants): New function.
      	(cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
      	clear its REG_VALUES.  If cselib_preserve_constants, don't 
      	empty the whole hash table, but preserve there VALUEs with constants,
      	cfa_base_preserved_val and cfa_base_preserved_val plus constant.
      	(cselib_preserve_cfa_base_value): New function.
      	(cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
      	(cselib_init): Change argument to int bitfield.  Set
      	cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
      	is in it.
      	(cselib_finish): Clear cselib_preserve_constants and
      	cfa_base_preserved_val.
      	* cselib.h (enum cselib_record_what): New enum.
      	(cselib_init): Change argument to int.
      	(cselib_preserve_cfa_base_value): New prototype.
      	* postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
      	* dse.c (dse_step1): Likewise.
      	* cfgcleanup.c (thread_jump): Likewise.
      	* sched-deps.c (sched_analyze): Likewise.
      	* gcse.c (local_cprop_pass): Likewise.
      	* simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
      	If FN is non-NULL, call the callback always and whenever it returns
      	non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
      	* rtl.h (simplify_replace_fn_rtx): Add argument to callback.
      	* combine.c (propagate_for_debug_subst): Add old_rtx argument,
      	compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
      	* Makefile.in (var-tracking.o): Depend on $(RECOG_H).
      	* var-tracking.c: Include recog.h.
      	(bb_stack_adjust_offset): Remove.
      	(vt_stack_adjustments): Don't call it, instead just gather the
      	adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
      	(adjust_stack_reference): Remove.
      	(compute_cfa_pointer): New function.
      	(hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
      	(struct adjust_mem_data): New type.
      	(adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
      	functions.
      	(get_address_mode): New function.
      	(replace_expr_with_values): Use it.
      	(use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
      	Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
      	(adjust_sets): Remove.
      	(add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
      	Use get_address_mode.
      	(get_adjusted_src): Remove.
      	(add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
      	MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
      	(add_with_sets): Don't call adjust_sets.
      	(fp_setter, vt_init_cfa_base): New functions.
      	(vt_initialize): Change return type to bool.  Move most of pool etc.
      	initialization to the beginning of the function from end.  Pass
      	CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
      	If !frame_pointer_needed, call vt_stack_adjustment before mos
      	vector is filled, call vt_init_cfa_base if argp/framep has been
      	eliminated to sp.  If frame_pointer_needed and argp/framep has
      	been eliminated to hard frame pointer, set
      	hard_frame_pointer_adjustment and call vt_init_cfa_base after
      	encountering fp setter in the prologue.  For MO_ADJUST, call
      	log_op_type before pusing the op into mos vector, not afterwards.
      	Call adjust_insn before cselib_process_insn/add_with_sets,
      	call cancel_changes (0) afterwards.
      	(variable_tracking_main_1): Adjust for vt_initialize calling
      	vt_stack_adjustments and returning whether it succeeded or not.
      
      	* gcc.dg/guality/pr43051-1.c: New test.
      
      From-SVN: r157476
      Jakub Jelinek committed
  30. 19 Feb, 2010 1 commit
  31. 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
  32. 24 Nov, 2009 1 commit
    • cfgrtl.c (commit_one_edge_insertion): Remove set but not used local variable bb_note. · 2d888286
      2009-11-24  David Binderman <dcb314@hotmail.com>
      
      	* cfgrtl.c (commit_one_edge_insertion): Remove set but not used
      	local variable bb_note.
              * dominance.c (get_dominated_by): Likewise local var n.
              (output_file_names): Likewise local var idx.
              (add_location_or_const_value_attribute): Likewise local var status.
              * dwarf2out.c (gen_variable_die): Likewise local var field.
              * emit-rtl.c (no_line_numbers): Remove.
      	(init_emit_once): Remove line_numbers parameter.
              * rtl.h (init_emit_once): Adjust prototype.
              * toplev.c (backend_init): Adjust init_emit_once call.
      
      From-SVN: r154496
      David Binderman committed
  33. 26 Oct, 2009 1 commit
    • 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