1. 04 May, 2011 1 commit
    • calls.c (emit_library_call_value_1): Invoke promote_function_mode hook on libcall arguments. · 5e617be8
      2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
      
      	* calls.c (emit_library_call_value_1): Invoke
      	promote_function_mode hook on libcall arguments.
      	* explow.c (promote_function_mode, promote_mode): Handle TYPE
      	argument being NULL.
      	* targhooks.c (default_promote_function_mode): Lisewise.
      	* config/s390/s390.c (s390_promote_function_mode): Likewise.
      	* config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
      
      	* doc/tm.texi: Document that TYPE argument might be NULL.
      
      From-SVN: r173371
      Andreas Krebbel committed
  2. 29 Apr, 2011 1 commit
    • expr.h (expand_shift): Rename to ... · eb6c3df1
      2011-04-29  Richard Guenther  <rguenther@suse.de>
      
      	* expr.h (expand_shift): Rename to ...
      	(expand_variable_shift): ... this.
      	(expand_shift): Take a constant shift amount.
      	* expmed.c (expand_shift): Rename to ...
      	(expand_variable_shift): ... this.
      	(expand_shift): New wrapper around expand_variable_shift.
      	* expr.c (convert_move, emit_group_load_1, emit_group_store,
      	optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
      	expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
      	* expmed.c (store_fixed_bit_field, extract_bit_field_1,
      	extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
      	expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
      	extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
      	emit_store_flag_1, emit_store_flag): Likewise.
      	* builtins.c (expand_builtin_signbit): Likewise.
      	* calls.c (load_register_parameters): Likewise.
      	* function.c (assign_parm_setup_block): Likewise.
      	* lower-subreg.c (resolve_shift_zext): Likewise.
      	* optabs.c (widen_bswap, expand_abs_nojump,
      	expand_one_cmpl_abs_nojump, expand_float): Likewise.
      	* spu/spu.c (spu_expand_extv): Likewise.
      	* sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
      
      From-SVN: r173157
      Richard Guenther committed
  3. 21 Apr, 2011 2 commits
    • tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF and… · e19f6650
      tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
      
      2011-04-21  Richard Guenther  <rguenther@suse.de>
      
      	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
      	MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
      	Use DECL_P, not SSA_VAR_P.
      	(ptr_derefs_may_alias_p): Likewise.
      	(ptr_deref_may_alias_ref_p_1): Likewise.
      	(decl_refs_may_alias_p): Likewise.
      	(refs_may_alias_p_1): Likewise.
      	(ref_maybe_used_by_call_p_1): Likewise.
      	(call_may_clobber_ref_p_1): Likewise.
      	(indirect_ref_may_alias_decl_p): Assume indirect refrences
      	are either MEM_REF or TARGET_MEM_REF.
      	(indirect_refs_may_alias_p): Likewise.
      	* calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
      	for MEM_EXPR of indirect calls.
      
      From-SVN: r172825
      Richard Guenther committed
    • target.def (legitimate_constant_p): New hook. · 1a627b35
      gcc/
      	* target.def (legitimate_constant_p): New hook.
      	* doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
      	(TARGET_LEGITIMATE_CONSTANT_P): ...this.
      	* doc/tm.texi: Regenerate.
      	* hooks.h (hook_bool_mode_rtx_true): Declare.
      	* hooks.c (hook_bool_mode_rtx_true): Define.
      	* system.h (LEGITIMATE_CONSTANT_P): Poison.
      	* calls.c (precompute_register_parameters): Replace uses of
      	LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
      	(emit_library_call_value_1): Likewise.
      	* expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
      	(compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
      	* ira-costs.c (scan_one_insn): Likewise.
      	* recog.c (general_operand, immediate_operand): Likewise.
      	* reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
      	* reload1.c (init_eliminable_invariants): Likewise.
      
      	* config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
      	mode argument.
      	* config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
      	argument.
      	(TARGET_LEGITIMATE_CONSTANT_P): Define.
      	* config/alpha/predicates.md (input_operand): Update call to
      	alpha_legitimate_constant_p.
      
      	* config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
      	* config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
      	(THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
      	* config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
      	(arm_legitimate_constant_p): New functions.
      	(arm_cannot_force_const_mem): Make static.
      
      	* config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
      
      	* config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
      	* config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
      	instead of bfin_legitimate_constant_p.
      	(bfin_legitimate_constant_p): Make static.  Add a mode argument.
      	(TARGET_LEGITIMATE_CONSTANT_P): Define.
      
      	* config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
      
      	* config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
      
      	* config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
      	* config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(frv_legitimate_constant_p): Make static.  Add a mode argument.
      
      	* config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
      	* config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
      	* config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
      
      	* config/i386/i386-protos.h (legitimate_constant_p): Delete.
      	* config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
      	* config/i386/i386.c (legitimate_constant_p): Rename to...
      	(ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
      	argument.
      	(ix86_cannot_force_const_mem): Update accordingly.
      	(ix86_legitimate_address_p): Likewise.
      	(TARGET_LEGITIMATE_CONSTANT_P): Define.
      	* config/i386/i386.md: Update commentary.
      
      	* config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
      	* config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
      	* config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(ia64_legitimate_constant_p): Make static.  Add a mode argument.
      
      	* config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
      
      	* config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
      	* config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
      	* config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(lm32_legitimate_constant_p): Make static.  Add a mode argument.
      
      	* config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
      	* config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
      	* config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
      
      	* config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(m32r_legitimate_constant_p): New function.
      
      	* config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
      	* config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
      	LEGITIMATE_CONSTANT_P.
      	(LEGITIMATE_CONSTANT_P): Delete.
      	* config/m68k/m68k.c (m68k_expand_prologue): Call
      	m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
      	(m68k_legitimate_constant_p): New function.
      	* config/m68k/m68k.md: Update comments.
      
      	* config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(mcore_legitimate_constant_p): New function.
      
      	* config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
      	* config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
      	* config/mep/mep.c (mep_legitimate_constant_p): Make static.
      	Add a mode argument.
      	(mep_legitimate_address): Update accordingly.
      	(TARGET_LEGITIMATE_CONSTANT_P): Define.
      
      	* config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
      	Delete.
      	* config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
      	* config/microblaze/microblaze.c (microblaze_const_double_ok): Make
      	static.  Check OP's mode for VOIDmode.
      	(microblaze_legitimate_constant_p): New function.
      	(TARGET_LEGITIMATE_CONSTANT_P): Define.
      
      	* config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/mips/mips.c (mips_legitimate_constant_p): New function.
      	(mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
      	(TARGET_LEGITIMATE_CONSTANT_P): Define.
      	* config/mips/predicates.md: Update comments.
      
      	* config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
      	* config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
      	* config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(mmix_legitimate_constant_p): Make static, return a bool, and take
      	a mode argument.
      	(mmix_print_operand_address): Update accordingly.
      
      	* config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
      	Delete.
      	* config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
      	* config/mn10300/mn10300.c (mn10300_legitimate_constant_p):
      	Make static.  Add a mode argument.
      	(TARGET_LEGITIMATE_CONSTANT_P): Define.
      
      	* config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
      
      	* config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(pa_legitimate_constant_p): New function.
      
      	* config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
      
      	* config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(pdp11_legitimate_constant_p): New function.
      
      	* config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(rs6000_legitimate_constant_p): New function.
      
      	* config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
      	(rx_legitimate_constant_p): ...this.
      	* config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/rx/rx.c (rx_is_legitimate_constant): Replace with...
      	(rx_legitimate_constant_p): ...this.
      	(TARGET_LEGITIMATE_CONSTANT_P): Define.
      	* config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
      
      	* config/s390/s390-protos.h (legitimate_constant_p): Delete.
      	* config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
      	* config/s390/s390.c (legitimate_constant_p): Rename to...
      	(s390_legitimate_constant_p): ...this.  Make static, return a bool,
      	and add a mode argument.
      	(TARGET_LEGITIMATE_CONSTANT_P): Define.
      
      	* config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
      
      	* config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(sh_legitimate_constant_p): New function.
      
      	* config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
      	* config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(legitimate_constant_p): Rename to...
      	(sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
      	argument.
      	(constant_address_p): Update accordingly.
      
      	* config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
      	argument and return a bool.
      	* config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(spu_legitimate_constant_p): Add a mode argument and return a bool.
      	(spu_rtx_costs): Update accordingly.
      	* config/spu/predicates.md (vec_imm_operand): Likewise.
      
      	* config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
      
      	* config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/v850/v850.c (v850_legitimate_constant_p): New function.
      	(TARGET_LEGITIMATE_CONSTANT_P): Define.
      
      	* config/vax/vax-protos.h (legitimate_constant_p): Delete.
      	* config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
      	* config/vax/vax.c (legitimate_constant_p): Likewise.
      
      	* config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(xtensa_legitimate_constant_p): New function.
      
      From-SVN: r172814
      Richard Sandiford committed
  4. 20 Apr, 2011 1 commit
    • remove useless if-before-free tests · 04695783
      Change "if (E) free (E);" to "free (E);" everywhere except in the
      libgo/, intl/, zlib/ and classpath/ directories.
      Also transform equivalent variants like
      "if (E != NULL) free (E);" and allow an extra cast on the
      argument to free.  Otherwise, the tested and freed "E"
      expressions must be identical, modulo white space.
      
      From-SVN: r172785
      Jim Meyering committed
  5. 16 Mar, 2011 3 commits
    • emit-rtl.c (try_split): Don't call copy_call_info debug hook. · c2969d8e
      	* emit-rtl.c (try_split): Don't call copy_call_info debug hook.
      	* calls.c: Remove debug.h include.
      	(emit_call_1): Don't call virtual_call_token debug hook.
      	* dwarf2out.c (debug_dcall_section, debug_vcall_section,
      	dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
      	vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
      	size_of_dcall_table, output_dcall_table, size_of_vcall_table,
      	output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
      	vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
      	dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
      	dwarf2out_virtual_call): Remove.
      	(dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
      	copy_call_info and virtual_call hooks.
      	(dwarf2out_init): Don't initialize vcall_insn_table,
      	debug_dcall_section and debug_vcall_section.
      	(prune_unused_types): Don't mark nodes from dcall_table.
      	(dwarf2out_finish): Don't output dcall or vcall tables.
      	* final.c (final_scan_insn): Don't call direct_call or
      	virtual_call debug hooks.
      	* debug.h (struct gcc_debug_hooks): Remove direct_call,
      	virtual_call_token, copy_call_info and virtual_call hooks.
      	(debug_nothing_uid): Remove prototype.
      	* sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
      	copy_call_info and virtual_call hooks.
      	* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
      	* dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
      	* debug.c (do_nothing_debug_hooks): Likewise.
      	(debug_nothing_uid): Remove.
      	* doc/invoke.texi (-fenable-icf-debug): Remove.
      	* common.opt (-fenable-icf-debug): Likewise.
      
      	* g++.dg/debug/dwarf2/icf.C: Adjust for -fenable-icf-debug removal.
      
      From-SVN: r171037
      Jakub Jelinek committed
    • calls.c (emit_call_1): Set MEM_EXPR on call's MEM. · 325f5379
      	* calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
      	* var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
      	call's MEM.  Handle functions returning aggregate through a hidden
      	first pointer.  For virtual calls add clobbered pc to call arguments
      	chain.
      	* dwarf2out.c (gen_subprogram_die): Emit
      	DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
      	can't be emitted.
      
      From-SVN: r171036
      Jakub Jelinek committed
    • final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION. · 2b1c5433
      	* final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
      	Call var_location debug hook even on CALL_INSNs.
      	(rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
      	* rtl.def (ENTRY_VALUE): New.
      	* dwarf2out.c: Include cfglayout.h.
      	(dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
      	output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
      	(struct call_arg_loc_node): New type.
      	(call_arg_locations, call_arg_loc_last, block_map, call_site_count,
      	tail_call_site_count): New variables.
      	(dwarf_tag_name): Handle DW_TAG_GNU_call_site and
      	DW_TAG_GNU_call_site_parameter.
      	(dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
      	DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
      	DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
      	DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
      	and DW_AT_GNU_all_source_call_sites.
      	(mem_loc_descriptor): Handle ENTRY_VALUE.
      	(add_src_coords_attributes): Don't add enything if
      	DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
      	(dwarf2out_abstract_function): Save and clear call_arg_location,
      	call_site_count and tail_call_site_count around dwarf2out_decl call.
      	(gen_call_site_die): New function.
      	(gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
      	(gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
      	(dwarf2out_function_decl): Clear call_arg_locations,
      	call_arg_loc_last, set call_site_count and tail_call_site_count
      	to -1 and free block_map.
      	(dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
      	CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
      	followed by any real instructions.
      	(dwarf2out_begin_function): Set call_site_count and
      	tail_call_site_count to 0.
      	(resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
      	is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
      	attempt to force a DIE for it and worst case remove the attribute.
      	(resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
      	check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
      	the decl itself.
      	* var-tracking.c: Include tm_p.h.
      	(vt_stack_adjustments): For calls call note_register_arguments.
      	(argument_reg_set): New variable.
      	(add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
      	ensure the VALUE is resolved.
      	(call_arguments): New variable.
      	(prepare_call_arguments): New function.
      	(add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
      	(struct expand_loc_callback_data): Add ignore_cur_loc field.
      	(vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
      	always use the best expression.
      	(vt_expand_loc): Add ignore_cur_loc argument.
      	(vt_expand_loc_dummy): Clear ignore_cur_loc field.
      	(emit_note_insn_var_location): Adjust vt_expand_loc callers.
      	(emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
      	note for all calls.
      	(vt_add_function_parameter): Use cselib_lookup_from_insn.
      	If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
      	argument.  Don't call cselib_preserve_only_values and
      	cselib_reset_table.
      	(note_register_arguments): New function.
      	(vt_initialize): Compute argument_reg_set.  Call
      	vt_add_function_parameters before processing basic blocks instead of
      	afterwards.  For calls call prepare_call_arguments before calling
      	cselib_process_insn.
      	* print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
      	* Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
      	(var-tracking.o): Depend on $(TM_P_H).
      	* cfglayout.h (insn_scope): New prototype.
      	* gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
      	* cfglayout.c (insn_scope): No longer static.
      	* insn-notes.def (CALL_ARG_LOCATION): New.
      	* calls.c (expand_call, emit_library_call_value_1): Put USEs for
      	MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
      	* integrate.c (set_block_origin_self, set_block_abstract_flags): Do
      	nothing for DECL_EXTERNAL BLOCK_VARS.
      cp/
      	* cp-objcp-common.c (cp_function_decl_explicit_p): Don't crash if
      	DECL_LANG_SPECIFIC is NULL.
      include/
      	* dwarf2.h (DW_TAG_GNU_call_site, DW_TAG_GNU_call_site_parameter,
      	DW_AT_GNU_call_site_value, DW_AT_GNU_call_site_data_value,
      	DW_AT_GNU_call_site_target, DW_AT_GNU_call_site_target_clobbered,
      	DW_AT_GNU_tail_call, DW_AT_GNU_all_tail_call_sites,
      	DW_AT_GNU_all_call_sites,, DW_AT_GNU_all_source_call_sites,
      	DW_OP_GNU_entry_value): New.
      
      From-SVN: r171033
      Jakub Jelinek committed
  6. 03 Mar, 2011 1 commit
    • explow.c (emit_stack_save): Remove 'after' parameter. · 9eac0f2a
              * explow.c (emit_stack_save): Remove 'after' parameter.
              (emit_stack_restore): Likewise.
              * expr.h: Update to match.
              * builtins.c, calls.c, stmt.c: Likewise.
              * config/alpha/alpha.md, config/avr/avr.md: Likewise.
              * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
              * function.c (expand_function_end): Insert the emit_stack_save
              sequence before parm_birth_insn instead of after.
      
      From-SVN: r170663
      Richard Henderson committed
  7. 16 Nov, 2010 1 commit
    • builtins.c (std_gimplify_va_arg_expr): Use targetm.calls.function_arg_boundary. · c2ed6cf8
      	* builtins.c (std_gimplify_va_arg_expr): Use
      	targetm.calls.function_arg_boundary.
      	* function.c (assign_parms, locate_and_pad_parm): Likewise.
      	* calls.c (struct arg_data): Update comment.
      	* defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
      	* target.def (function_arg_boundary): Define.
      	* targhooks.h (default_function_arg_boundary): Declare.
      	* targhooks.c (default_function_arg_boundary): Define.
      	* doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
      	TARGET_FUNCTION_ARG_BOUNDARY.
      	(FUNCTION_ARG_BOUNDARY): Delete.
      	(TARGET_FUNCTION_ARG_BOUNDARY): New.
      	* doc/tm.texi: Regenerate.
      	* system.h (FUNCTION_ARG_BOUNDARY): Poison.
      	* config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
      	* config/arc/arc.c (arc_function_arg_boundary): Define.
      	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
      	* config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
      	* config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
      	* config/arm/arm.c (arm_needs_doubleword_align): Make static.
      	(arm_function_arg_boundary): Define.
      	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
      	* config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
      	* config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
      	* config/frv/frv.c (frv_function_arg_boundary): Make static.
      	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
      	* config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
      	* config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
      	* config/i386/i386.c (ix86_function_arg_boundary): Make static.
      	(ix86_compat_function_arg_boundary): Take and return unsigned int.
      	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
      	* config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
      	* config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
      	* config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
      	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
      	* config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
      	* config/m32c/m32c.c (m32c_function_arg_boundary): Define.
      	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
      	* config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
      	* config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
      	* config/mcore/mcore.c (mcore_function_arg_boundary): Define.
      	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
      	* config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
      	* config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
      	* config/mips/mips.c (mips_function_arg_boundary): Make static.
      	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
      	* config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
      	* config/pa/pa.c (pa_function_arg_boundary): Define.
      	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
      	* config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
      	* config/picochip/picochip-protos.h
      	(picochip_get_function_arg_boundary): Delete.
      	* config/picochip/picochip.c (picochip_get_function_arg_boundary):
      	Rename to...
      	(picochip_function_arg_boundary): ...this.  Make static.
      	(picochip_function_arg, picochip_arg_partial_bytes): Adjust.
      	(picochip_arg_advance): Adjust.
      	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
      	* config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
      	* config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
      	* config/rs6000/rs6000.c (function_arg_boundary): Rename to...
      	(rs6000_function_arg_boundary): ...this.  Make static.
      	(rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
      	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
      	* config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
      	* config/rx/rx.c (rx_function_arg_boundary): Define.
      	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
      	* config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
      	* config/sparc/sparc.c (sparc_function_arg_boundary): Define.
      	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
      	* config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
      	* config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
      	* config/xtensa/xtensa.c (function_arg_boundary): Rename to...
      	(xtensa_function_arg_boundary): ...this.  Make static.
      	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
      
      From-SVN: r166803
      Nathan Froyd committed
  8. 22 Oct, 2010 1 commit
    • expr.c (emit_group_load_1): Update calls to extract_bit_field. · 62519f7f
      	* expr.c (emit_group_load_1): Update calls to extract_bit_field.
      	(copy_blkmode_from_reg): Likewise.
      	(read_complex_part): Likewise.
      	(expand_expr_real_1): Calculate packedp and pass it to
      	extract_bit_field.
      	* expr.h (extract_bit_field): Update declaration.
      	* calls.c (store_unaligned_arguments_into_pseudos): Update call
      	to extract_bit_field.
      	* expmed.c (extract_fixed_bit_field): Update calls to
      	extract_fixed_bit_field.
      	(store_split_bit_field): Likewise.
      	(extract_bit_field_1): Add new argument packedp.
      	(extract_bit_field): Add new argument packedp.
      	(extract_fixed_bit_field): Add new argument packedp and let
      	packed attribute override volatile.
      	* stmt.c (expand_return): Update call to extract_bit_field.
      
      From-SVN: r165799
      Jie Zhang committed
  9. 09 Oct, 2010 1 commit
    • re PR rtl-optimization/33721 ([meta-bug] Gcc can't properly align stack variable) · 3a42502d
      	PR rtl-opt/33721
      	* explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
      	remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
      	required_align, tidy the code a bit.  Emit split_stack code in the
      	right place.  Mark the return value with the alignment properly.
      	* expr.h (allocate_dynamic_stack_space): Update decl.
      	* builtins.c (expand_builtin_apply): Update call to
      	allocate_dynamic_stack_space.
      	(expand_builtin_alloca): Likewise.  Remove TARGET parameter.
      	* calls.c (initialize_argument_information): Update call to
      	allocate_dynamic_stack_space.
      	(expand_call): Likewise.
      
      	* cfgexpand.c (get_decl_align_unit): Don't limit alignment.
      	Don't update_stack_alignment here.
      	(alloc_stack_frame_space): Make ALIGN unsigned.
      	(stack_var_cmp): Sort by alignment too.
      	(partition_stack_vars): Don't merge large and small alignment vars.
      	(expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
      	Take care when BASE is not virtual_stack_vars_rtx.
      	(expand_stack_vars): Allocate dynamic stack space for large
      	alignment variables.
      	(expand_one_stack_var): Update all to expand_one_stack_var_at.
      	(defer_stack_allocation): True for large alignment vars.
      	(update_stack_alignment): Merge into ...
      	(expand_one_var): ... here.
      	(gimple_expand_cfg): Place code from expand_stack_vars.
      
      From-SVN: r165240
      Richard Henderson committed
  10. 24 Sep, 2010 2 commits
    • extend.texi: (attribute leaf): Document. · 46a4da10
      	* doc/extend.texi: (attribute leaf): Document.
      	* tree.c (local_define_builtin): Handle ECF_LEAF.
      	(build_common_builtin_nodes): Set ECF_LEAF where needed.
      	* tree.h (ECF_LEAF): New.
      	* ipa-reference.c (propagate_bits): For leaf calls propagate ever overwrittable
      	and unavailable functions.
      	(ipa_init): Put all_module_statics into optimization_summary_obstack.
      	(copy_global_bitmap): Do not copy all_module_statics.
      	(read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
      	(propagate): Handle overwritable and unavailable leaf functions;
      	initialize global info for overwritable and unavailable leaf functions;
      	do not free all module statics.
      	(ipa_reference_get_not_read_global, ipa_reference_get_not_written_global):
      	leaf calls don't clobber local statics.
      	* calls.c (flags_from_decl_or_type): Handle leaf.
      	* tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
      	abnormal gotos.
      
      	* c-common.c (handle_leaf_attribute): New function.
      	(struct attribute_spec c_common_att): Add leaf.
      
      	* gcc.dg/tree-ssa/leaf.c: New testcase.
      
      From-SVN: r164606
      Jan Hubicka committed
    • 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
  11. 17 Sep, 2010 1 commit
    • Make sure that all variable sized adjustments are multiple of preferred · 2b3ded42
      stack boundary after stack alignment.
      
      gcc/
      
      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.
      
      gcc/testsuite/
      
      2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR middle-end/45234
      	* gcc.dg/torture/stackalign/alloca-5.c: New.
      
      From-SVN: r164377
      H.J. Lu committed
  12. 02 Sep, 2010 1 commit
    • target.def (class_likely_spilled_p): New hook. · 07b8f0a8
      	* target.def (class_likely_spilled_p): New hook.
      	* doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
      	* doc/tm.texi: Regenerate.
      	* targhooks.c (default_class_likely_spilled_p): New function.
      	* targhooks.h (default_class_likely_spilled_p): Declare.
      	* regs.h (CLASS_LIKELY_SPILLED_P): Remove.
      	* combine.c: (cant_combine_insn_p, likely_spilled_retval_p): Use
      	TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
      	Use fixed_reg_set instead of fixed_regs.
      	* cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
      	* calls.c (avoid_likely_spilled_reg): Ditto.
      	* ira-conflicts.c: (ira_build_conflicts): Ditto.
      	* ira.c (update_equiv_regs): Ditto.
      	* mode-switching.c (create_pre_exit): Ditto.
      	* regmove.c (find_matches): Ditto.
      	(regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target
      	hook.
      	* reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
      	(small_register_class_p): New inline function.
      	(push_secondary_reload, find_reusable_reload, find_reloads): Use
      	small_register_class_p instead of SMALL_REGISTER_CLASS_P.
      
      	* config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
      	* config/i386/i386.c (ix86_class_likely_spilled_p): New.
      	(TARGET_CLASS_LIKELY_SPILLED_P): Define.
      
      From-SVN: r163779
      Anatoly Sokolov committed
  13. 30 Aug, 2010 1 commit
    • Stack usage support · d3c12306
      	Stack usage support
      	* common.opt (-fstack-usage): New option.
      	* doc/invoke.texi (Debugging options): Document it.
      	* builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
      	allocate_dynamic_stack_space.
      	(expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
      	and propagate it to allocate_dynamic_stack_space.
      	(expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
      	* calls.c (initialize_argument_information): Pass TRUE as 4th
      	argument to allocate_dynamic_stack_space.
      	(expand_call): Set current_function_has_unbounded_dynamic_stack_size
      	to 1 when pushing a variable-sized argument onto the stack.  Pass
      	TRUE as 4th argument to allocate_dynamic_stack_space.
      	Update current_function_pushed_stack_size.
      	(emit_library_call_value_1): Likewise.
      	* explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
      	CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
      	attempt to find an upper bound.  Remove redundant code for the
      	SETJMP_VIA_SAVE_AREA case.
      	* expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
      	* function.h (struct stack_usage): New structure.
      	(current_function_static_stack_size): New macro.
      	(current_function_dynamic_stack_size): Likewise.
      	(current_function_pushed_stack_size): Likewise.
      	(current_function_dynamic_alloc_count): Likewise.
      	(current_function_has_unbounded_dynamic_stack_size): Likewise.
      	(current_function_allocates_dynamic_stack_space): Likewise.
      	(struct function): Add new field 'su'.
      	* function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
      	add the value of the dynamic offset to the dynamic stack usage.
      	(gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
      	for variable-sized objects.
      	(prepare_function_start): Allocate cfun->su if flag_stack_usage.
      	(rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
      	* gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
      	BUILT_IN_ALLOCA for variable-sized objects.
      	* output.h (output_stack_usage): Declare.
      	* toplev.c (stack_usage_file): New file pointer.
      	(output_stack_usage): New function.
      	(open_auxiliary_file): Likewise.
      	(lang_dependent_init): Open file if flag_stack_usage is set.
      	(finalize): Close file if stack_usage_file is not null.
      	* tree.h (ALLOCA_FOR_VAR_P): New macro.
      	* config/alpha/alpha.c (compute_frame_size): New function.
      	(alpha_expand_prologue): Use it.
      	(alpha_start_function): Likewise.
      	(alpha_expand_epilogue): Likewise.  Set stack usage info.
      	* config/i386/i386.c (ix86_expand_prologue): Likewise.
      	* config/ia64/ia64.c (ia64_expand_prologue): Likewise.
      	* config/mips/mips.c (mips_expand_prologue): Likewise.
      	* config/pa/pa.c (hppa_expand_prologue): Likewise.
      	* config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
      	* config/sparc/sparc.c (sparc_expand_prologue): Likewise.
      testsuite/
      	* lib/gcc-dg.exp (cleanup-stack-usage): New procedure.
      	* lib/scanasm.exp (scan-stack-usage): Likewise.
      	(scan-stack-usage-not): Likewise.
      	* gcc.dg/stack-usage-1.c: New test.
      	* gcc.target/i386/stack-usage-realign.c: Likewise.
      
      From-SVN: r163660
      Eric Botcazou committed
  14. 26 Aug, 2010 1 commit
    • re PR tree-optimization/44485 (ICE in get_expr_operands, at tree-ssa-operands.c:1020) · 9e3920e9
      	PR tree-optimization/44485
      	* calls.c (flags_from_decl_or_type): For const or pure
      	noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
      	together with ECF_CONST resp. ECF_PURE.
      	* builtins.c (expand_builtin): Use flags_from_decl_or_type
      	instead of querying flags directly.
      	* tree-ssa-loop-niter.c (finite_loop_p): Likewise.
      	* tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
      
      	* gcc.dg/pr44485.c: New test.
      
      From-SVN: r163568
      Jakub Jelinek committed
  15. 22 Jul, 2010 1 commit
  16. 19 Jul, 2010 1 commit
  17. 08 Jul, 2010 1 commit
    • toplev.h: Do not include diagnostic-core.h. · 718f9c0f
      2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	* toplev.h: Do not include diagnostic-core.h.
      	Include diagnostic-core.h in every file that includes toplev.h.
      	* c-tree.h: Do not include toplev.h.
      	* pretty-print.h: Update comment.
      	* Makefile.in: Update dependencies.
      	* alias.c: Include diagnostic-core.h in every file that includes
      	toplev.h.
      	* attribs.c: Likewise.
      	* auto-inc-dec.c: Likewise.
      	* bb-reorder.c: Likewise.
      	* bt-load.c: Likewise.
      	* caller-save.c: Likewise.
      	* calls.c: Likewise.
      	* cfg.c: Likewise.
      	* cfganal.c: Likewise.
      	* cfgbuild.c: Likewise.
      	* cfgcleanup.c: Likewise.
      	* cfghooks.c: Likewise.
      	* cfgloop.c: Likewise.
      	* combine.c: Likewise.
      	* config/alpha/alpha.c: Likewise.
      	* config/arc/arc.c: Likewise.
      	* config/arm/arm.c: Likewise.
      	* config/arm/pe.c: Likewise.
      	* config/avr/avr.c: Likewise.
      	* config/bfin/bfin.c: Likewise.
      	* config/cris/cris.c: Likewise.
      	* config/crx/crx.c: Likewise.
      	* config/darwin-c.c: Likewise.
      	* config/darwin.c: Likewise.
      	* config/fr30/fr30.c: Likewise.
      	* config/frv/frv.c: Likewise.
      	* config/h8300/h8300.c: Likewise.
      	* config/host-darwin.c: Likewise.
      	* config/i386/i386.c: Likewise.
      	* config/i386/netware.c: Likewise.
      	* config/i386/nwld.c: Likewise.
      	* config/i386/winnt-cxx.c: Likewise.
      	* config/i386/winnt-stubs.c: Likewise.
      	* config/i386/winnt.c: Likewise.
      	* config/ia64/ia64-c.c: Likewise.
      	* config/ia64/ia64.c: Likewise.
      	* config/iq2000/iq2000.c: Likewise.
      	* config/lm32/lm32.c: Likewise.
      	* config/m32c/m32c-pragma.c: Likewise.
      	* config/m32c/m32c.c: Likewise.
      	* config/m32r/m32r.c: Likewise.
      	* config/m68hc11/m68hc11.c: Likewise.
      	* config/m68k/m68k.c: Likewise.
      	* config/mcore/mcore.c: Likewise.
      	* config/mep/mep-pragma.c: Likewise.
      	* config/mep/mep.c: Likewise.
      	* config/mmix/mmix.c: Likewise.
      	* config/mn10300/mn10300.c: Likewise.
      	* config/moxie/moxie.c: Likewise.
      	* config/pa/pa.c: Likewise.
      	* config/pdp11/pdp11.c: Likewise.
      	* config/picochip/picochip.c: Likewise.
      	* config/rs6000/rs6000-c.c: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/rx/rx.c: Likewise.
      	* config/s390/s390.c: Likewise.
      	* config/score/score.c: Likewise.
      	* config/score/score3.c: Likewise.
      	* config/score/score7.c: Likewise.
      	* config/sh/sh.c: Likewise.
      	* config/sh/symbian-base.c: Likewise.
      	* config/sh/symbian-c.c: Likewise.
      	* config/sh/symbian-cxx.c: Likewise.
      	* config/sol2-c.c: Likewise.
      	* config/sol2.c: Likewise.
      	* config/sparc/sparc.c: Likewise.
      	* config/spu/spu.c: Likewise.
      	* config/stormy16/stormy16.c: Likewise.
      	* config/v850/v850-c.c: Likewise.
      	* config/v850/v850.c: Likewise.
      	* config/vax/vax.c: Likewise.
      	* config/vxworks.c: Likewise.
      	* config/xtensa/xtensa.c: Likewise.
      	* convert.c: Likewise.
      	* cse.c: Likewise.
      	* cselib.c: Likewise.
      	* dbgcnt.c: Likewise.
      	* dbxout.c: Likewise.
      	* ddg.c: Likewise.
      	* dominance.c: Likewise.
      	* emit-rtl.c: Likewise.
      	* explow.c: Likewise.
      	* expmed.c: Likewise.
      	* fixed-value.c: Likewise.
      	* fold-const.c: Likewise.
      	* fwprop.c: Likewise.
      	* gcse.c: Likewise.
      	* ggc-common.c: Likewise.
      	* ggc-page.c: Likewise.
      	* ggc-zone.c: Likewise.
      	* gimple-low.c: Likewise.
      	* gimplify.c: Likewise.
      	* graph.c: Likewise.
      	* haifa-sched.c: Likewise.
      	* ifcvt.c: Likewise.
      	* implicit-zee.c: Likewise.
      	* integrate.c: Likewise.
      	* ira-build.c: Likewise.
      	* ira-color.c: Likewise.
      	* ira-conflicts.c: Likewise.
      	* ira-costs.c: Likewise.
      	* ira-lives.c: Likewise.
      	* ira.c: Likewise.
      	* lists.c: Likewise.
      	* loop-doloop.c: Likewise.
      	* loop-iv.c: Likewise.
      	* lto-opts.c: Likewise.
      	* lto-symtab.c: Likewise.
      	* main.c: Likewise.
      	* modulo-sched.c: Likewise.
      	* optabs.c: Likewise.
      	* params.c: Likewise.
      	* plugin.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* postreload.c: Likewise.
      	* predict.c: Likewise.
      	* profile.c: Likewise.
      	* real.c: Likewise.
      	* regcprop.c: Likewise.
      	* reginfo.c: Likewise.
      	* regmove.c: Likewise.
      	* reorg.c: Likewise.
      	* resource.c: Likewise.
      	* rtl.c: Likewise.
      	* rtlanal.c: Likewise.
      	* sched-deps.c: Likewise.
      	* sched-ebb.c: Likewise.
      	* sched-rgn.c: Likewise.
      	* sdbout.c: Likewise.
      	* sel-sched-dump.c: Likewise.
      	* sel-sched-ir.c: Likewise.
      	* simplify-rtx.c: Likewise.
      	* stmt.c: Likewise.
      	* stor-layout.c: Likewise.
      	* store-motion.c: Likewise.
      	* targhooks.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-dump.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-nomudflap.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-optimize.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* tree-phinodes.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-loop.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-ssa-uninit.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-vect-data-refs.c: Likewise.
      	* tree-vect-loop-manip.c: Likewise.
      	* tree-vect-loop.c: Likewise.
      	* tree-vect-patterns.c: Likewise.
      	* tree-vect-stmts.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* varasm.c: Likewise.
      	* vec.c: Likewise.
      	* web.c: Likewise.
      	* xcoffout.c: Likewise.
      
      c-family/
      	* c-common.h: Include diagnostic-core.h. Error if already
      	included.
      	* c-semantics.c: Do not define GCC_DIAG_STYLE here.
      cp/
      	* cp-tree.h: Do not include toplev.h.
      	
      java/
      	* boehm.c: Include diagnostic-core.h in every file that includes
      	toplev.h.
      	* class.c: Likewise.
      	* constants.c: Likewise.
      	* decl.c: Likewise.
      	* except.c: Likewise.
      	* expr.c: Likewise.
      	* jcf-parse.c: Likewise.
      	* mangle.c: Likewise.
      	* mangle_name.c: Likewise.
      	* resource.c: Likewise.
      	* typeck.c: Likewise.
      	* verify-glue.c: Likewise.
      ada/
      	* gcc-interface/utils.c: Include diagnostic-core.h in every file
      	that includes toplev.h.
      lto/
      	* lto-coff.c: Include diagnostic-core.h in every file that
      	includes toplev.h.
      	* lto-elf.c: Likewise.
      	* lto-lang.c: Likewise.
      	* lto-macho.c: Likewise.
      
      From-SVN: r161943
      Manuel López-Ibáñez committed
  18. 29 Jun, 2010 2 commits
    • 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
  19. 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
  20. 08 Apr, 2010 1 commit
    • tree.h (TREE_ADDRESSABLE): Document its effect for function types. · d47d0a8d
      	* tree.h (TREE_ADDRESSABLE): Document its effect for function types.
      	* calls.c (expand_call): Pass the function type to aggregate_value_p.
      	* function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
      	the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
      	function type instead.  Reorder and simplify checks.
      
      	* gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
      ada/
      	* gcc-interface/ada-tree.h (TYPE_RETURNS_UNCONSTRAINED_P): Rename into.
      	(TYPE_RETURN_UNCONSTRAINED_P): ...this.
      	(TYPE_RETURNS_BY_REF_P): Rename into.
      	(TYPE_RETURN_BY_DIRECT_REF_P): ...this.
      	(TYPE_RETURNS_BY_TARGET_PTR_P): Delete.
      	* gcc-interface/gigi.h (create_subprog_type): Adjust parameter names.
      	(build_return_expr): Likewise.
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>:
      	Rename local variables.  If the return Mechanism is By_Reference, pass
      	return_by_invisible_ref_p to create_subprog_type instead of toggling
      	TREE_ADDRESSABLE.  Test return_by_invisible_ref_p in order to annotate
      	the mechanism.  Use regular return for contrained types with non-static
      	size and return by invisible reference for unconstrained return types
      	with default discriminants.  Update comment.
      	* gcc-interface/trans.c (Subprogram_Body_to_gnu): If the function
      	returns by invisible reference, turn the RESULT_DECL into a pointer.
      	Do not handle DECL_BY_REF_P in the CICO case here.
      	(call_to_gnu): Remove code handling return by target pointer.  For a
      	function call, if the return type has non-constant size, generate the
      	assignment with an INIT_EXPR.
      	(gnat_to_gnu) <N_Return_Statement>: Remove dead code in the CICO case.
      	If the function returns by invisible reference, build the copy return
      	operation manually.
      	(add_decl_expr): Initialize the variable with an INIT_EXPR.
      	* gcc-interface/utils.c (create_subprog_type): Adjust parameter names.
      	Adjust for renaming of macros.  Copy the node only when necessary.
      	(create_subprog_decl): Do not toggle TREE_ADDRESSABLE on the return
      	type, only change DECL_BY_REFERENCE on the RETURN_DECL.
      	(convert_from_reference): Delete.
      	(is_byref_result): Likewise.
      	(gnat_genericize_r): Likewise.
      	(gnat_genericize): Likewise.
      	(end_subprog_body): Do not call gnat_genericize.
      	* gcc-interface/utils2.c (build_binary_op) <INIT_EXPR>: New case.
      	(build_return_expr): Adjust parameter names, logic and comment.
      
      From-SVN: r158139
      Eric Botcazou committed
  21. 02 Apr, 2010 1 commit
    • Make-lang.in, [...]: Update copyright years. · c75c517d
      	* ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c, 
      	basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
      	collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
      	config/alpha/predicates.md, config/arm/arm.md,
      	config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
      	config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
      	config/darwin9.h, config/darwin.c, config/darwin.h,
      	config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
      	config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
      	config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
      	config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
      	config/mips/mips.md, config/mn10300/mn10300.c,
      	config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
      	config/rs6000/aix.h, config/rs6000/dfp.md,
      	config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
      	config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
      	config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
      	config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
      	config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
      	config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
      	c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
      	diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
      	doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
      	doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
      	fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
      	gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
      	graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
      	graphite-dependences.c, graphite-poly.c, graphite-poly.h,
      	graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
      	graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
      	intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
      	ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
      	ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
      	loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
      	objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
      	opt-functions.awk, opth-gen.awk, params.def, passes.c,
      	postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
      	rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
      	store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
      	tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
      	tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
      	tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
      	tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
      	tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
      	tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
      	tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
      	tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
      	tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
      	tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
      	unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
      
      From-SVN: r157950
      Steven Bosscher committed
  22. 21 Jan, 2010 1 commit
    • tree.h (TYPE_TRANSPARENT_UNION): Replace with ... · ebf0bf7f
      	* tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
      	(TYPE_TRANSPARENT_AGGR): this, for union and record.
      	* calls.c (initialize argument_information): Handle it.
      	* c-common.c (handle_transparent_union_attribute): Use new name.
      	* c-decl.c (finish_struct): Ditto.
      	* c-typeck.c (type_lists_compatible_p): Ditto.
      	(convert_for_assignment): Use new name and also handle record.
      	* function.c (aggregate_value_p): Handle it.
      	(pass_by_reference): Ditto.
      	(assign_parm_data_types): Ditto.
      	* print-tree.c (print_node): Ditto.
      	* lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
      	* lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
      	* tree.c (first_field): New fn.
      
      gcc/cp/
      	* mangle.c (write_type): Mangle transparent record as member type.
      	* semantics.c (begin_class_definition): Recognize decimal classes
      	and set TYPE_TRANSPARENT_AGGR.
      
      Co-Authored-By: Jason Merrill <jason@redhat.com>
      
      From-SVN: r156106
      Janis Johnson committed
  23. 28 Nov, 2009 1 commit
    • matrix-reorg.c (analyze_matrix_allocation_site): Remove unused malloc_fname variable. · 0f900dfa
      	* matrix-reorg.c (analyze_matrix_allocation_site): Remove unused
      	malloc_fname variable.
      	(check_allocation_function): Remove unused gsi and bb_level_0
      	variables.
      	(transform_access_sites): Remove unused d_type_size and d_type_size_k
      	variables.
      	* omega.c (resurrect_subs): Remove unused n variable.
      	(omega_solve_geq): Remove unused neweqns variable.
      	* lto-streamer-in.c (lto_read_tree): Remove unused end_marker variable.
      	* tree-inline.c (declare_return_variable): Remove USE_P argument,
      	return use instead of var.
      	(remap_decl, remap_block): Remove unused fn variable.
      	(expand_call_inline): Remove unused retvar variable, adjust
      	declare_return_variable caller.
      	(optimize_inline_calls): Remove unused prev_fn variable.
      	* tree-vect-slp.c (vect_analyze_slp_instance): Remove unused ncopies
      	variable.
      	(vect_create_mask_and_perm): Remove unused group_size and dr_chain_size
      	variables.
      	* tree-ssa-loop-niter.c (split_to_var_and_offset): Handle MINUS_EXPR
      	properly.
      	* tree-vect-loop.c (vect_analyze_loop_form): Remove unused backedge
      	variable.
      	(vect_create_epilog_for_reduction): Remove unused bytesize variable.
      	* omp-low.c (workshare_safe_to_combine_p): Remove par_entry_bb
      	parameter.  Remove unused par_stmt variable.
      	(determine_parallel_type): Adjust workshare_safe_to_combine_p caller.
      	(expand_omp_sections): Remove unused l1 variable.
      	(lower_omp_for): Remove unused ilist variable.
      	* tree-loop-distribution.c (mark_nodes_having_upstream_mem_writes):
      	Remove unused has_upstream_mem_write_p variable.
      	* recog.c (decode_asm_operands): Remove unused noperands variable.
      	* tree-ssa-alias.c (refs_may_alias_p_1): Remove unused size1 and
      	size2 variable.
      	* libgcov.c (__gcov_merge_delta): Remove unused last variable.
      	* tree-call-cdce.c (gen_conditions_for_pow_int_base): Remove unused
      	base_nm variable.
      	(gen_conditions_for_pow): Remove unused ec variable.
      	* tree-ssa-sccvn.c (vn_reference_lookup_3): Remove unused size
      	variable.
      	* ipa-struct-reorg.c (program_redefines_malloc_p): Remove unused
      	fndecl variable.
      	* tree-ssa-sink.c (statement_sink_location): Remove unused code
      	variable.
      	* regmove.c (copy_src_to_dest): Remove unused insn_uid and move_uid
      	variables.
      	* tree-complex.c (create_one_component_var): Remove unused inner_type
      	variable.
      	* calls.c (emit_call_1): Don't GEN_INT (struct_value_size)
      	unnecessarily when GEN_*CALL omits that argument.
      	* regrename.c (regrename_optimize): Remove unused regs_seen variable.
      	(build_def_use): Remove unused icode variable.
      	* ipa-pure-const.c (check_call): Remove unused callee and avail
      	variables.
      	* tree-dfa.c (add_referenced_var): Remove unused v_ann variable.
      	* tree-vect-patterns.c (vect_recog_pow_pattern): Remove unused type
      	variable.
      	(vect_pattern_recog): Remove unused stmt variable.
      	* sel-sched-ir.c (make_regions_from_the_rest): Remove unused
      	new_regions variable.
      	* postreload.c (reload_cse_simplify_operands): Remove unused mode
      	variable.
      	* tree-parloops.c (create_call_for_reduction_1): Remove unused
      	addr_type variable.
      	(create_parallel_loop): Remove unused res variable.
      	(gen_parallel_loop): Remove unused nloop variable.
      	* tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
      	* value-prof.c (gimple_mod_subtract_transform,
      	gimple_stringops_transform): Remove unused value variable.
      	(gimple_stringops_values_to_profile): Remove unused fcode variable.
      	* tree-vrp.c (register_new_assert_for): Remove unused found variable.
      	(vrp_visit_switch_stmt): Remove unused n variable.
      	* tree-vect-stmts.c (vectorizable_conversion): Remove unused expr
      	variable.
      	(vectorizable_operation): Remove unused shift_p variable.
      	(vectorizable_store): Remove unused first_stmt_vinfo variable.
      	* tree-ssa-operands.c (add_stmt_operand): Remove unused v_ann variable.
      	* tree-vect-data-refs.c (vect_analyze_data_refs): Remove unused bb
      	variable.
      	(vect_permute_store_chain): Remove unused scalar_dest variable.
      	(vect_supportable_dr_alignment): Remove unused invariant_in_outerloop
      	variable.
      	* tree-ssa-threadupdate.c (thread_single_edge): Remove unused
      	local_info variable.
      	* tree-optimize.c (tree_rest_of_compilation): Remove unused node
      	variable.
      	* optabs.c (expand_binop): Remove unused equiv_value variable.
      	(emit_libcall_block): Remove unused prev variable.
      	(init_optabs): Remove unused int_mode variable.
      	* tree-ssa-structalias.c (scc_visit): Remove unused have_ref_node
      	variable.
      	(do_structure_copy): Remove unused lhsbase and rhsbase variables.
      	(find_func_aliases): Remove unused rhstype variable.
      	(ipa_pta_execute): Remove unused varid variable.
      gcc/objc/
      	* objc-act.c (generate_shared_structures): Remove unused sc_spec and
      	decl_specs variables.
      	(objc_build_message_expr): Remove unused loc variable.
      	(objc_finish_message_expr): Remove unused saved_rtype variable.
      	(encode_field_decl): Remove unused type variable.
      gcc/lto/
      	* lto-lang.c (handle_nonnull_attribute): Remove unused attr_arg_num
      	variable.
      
      From-SVN: r154726
      Jakub Jelinek 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. 07 Nov, 2009 1 commit
  26. 09 Oct, 2009 1 commit
  27. 08 Oct, 2009 1 commit
    • Add support for debugging with ICF (Identical Code Folding). · 77831620
      gcc/ChangeLog:
      	Add support for debugging with ICF (Identical Code Folding).
      	* calls.c (debug.h): New #include.
      	(emit_call_1): Call virtual_call_token debug hook.
      	* common.opt (-fenable-icf-debug): New option.
      	* dwarf2out.c (dwarf2_debug_hooks): Add entries for new hooks (two
      	locations in the source).
      	(poc_label_num): New variable.
      	(dcall_entry, vcall_entry): New typedefs.
      	(dcall_table, vcall_table): New variables.
      	(struct vcall_insn): New type.
      	(vcall_insn_table): New variable.
      	(DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION): New macros.
      	(size_of_dcall_table): New function.
      	(output_dcall_table): New function.
      	(size_of_vcall_table): New function.
      	(output_vcall_table): New function.
      	(dwarf2out_direct_call): New function.
      	(vcall_insn_table_hash): New function.
      	(vcall_insn_table_eq): New function.
      	(dwarf2out_virtual_call_token): New function.
      	(dwarf2out_virtual_call): New function.
      	(dwarf2out_init): Allocate new tables and sections.
      	(prune_unused_types): Mark DIEs referenced from direct call table.
      	(dwarf2out_finish): Output direct and virtual call tables.
      	* final.c (final_scan_insn): Call direct_call and virtual_call
      	debug hooks.
      	* debug.h (struct gcc_debug_hooks): Add direct_call,
      	virtual_call_token, virtual_call hooks.
      	(debug_nothing_uid): New function.
      	* debug.c (do_nothing_debug_hooks): Add dummy entries for new hooks.
      	(debug_nothing_uid): New function.
      	* dbxout.c (dbx_debug_hooks): Add dummy entries for new hooks.
      	* sdbout.c (sdb_debug_hooks): Likewise.
      	* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
      	* doc/invoke.texi (-fenable-icf-debug): New option.
      
      gcc/testsuite/ChangeLog:
      	Add support for debugging with ICF (Identical Code Folding).
      	* g++.dg/debug/dwarf2/icf.C: New test.
      
      From-SVN: r152577
      Cary Coutant committed
  28. 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
  29. 14 Sep, 2009 1 commit
  30. 02 Sep, 2009 1 commit
    • expr.h (emit_storent_insn, [...]): Declare. · 28ed065e
      	* expr.h (emit_storent_insn, expand_expr_real_1,
      	expand_expr_real_2): Declare.
      	* expr.c (emit_storent_insn, expand_expr_real_1,
      	expand_expr_real_2): Export.
      	(store_expr): Setting and evaluating dont_return_target is
      	useless.
      	(expand_expr_real_1, <case GOTO_EXPR, RETURN_EXPR, SWITCH_EXPR,
      	LABEL_EXPR and ASM_EXPR>): Move to gcc_unreachable.
      	* except.c (expand_resx_expr): Rename to ...
      	(expand_resx_stmt): ... this.  Rewrite to take gimple statement.
      	* except.h (expand_resx_stmt): Declare.
      	* stmt.c: Add include gimple.h
      	(expand_asm_expr): Rename to ...
      	(expand_asm_stmt): ... this. Rewrite to take gimple statement.
      	(expand_case): Rewrite to take gimple statement.
      	* tree.h (expand_asm_stmt): Declare.
      	(expand_case): Change prototype.
      	* Makefile.in (stmt.o): Depend on gimple.h.
      	* builtins.c (expand_builtin_synchronize): Build gimple asm
      	statement, not an ASM_EXPR.
      	* cfgexpand.c (gimple_cond_pred_to_tree, set_expr_location_r,
      	gimple_to_tree, release_stmt_tree): Remove.
      	(expand_gimple_cond): Don't call gimple_cond_pred_to_tree or
      	ggc_free, but hold comparison code and operands separately.
      	Call jumpif_1 and jumpifnot_1 instead of jumpif and jumpifnot.
      	(expand_call_stmt, expand_gimple_stmt_1,
      	expand_gimple_stmt): New helpers.
      	(expand_gimple_tailcall): Don't call gimple_to_tree, expand_expr_stmt,
      	release_stmt_tree.  Call expand_gimple_stmt instead.
      	(expand_gimple_basic_block): Ditto.
      
      	* calls.c (emit_call_1): Don't look at EH regions here, make
      	fntree parameter useless.
      	(expand_call): New local rettype for TREE_TYPE(exp), use it
      	throughout.  Remove local p, use addr instead.
      	Don't look at EH regions here.
      
      From-SVN: r151350
      Michael Matz committed
  31. 12 Aug, 2009 1 commit
    • tm.texi (TARGET_PROMOTE_FUNCTION_MODE): Add documentation for for_return == 2. · 666e3ceb
      2009-08-12  Paolo Bonzini  <bonzini@gnu.org>
      
      	* doc/tm.texi (TARGET_PROMOTE_FUNCTION_MODE): Add documentation
      	for for_return == 2.
      	* function.c (assign_parm_setup_reg): Use for_return == 2, improve
      	comments.
      	* calls.c (expand_call): Fix typo.
      	* explow.c (promote_decl_mode): Use for_return == 2 for RESULT_DECL
      	and PARM_DECL.
      	* stmt.c (expand_value_return): Use promote_function_mode to copy out
      	of pseudo.
      	* targhooks.c (default_promote_function_mode): Handle for_return == 2.
      	* config/cris/cris.c (cris_promote_function_mode): Likewise.
      	* config/mmix/mmix.c (mmix_promote_function_mode): Likewise.
      	* config/pa/pa.c (pa_promote_function_mode): Likewise.
      
      From-SVN: r150700
      Paolo Bonzini committed
  32. 06 Aug, 2009 1 commit
  33. 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
  34. 16 Jul, 2009 1 commit
    • re PR c/40435 (Revision 148442 caused many regressions on trunk) · db3927fb
      2009-07-17  Aldy Hernandez  <aldyh@redhat.com>
      	    Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	PR 40435 
      	* tree-complex.c, tree-loop-distribution.c,
      	tree.c, tree.h, builtins.c, fold-const.c, omp-low.c,
      	cgraphunit.c, tree-ssa-ccp.c, tree-ssa-dom.c,
      	gimple-low.c, expr.c, tree-ssa-ifcombine.c, c-decl.c,
      	stor-layout.c, tree-if-conv.c, c-typeck.c,
      	gimplify.c, calls.c, tree-sra.c, tree-mudflap.c,
      	tree-ssa-copy.c, tree-ssa-forwprop.c, c-convert.c, c-omp.c,
      	varasm.c, tree-inline.c, c-common.c,
      	c-common.h, gimple.c, tree-switch-conversion.c, gimple.h,
      	tree-cfg.c, c-parser.c, convert.c: Add location
      	argument to fold_{unary,binary,ternary}, fold_build[123],
      	build_call_expr, build_size_arg, build_fold_addr_expr,
      	build_call_array, non_lvalue, size_diffop,
      	fold_build1_initializer, fold_build2_initializer,
      	fold_build3_initializer, fold_build_call_array,
      	fold_build_call_array_initializer, fold_single_bit_test,
      	omit_one_operand, omit_two_operands, invert_truthvalue,
      	fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
      	combine_comparisons, fold_builtin_*, fold_call_expr,
      	build_range_check, maybe_fold_offset_to_address, round_up,
      	round_down.
      objc/
      	* objc-act.c: Add location argument to all calls to
      	build_fold_addr_expr.
      testsuite/
      	* gcc.dg/pr36902.c: Add column info.
      	* g++.dg/gcov/gcov-2.C: Change count for definition.
      cp/
      	* typeck.c, init.c, class.c, method.c, rtti.c, except.c, error.c,
      	tree.c, cp-gimplify.c, cxx-pretty-print.c, pt.c, semantics.c,
      	call.c, cvt.c, mangle.c: Add location argument to
      	fold_{unary,binary,ternary}, fold_build[123], build_call_expr,
      	build_size_arg, build_fold_addr_expr, build_call_array,
      	non_lvalue, size_diffop, fold_build1_initializer,
      	fold_build2_initializer, fold_build3_initializer,
      	fold_build_call_array, fold_build_call_array_initializer,
      	fold_single_bit_test, omit_one_operand, omit_two_operands,
      	invert_truthvalue, fold_truth_not_expr, build_fold_indirect_ref,
      	fold_indirect_ref, combine_comparisons, fold_builtin_*,
      	fold_call_expr, build_range_check, maybe_fold_offset_to_address,
      	round_up, round_down.
      fortran/
      	* trans-expr.c, trans-array.c, trans-openmp.c, trans-stmt.c,
      	trans.c, trans-io.c, trans-decl.c, trans-intrinsic.c: Add location
      	argument to fold_{unary,binary,ternary}, fold_build[123],
      	build_call_expr, build_size_arg, build_fold_addr_expr,
      	build_call_array, non_lvalue, size_diffop,
      	fold_build1_initializer, fold_build2_initializer,
      	fold_build3_initializer, fold_build_call_array,
      	fold_build_call_array_initializer, fold_single_bit_test,
      	omit_one_operand, omit_two_operands, invert_truthvalue,
      	fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
      	combine_comparisons, fold_builtin_*, fold_call_expr,
      	build_range_check, maybe_fold_offset_to_address, round_up,
      	round_down.
      
      Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>
      
      From-SVN: r149722
      Aldy Hernandez committed
  35. 22 Jun, 2009 1 commit
    • alias.c: Use REG_P... · 481683e1
      2009-06-22  Shujing Zhao  <pearly.zhao@oracle.com>
      
      	* alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
      	JUMP_TABLE_DATA_P predicates where applicable.
      	* auto-inc-dec.c: Ditto.
      	* builtins.c: Ditto.
      	* caller-save.c: Ditto.
      	* calls.c: Ditto.
      	* cfgcleanup.c: Ditto.
      	* cfglayout.c: Ditto.
      	* cfgrtl.c: Ditto.
      	* combine.c: Ditto.
      	* combine-stack-adj.c: Ditto.
      	* cse.c: Ditto.
      	* cselib.c: Ditto.
      	* dbxout.c: Ditto.
      	* df-scan.c: Ditto.
      	* dse.c: Ditto.
      	* dwarf2asm.c: Ditto.
      	* dwarf2out.c: Ditto.
      	* emit-rtl.c: Ditto.
      	* except.c: Ditto.
      	* explow.c: Ditto.
      	* expmed.c: Ditto.
      	* expr.c: Ditto.
      	* final.c: Ditto.
      	* function.c: Ditto.
      	* fwprop.c: Ditto.
      	* gcse.c: Ditto.
      	* genpreds.c: Ditto.
      	* genrecog.c: Ditto.
      	* ifcvt.c: Ditto.
      	* ira-costs.c: Ditto.
      	* ira-lives.c: Ditto.
      	* jump.c: Ditto.
      	* loop-iv.c: Ditto.
      	* lower-subreg.c: Ditto.
      	* modulo-sched.c: Ditto.
      	* optabs.c: Ditto.
      	* postreload.c: Ditto.
      	* print-rtl.c: Ditto.
      	* recog.c: Ditto.
      	* reginfo.c: Ditto.
      	* regmove.c: Ditto.
      	* reload1.c: Ditto.
      	* reload.c: Ditto.
      	* reorg.c: Ditto.
      	* rtlanal.c: Ditto.
      	* rtl.c: Ditto.
      	* sched-vis.c: Ditto.
      	* sdbout.c: Ditto.
      	* sel-sched-ir.c: Ditto.
      	* simplify-rtx.c: Ditto.
      	* targhooks.c: Ditto.
      	* var-tracking.c: Ditto.
      	* vmsdbgout.c: Ditto.
      
      From-SVN: r148786
      Shujing Zhao committed