1. 08 Sep, 2004 1 commit
    • function.c (reference_callee_copied): New. · 6cdd5672
              * function.c (reference_callee_copied): New.
              (assign_parm_setup_reg): Use it.
              * calls.c (initialize_argument_information): Likewise.
              (emit_library_call_value_1): Likewise.
              * function.h (reference_callee_copied): Declare.
      
              * target.h (struct gcc_target): Add callee_copies.
              * target-def.h (TARGET_CALLEE_COPIES): New.
              (TARGET_PASS_BY_REFERENCE): Update default.
              * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
              * targhooks.c (hook_callee_copies_named): New.
              (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
              hook_pass_by_reference_false.
              (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
              * targhooks.h: Update decls.
              * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
              * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
              * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
              * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
              * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
              * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
              * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
              * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
              * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
              * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
              (mips_callee_copies): New.
              * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
              * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
              * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
              * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
              * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
              * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
              * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
              * config/sh/sh.c (sh_callee_copies): New.
              (TARGET_CALLEE_COPIES): New.
              * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
              * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
              * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
              * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
              for FUNCTION_ARG_CALLEE_COPIES.
              * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
      
      From-SVN: r87195
      Richard Henderson committed
  2. 18 Aug, 2004 1 commit
    • rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P. · 389fdba0
      	* rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
      	* alias.c (true_dependence): Update to match new semantics.
      	(canon_true_dependence, write_dependence_p): Likewise.
      	(anti_dependence, output_dependence): Update write_dependence_p args.
      	(unchanging_anti_dependence): Remove.
      	* calls.c (purge_mem_unchanging_flag): Remove.
      	(fixup_tail_calls): Don't call it.
      	(expand_call): Don't add unchanging memory to function usage.
      	* expr.c (emit_block_move_via_libcall): Likewise.
      	(clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
      	(get_subtarget): Don't use RTX_UNCHANGING_P.
      	(expand_assignment, store_constructor, expand_expr_real_1): Likewise.
      	(do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
      	* combine.c (get_last_value_validate): Use MEM_READONLY_P.
      	* cse.c (insert): Don't use RTX_UNCHANGING_P.
      	(cse_insn, canon_hash): Use MEM_READONLY_P.
      	* emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
      	instead of RTX_UNCHANGING_P.
      	* explow.c (maybe_set_unchanging): Remove.
      	* expr.h (maybe_set_unchanging): Remove.
      	* flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
      	* function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
      	(assign_parm_setup_reg, expand_function_start): Likewise.
      	* integrate.c (copy_rtx_and_substitute): Likewise.
      	* ra-rewrite.c (emit_colors): Likewise.
      	* regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
      	(fixup_match_1): Likewise.
      	* reload1.c (reload, alter_reg): Likewise.
      	* local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
      	not RTX_UNCHANGING_P.
      	(equiv_init_varies_p): Likewise.
      	* loop-invariant.c (check_maybe_invariant): Likewise.
      	* resource.c (mark_referenced_resources, mark_set_resources): Likewise.
      	* loop.c (note_addr_stored): Likewise.
      	(prescan_loop): Likewise. Don't check function usage for clobbered
      	unchanging memory.
      	* rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
              not RTX_UNCHANGING_P.
      	(rtx_varies_p, modified_between_p, modified_in_p): Likewise.
      	* varasm.c (force_const_mem): Likewise.
      	* stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
      	* web.c (entry_register): Likewise.
      	* tree-gimple.h (get_base_address): Move decl ...
      	* tree.h: ... here.
      	* doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
      
      	* config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
      	called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
      	(alpha_set_memflags): Update to match.
      
      	* config/darwin.c (machopic_indirect_data_reference): Set
      	MEM_READONLY_P instead of RTX_UNCHANGING_P.
      	(machopic_indirect_call_target): Likewise.
      	(machopic_legitimize_pic_address): Likewise.
      	* config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
      	arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
      	* config/arm/arm.md (load_multiple, store_multiple): Likewise.
      	* config/frv/frv.md (symGOT2reg): Likewise.
      	* config/i386/i386.c (legitimize_pic_address,
      	legitimize_tls_address, ix86_split_to_parts): Likewise.
      	* config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
      	* config/ia64/ia64.md (load_fptr): Likewise.
      	* config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
      	* config/m68k/m68k.c (legitimize_pic_address): Likewise.
      	* config/mcore/mcore.c (block_move_sequence): Likewise.
      	* config/mn10300/mn10300.md (symGOT2reg): Likewise.
      	* config/pa/pa.c (legitimize_pic_address): Likewise.
      	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
      	(rs6000_emit_move): Likewise.
      	* config/s390/s390.c (legitimize_pic_address): Likewise.
      	(legitimize_tls_address): Likewise.
      	* config/s390/s390.md (casesi): Likewise.
      	* config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
      	* config/sh/sh.md (symGOT2reg): Likewise.
      	* config/sparc/sparc.c (legitimize_pic_address): Likewise.
      	* config/v850/v850.md (casesi): Likewise.
      
      	* config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
      	* config/iq2000/iq2000.c (save_restore_insns): Likewise.
      	* config/mips/mips.c (mips_restore_gp): Likewise.
      	(mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
      	* config/sh/sh.c (sh_reorg): Likewise.
      
      From-SVN: r86178
      Richard Henderson committed
  3. 27 Jul, 2004 1 commit
    • expr.h (canonicalize_condition, [...]): Add an int argument. · 45d09c02
      	* expr.h (canonicalize_condition, get_condition): Add an int argument.
      	* gcse.c (fis_get_condition): Reimplement using get_condition, leaving
      	it to check whether the condition is still valid at the jump insn.
      	* ifcvt.c (noce_get_condition): Likewise.
      	(noce_get_alt_condition): Update call to canonicalize_condition.
      	* loop-iv.c (simplify_using_initial_values): Update call to
      	get_condition.  Remove FIXME.
      	(check_simple_exit): Update call to get_condition.
      	* loop-unswitch.c (may_unswitch_on): Likewise.
      	* loop.c (check_dbra_loop): Likewise.
      	(canonicalize_condition, get_condition): Add an argument to say whether
      	the condition must still be valid at INSN.
      	(get_condition_for_loop): Update call to get_condition.  Require that
      	the condition be valid at INSN.
      	* predict.c (estimate_probability): Update call to get_condition.
      	Remove unused earliest parameter.
      	(expected_value_to_br_prob): Update call to canonicalize_condition.
      
      From-SVN: r85218
      Richard Sandiford committed
  4. 23 Jul, 2004 1 commit
    • expr.c (expand_expr_real_1): Don't handle non-local variables. · ab8907ef
              * expr.c (expand_expr_real_1): Don't handle non-local variables.
              * expr.h (fix_lexical_addr): Remove.
              * function.c (NEED_SEPARATE_AP): Remove.
              (fix_lexical_addr): Remove.
              * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
              not null decl_function_context.
              (create_alias_vars): Likewise.
              * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
              (simple_goto_p): Likewise.
              * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
              * tree-ssa-ccp.c (get_default_value): Likewise.
              * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
              * tree.c (needs_to_live_in_memory): Likewise.
              * tree-flow-inline.h (may_be_aliased): Move...
              * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
              when TREE_STATIC variables may be addressable.
      
      From-SVN: r85099
      Richard Henderson committed
  5. 16 Jul, 2004 1 commit
    • builtins.c (std_expand_builtin_va_arg): Remove. · 77c9db77
              * builtins.c (std_expand_builtin_va_arg): Remove.
              (expand_builtin_va_arg): Remove.
              * expr.h: Don't declare them.
              * gimplify.c (mark_decls_volatile_r): Remove.
              (copy_if_shared_r): Don't call it.
              * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
              * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
              * gimple-low.c (lower_stmt): Likewise.
              * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
              * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
              * tree-ssa-operands.c (get_expr_operands): Likewise.
              * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
              EXPAND_BUILTIN_VA_ARG.
              * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
              * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
              config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
              config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
      
      From-SVN: r84842
      Richard Henderson committed
  6. 14 Jul, 2004 1 commit
    • expr.c (enqueue_insn, [...]): Remove. · ad76cef8
      2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
      
      	* expr.c (enqueue_insn, finish_expr_for_function,
      	protect_from_queue, queued_subexp_p, mark_queue,
      	emit_insns_enqueued_after_mark, emit_queue,
      	expand_increment): Remove.
      	(store_constructor): Expand increment as an assignment.
      	(expand_expr_real_1 <case PREINCREMENT_EXPR,
      	case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
      	case POSTDECREMENT_EXPR>): Abort.
      	* expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
      	QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
      	protect_from_queue, emit_queue, queued_subexp_p): Remove.
      	* function.h (pending_chain, x_pending_chain): Remove.
      	* rtl.def (QUEUED): Remove.
      
      	* emit-rtl.c (copy_insn_1, copy_most_rtx,
      	set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
      	* genattrtab.c (attr_copy_rtx, clear_struct_flag,
      	encode_units_mask): Likewise.
      	* local-alloc.c (equiv_init_varies_p): Likewise.
      	* rtl.c (copy_rtx): Likewise.
      	* rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
      	* simplify-rtx.c (simplify_gen_subreg): Likewise.
      	* config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
      
      	* builtins.c (expand_builtin, expand_builtin_apply,
      	expand_builtin_mathfn, expand_builtin_mathfn_2,
      	expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
      	Remove calls to emit_queue and protect_from_queue.
      	* calls.c (expand_call, precompute_arguments,
      	precompute_register_parameters, rtx_for_function_call,
      	store_one_arg): Likewise.
      	* dojump.c (do_compare_and_jump, do_jump): Likewise.
      	* explow.c (memory_address): Likewise.
      	* expmed.c (clear_by_pieces_1, clear_storage,
      	clear_storage_via_libcall, emit_group_load,
      	emit_group_store, emit_store_flag,
      	expand_expr_real_1, store_by_pieces,
      	store_constructor, store_expr, try_casesi,
      	try_tablejump): Likewise.
      	* function.c (expand_pending_sizes): Likewise.
      	* optabs.c (emit_cmp_and_jump_insns,
      	emit_conditional_add, emit_conditional_move,
      	expand_fix, expand_float, prepare_cmp_insn): Likewise.
      	* stmt.c (emit_case_bit_tests,
      	expand_asm_expr, expand_computed_goto,
      	expand_decl_init, expand_end_case_type,
      	expand_end_stmt_expr, expand_expr_stmt_value,
      	expand_return, expand_start_case,
      	optimize_tail_recursion): Likewise.
      	* config/c4x/c4x.c (c4x_expand_builtin): Likewise.
      	* config/s390/s390.c (s390_expand_cmpmem): Likewise.
      
      From-SVN: r84675
      Paolo Bonzini committed
  7. 13 Jul, 2004 2 commits
    • function.c (pass_by_reference): New. · 0976078c
              * function.c (pass_by_reference): New.
              (assign_parm_find_data_types): Use it.
              * calls.c (initialize_argument_information): Likewise.
              (emit_library_call_value_1): Likewise.
              * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
              * function.h (pass_by_reference): Declare.
      ada/
              * misc.c (default_pass_by_ref): Use pass_by_reference.
      
      From-SVN: r84607
      Richard Henderson committed
    • target-def.h (TARGET_MUST_PASS_IN_STACK): New. · fe984136
      	* target-def.h (TARGET_MUST_PASS_IN_STACK): New.
      	* target.h (struct gcc_target): Add calls.must_pass_in_stack.
      	* expr.h (MUST_PASS_IN_STACK): Remove.
      	* system.h (MUST_PASS_IN_STACK): Poison.
      	* tree.h (must_pass_in_stack_var_size): Declare.
      	(must_pass_in_stack_var_size_or_pad): Declare.
      	* calls.c (must_pass_in_stack_var_size): New.
      	(must_pass_in_stack_var_size_or_pad): Rename from
      	default_must_pass_in_stack.
      	* config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
      	(TARGET_MUST_PASS_IN_STACK): New.
      	* config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
      	* config/fr30/fr30.c (fr30_must_pass_in_stack): New.
      	(TARGET_MUST_PASS_IN_STACK): New.
      	* config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
      	* config/frv/frv.c (frv_must_pass_in_stack): New.
      	(TARGET_MUST_PASS_IN_STACK): New.
      	* config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
      	* config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
      	* config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
      	(ix86_must_pass_in_stack): Make static.
      	* config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
      	* config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
      	* config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
      	* config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
      	* config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
      	* config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
      	* config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
      	(mcore_must_pass_on_stack): Remove.
      	* config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
      	* config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
      	* config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
      	* config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
      	* config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
      	* config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
      	* config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
      	* config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
      	(TARGET_MUST_PASS_IN_STACK): New.
      	* config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
      	* config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
      	* config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
      	* config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
      	* config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
      	* config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
      	* doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
      	MUST_PASS_IN_STACK.
      
      	* calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
      	config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
      	config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
      	config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
      	config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
      	config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
      	config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
      	config/xtensa/xtensa.c: Use target hook.
      
      From-SVN: r84606
      Richard Henderson committed
  8. 10 Jul, 2004 1 commit
    • expr.h (store_bit_field, [...]): Remove last argument. · b3520980
      	* expr.h (store_bit_field, extract_bit_field): Remove last argument.
      	* expmed.c (store_bit_field, extract_bit_field): Remove last
      	argument.
      	* builtins.c (expand_builtin_signbit): Adjust callers.
      	* optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
      	* calls.c (store_unaligned_arguments_into_pseudos): Likewise.
      	* ifcvt.c (noce_emit_move_insn): Likewise.
      	* stmt.c (expand_return): Likewise.
      	* expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
      	store_field, expand_expr_real_1): Likewise.
      
      From-SVN: r84447
      Jakub Jelinek committed
  9. 08 Jul, 2004 2 commits
    • builtins.c (fold_builtin_strcpy): Merge functionality from simplify_builtin_strcpy. · a32e70c3
      	* builtins.c (fold_builtin_strcpy): Merge functionality from
      	simplify_builtin_strcpy.  Add additional len argument.  No longer
      	static.  Remove function prototype.
      	(fold_builtin_strncpy): Likewise integrate functionality from
      	simplify_builtin_strncpy.  Add additional slen argument.  No
      	longer static.  Remove function prototype.
      	(simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
      	(simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
      	types of "ignore" and "unlocked" parameters to bool.
      	(fold_builtin_1):  Add additional ignore argument.  Call renamed
      	fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
      	builtins.  Update arguments to fold_builtin_strncpy and
      	fold_builtin_strcpy.  Add function prototype.
      	(fold_builtin): Add additional Boolean ignore argument to pass
      	to fold_builtin_1.
      	(simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
      	and fold_builtin_strncpy instead of simplify_builtin_fputs,
      	simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
      
      	* expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
      	simplify_builtin_strncpy): Delete function prototypes.
      	* tree.h (fold_builtin_fputs, fold_builtin_strcpy,
      	fold_builtin_strncpy): Add function prototypes here.
      	(fold_builtin): Update function prototype with new "bool ignore".
      
      	* tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
      	(ccp_fold_builtin):  Update call to fold_builtin.  Call
      	fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
      	instead of simplify_builtin_fputs, simplify_builtin_strcpy and
      	simplify_builtin_strncpy respectively.
      	* fold-const.c (fold): Update call to fold_builtin.
      
      From-SVN: r84302
      Roger Sayle committed
    • expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0. · 652eb744
      * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
      (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
      (FUNCTION_ARG_CALLEE_COPIES): Likewise.
      * calls.c: Remove ifdefs of macros above.
      * functions.c: Likewise.
      * expr.c: Likewise.
      
      From-SVN: r84300
      Alexandre Oliva committed
  10. 07 Jul, 2004 1 commit
    • builtins.c: Rename movstr*, except for movstrict*, to movmem* and clrstr* to clrmem*. · 70128ad9
      gcc/ChangeLog:
      * builtins.c: Rename movstr*, except for movstrict*, to
      movmem* and clrstr* to clrmem*.
      * expr.c: Likewise.
      * expr.h: Likewise.
      * genopinit.c: Likewise.
      * integrate.c: Likewise.
      * local-alloc.c: Likewise.
      * optabs.c: Likewise.
      * optabs.h: Likewise.
      * config/alpha/alpha.h: Likewise.
      * config/alpha/alpha.md: Likewise.
      * config/arm/arm-protos.h: Likewise.
      * config/arm/arm.c: Likewise.
      * config/arm/arm.md: Likewise.
      * config/avr/avr.md: Likewise.
      * config/c4x/c4x.c: Likewise.
      * config/c4x/c4x.md: Likewise.
      * config/frv/frv.md: Likewise.
      * config/i386/i386-protos.h: Likewise.
      * config/i386/i386.c: Likewise.
      * config/i386/i386.h: Likewise.
      * config/i386/i386.md: Likewise.
      * config/i860/i860.c: Likewise.
      * config/i860/i860.md: Likewise.
      * config/ip2k/ip2k.md: Likewise.
      * config/ip2k/libgcc.S: Likewise.
      * config/ip2k/t-ip2k: Likewise.
      * config/m32r/m32r.c: Likewise.
      * config/m32r/m32r.md: Likewise.
      * config/mcore/mcore.md: Likewise.
      * config/mips/mips.c: Likewise.
      * config/mips/mips.md: Likewise.
      * config/ns32k/ns32k.c: Likewise.
      * config/ns32k/ns32k.h: Likewise.
      * config/ns32k/ns32k.md: Likewise.
      * config/pa/pa.c: Likewise.
      * config/pa/pa.md: Likewise.
      * config/pdp11/pdp11.h: Likewise.
      * config/pdp11/pdp11.md: Likewise.
      * config/rs6000/rs6000.c: Likewise.
      * config/rs6000/rs6000.md: Likewise.
      * config/s390/s390-protos.h: Likewise.
      * config/s390/s390.c: Likewise.
      * config/s390/s390.md: Likewise.
      * config/sh/lib1funcs.asm: Likewise.
      * config/sh/sh.c: Likewise.
      * config/sh/sh.md: Likewise.
      * config/sh/t-sh: Likewise.
      * config/sparc/sparc.h: Likewise.
      * config/vax/vax.md: Likewise.
      * config/xtensa/xtensa.c: Likewise.
      * config/xtensa/xtensa.md: Likewise.
      * doc/invoke.texi: Likewise.
      * doc/md.texi: Likewise.
      * doc/rtl.texi: Likewise.
      gcc/testsuite/ChangeLog:
      * gcc.c-torture/execute/builtins/mempcpy-2.c: Rename movstr*,
      except for movstrict*, to movmem* and clrstr* to clrmem*.
      
      From-SVN: r84222
      Alexandre Oliva committed
  11. 24 Jun, 2004 1 commit
  12. 02 Jun, 2004 1 commit
    • Makefile.in (EXPR_H): Add insn-config.h... · 78528714
      2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
      
      	* Makefile.in (EXPR_H): Add insn-config.h, function.h,
      	$(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
      	(ALIAS_H, EMIT_RTL_H): New.
      	(cselib.o): Replace EXPR_H with EMIT_RTL_H.
      	(cfgcleanup.o): Add EMIT_RTL_H.
      	(alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
      	* alias.c: Replace expr.h with emit-rtl.h and alias.h.
      	* attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
      	* cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
      	* expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
      	tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
      	(get_varargs_alias_set, get_frame_alias_set, record_base_value,
      	record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
      	(set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
      	set_mem_size): Move to emit-rtl.h.
      	* emit-rtl.h: New.
      	* alias.h: New.
      
      From-SVN: r82568
      Jerry Quinn committed
  13. 15 May, 2004 1 commit
    • c-gimplify.c (c_genericize): Replace calls via (*lang_hooks.foo) with lang_hooks.foo. · 673fda6b
      	* c-gimplify.c (c_genericize):
      	Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
      	* c-parse.in <expr_no_commas>: Likewise.
      	<if_prefix>: Likewise.
      	<select_or_iter_stmt>: Likewise.
      	* expr.c (expand_var, expand_expr_real_1): Likewise.
      	* expr.h (expand_expr): Make it a static inline function.
      	Move prototype for expand_expr_real up before this.
      	* fold-const.c (fold_relational_hi_lo, fold_relational_const):
      	Likewise.
      	* gimplify.c (gimple_boolify, gimplify_addr_expr,
      	gimplify_asm_expr, gimplify_expr): Likewise.
      	* tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
      	dump_function_to_file): Likewise.
      	* tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
      	* tree-inline.c (remap_block, save_body, walk_tree): Likewise.
      	* tree-into-ssa.c (dump_tree_ssa): Likewise.
      	* tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
      	Likewise.
      	* tree-optimize.c (execute_one_pass): Likewise.
      	* tree-pretty-print.c (dump_generic_bb_buff): Likewise.
      	* tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
      
      objc/
      	* objc-act.c (objc_build_try_enter_fragment,
      	objc_build_try_epilogue, objc_build_catch_stmt,
      	objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
      	with lang_hooks.foo ().
      
      From-SVN: r81907
      Steven Bosscher committed
  14. 13 May, 2004 1 commit
  15. 21 Mar, 2004 1 commit
    • alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR. · 6fce44af
      	* alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
      	* emit-rtl.c (component_ref_for_mem_expr): Likewise.
      	(set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
      	* explow.c (expr_size): Likewise.
      	* expr.h (placeholder_list, find_placeholder): Deleted.
      	* expr.c (store_constructor): Likewise.
      	(get_inner_reference): Likewise.  Also don't call find_placeholder.
      	(placeholder_list, find_placeholder): Deleted.
      	(is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
      	(expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
      	(highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
      	* dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
      	* dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
      	Likewise.
      	* fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
      	(extract_muldiv, case WITH_RECORD_EXPR): Likewise.
      	* tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
      	(contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
      	Clean up by using first_rtl_op.
      	(substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
      	(substitute_placeholder_in_expr): New function.
      	* tree.def (WITH_RECORD_EXPR): Deleted.
      	* tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
      	(substitute_placeholder_in_expr): New.
      
      	* ada/decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
      	* ada/trans.c (tree_transform, emit_index_check): Likewise.
      	* ada/utils.c (build_template): Likewise.
      	(max_size, convert): Remove handling of WITH_RECORD_EXPR.
      	(maybe_unconstrained_array, unchecked_convert): Likewise.
      	* ada/utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
      	(build_unary_op): Likewise.
      	(compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
      	(fill_vms_descriptor): Likewise.
      	(build_call_alloc_dealloc): Likewise.
      	ALIGN is unsigned.
      	* ada/gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
      
      From-SVN: r79789
      Richard Kenner committed
  16. 12 Mar, 2004 1 commit
    • re PR target/14547 (Passing _Complex long double does not follow the ABI) · 42ba5130
              PR target/14547
              * target.h (struct gcc_target): Move calls substructure before
              booleans.  Add split_complex_arg.
              * function.c (assign_parms, split_complex_args): Use it.
              * calls.c (expand_call): Likewise.
              (split_complex_values): Likewise.  Check for splittable types
              before allocating memory.
              (split_complex_types): Likewise.
              * system.h (SPLIT_COMPLEX_ARGS): Poison.
              * expr.h (SPLIT_COMPLEX_ARGS): Remove.
              * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
              * config/alpha/alpha.c (alpha_split_complex_arg): New.
              (TARGET_SPLIT_COMPLEX_ARG): New.
              * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
              * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
              (rs6000_override_options): Zap it for non-AIX.
              (rs6000_function_value): Use targetm.calls.split_complex_arg.
              * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
              * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
              * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
              * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
              SPLIT_COMPLEX_ARGS entry.
      
      From-SVN: r79376
      Richard Henderson committed
  17. 21 Jan, 2004 1 commit
    • alias.c, [...]: Update copyright. · d9221e01
      	* alias.c, basic-block.h, c-common.c, c-common.h,
      	c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
      	calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
      	combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
      	cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
      	defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
      	expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
      	genautomata.c, genconditions.c, genemit.c, genflags.c,
      	gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
      	ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
      	langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
      	line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
      	ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
      	rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
      	target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
      	unwind.h, varray.c, varray.h: Update copyright.
      
      From-SVN: r76302
      Kazu Hirata committed
  18. 13 Jan, 2004 1 commit
  19. 09 Jan, 2004 1 commit
    • expr.h (expand_expr): Make it a macro, not a function. · 0fab64a3
      	* expr.h (expand_expr): Make it a macro, not a function.
      	(expand_expr_real): New function.
      	* expr.c (store_expr): Adjust logic for deciding whether or not to
      	copy the value returned by expand_expr.
      	(expand_expr): Rename to ...
      	(expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
      	calls to language hooks.
      	* c-common.h (c_expand_expr): Adjust prototype.
      	* c-common.c (c_expand_expr): Add alt_rtl parameter.
      	* langhooks-def.h (lhd_expand_expr): Change prototype.
      	* langhooks.c (lhd_expand_expr): Add all_rtl parameter.
      	* langhooks.h (lang_hooks): Change type of expand_expr.
      	* stmt.c (stmt_status): Add x_last_expr_alt_rtl.
      	(last_expr_alt_rtl): Likewise.
      	(expand_expr_stmt_value): Set last_expr_alt_rtl.
      	(clear_last_expr): Clear it.
      	(expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
      	(expand_end_bindings): Save and restor last_expr_alt_rtl.
      	* tree.def (RTL_EXPR): Give it an additional operand.
      	* tree.h (RTL_EXPR_ALT_RTL): New macro.
      
      	* misc.c (gnat_expand_expr): Add alt_rtl parameter.
      
      	* cp-tree.h (cxx_expand_expr): Change prototype.
      	* expr.c (cxx_expand_expr): Add alt_rtl parameter.
      
      	* java-tree.h (java_expand_expr): Change prototype.
      	* expr.c (java_expand_expr): Add alt_rtl parameter.
      
      From-SVN: r75594
      Mark Mitchell committed
  20. 30 Oct, 2003 1 commit
    • builtins.c (std_build_builtin_va_list): New. · c35d187f
      	* builtins.c (std_build_builtin_va_list): New.
      	* expr.h (std_build_builtin_va_list): Declare.
      	* defaults.h (BUILD_VA_LIST_TYPE): New.
      	* system.h (BUILD_VA_LIST_TYPE): Poison.
      	* target-def.h (TARGET_BUILD_BUILTIN_VA_LIST): New.
      	* target.h (struct gcc_target): Add build_builtin_va_list.
      	* tree.c (build_common_tree_nodes_2): Use it.
      
      	* config/alpha/alpha-protos.h, config/alpha/alpha.c,
      	config/alpha/alpha.h, config/alpha/unicosmk.h,
      	config/d30v/d30v-protos.h, config/d30v/d30v.c, config/d30v/d30v.h,
      	config/i386/i386-protos.h, config/i386/i386.c, config/i386/i386.h,
      	config/i860/i860-protos.h, config/i860/i860.c, config/i860/i860.h,
      	config/i960/i960-protos.h, config/i960/i960.c, config/i960/i960.h,
      	config/mips/iris6.h, config/mips/mips-protos.h, config/mips/mips.c,
      	config/mips/mips.h, config/rs6000/rs6000-protos.h,
      	config/rs6000/rs6000.c, config/rs6000/rs6000.h,
      	config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h,
      	config/sh/sh-protos.h, config/sh/sh.c, config/sh/sh.h,
      	config/xtensa/xtensa-protos.h, config/xtensa/xtensa.c,
      	config/xtensa/xtensa.h: Rename foo_build_va_list to
      	foo_build_builtin_va_list; make it static.  Define
      	TARGET_BUILD_BUILTIN_VA_LIST.  Remove BUILD_VA_LIST_TYPE.
      	Update protos.
      
      	* config/i386/i386.c (ix86_expand_carry_flag_compare): Make static.
      	* config/iq2000/iq2000.h (BUILD_VA_LIST_TYPE): Remove.
      
      From-SVN: r73076
      Richard Henderson committed
  21. 02 Oct, 2003 1 commit
    • target.h (init_libfuncs): New hook. · c15c90bb
      	* target.h (init_libfuncs): New hook.
      	* target-def.h: Default TARGET_INIT_BUILTINS and
      	TARGET_INIT_LIBFUNCS to hook_void_void.  Add
      	TARGET_INIT_LIBFUNCS to TARGET_INITIALIZER.
      	* builtins.c (default_init_builtins): Delete.
      	* expr.h (default_init_builtins): Delete prototype.
      	* doc/tm.texi: Document TARGET_INIT_LIBFUNCS and US_SOFTWARE_GOFAST.
      	Tweak documentation of TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL.
      	Remove documentation of INIT_TARGET_OPTABS, MULSI3_LIBCALL,
      	DIVSI3_LIBCALL, UDIVSI3_LIBCALL, MODSI3_LIBCALL, UMODSI3_LIBCALL,
      	MULDI3_LIBCALL, DIVDI3_LIBCALL, UDIVDI3_LIBCALL, MODDI3_LIBCALL,
      	and UMODDI3_LIBCALL,
      
      	* Makefile.in (optabs.o): Depends on target.h.
      	* defaults.h: Provide default for FLOAT_LIB_COMPARE_RETURNS_BOOL.
      	* optabs.c: Include target.h.
      	(prepare_float_lib_cmp): No need for #ifdef around use of
      	FLOAT_LIB_COMPARE_RETURNS_BOOL.
      	(set_optab_libfunc): New function.
      	(init_optabs): Delete use of all *_LIBCALL defines.
      	Call targetm.init_libfuncs not INIT_TARGET_OPTABS.
      	* optabs.h: Prototype set_optab_libfunc.
      
      	* config.gcc: Remove all references to pa/long_double.h,
      	ia64/hpux_longdouble.h, and gofast.h.
      	(mips-*-*): When --enable-gofast, just add US_SOFTWARE_GOFAST
      	to tm_defines; don't set INIT_SUBTARGET_OPTABS or change tm_file.
      
      	* config/alpha/alpha.c, config/c4x/c4x.c, config/cris/cris.c
      	* config/frv/frv.c, config/h8300/h8300.c, config/i860/i860.c
      	* config/ia64/ia64.c, config/ip2k/ip2k.c, config/m68hc11/m68hc11.c
      	* config/mips/mips.c, config/pa/pa.c, config/rs6000/rs6000.c
      	* config/sparc/sparc.c, config/vax/vax.c:
      	Provide a definition for TARGET_INIT_LIBFUNCS.  Where
      	necessary, include optabs.h, libfuncs.h, and/or config/gofast.h.
      
      	* config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.h
      	* config/avr/avr.h, config/cris/cris.h, config/frv/frv.h
      	* config/h8300/h8300.h, config/i860/i860.h, config/ip2k/ip2k.h
      	* config/iq2000/iq2000.h, config/m68hc11/m68hc11.h, config/mips/mips.h
      	* config/rs6000/aix.h, config/rs6000/sysv4.h, config/sparc/elf.h
      	* config/sparc/lite.h, config/sparc/netbsd-elf.h, config/sparc/sol2.h
      	* config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h
      	* config/vax/elf.h: Don't define or use INIT_TARGET_OPTABS,
      	INIT_SUBTARGET_OPTABS, or any *_LIBCALL macros.
      
      	* config/ia64/hpux.h: Redefine INTEL_EXTENDED_IEEE_FORMAT to 0.
      	Set TARGET_INIT_LIBFUNCS and FLOAT_LIB_COMPARE_RETURNS_BOOL here.
      	* config/pa/pa-hpux.h: Define LONG_DOUBLE_TYPE_SIZE,
      	HPUX_LONG_DOUBLE_LIBRARY, and FLOAT_LIB_COMPARE_RETURNS_BOOL here.
      	* config/ia64/hpux_longdouble.h, config/pa/long_double.h: Delete.
      
      	* config/rs6000/xcoff.h: Don't define RS6000_ITRUNC nor RS6000_UITRUNC.
      	* config/sparc/sparc.h: Default SUN_CONVERSION_LIBFUNCS and
      	SUN_INTEGER_MULTIPLY_64 to 0.
      	* config/sparc/sol2.h: Redefine SUN_CONVERSION_LIBFUNCS and
      	SUN_INTEGER_MULTIPLY_64 to 1.
      	* config/sparc/elf.h: Redefine SUN_CONVERSION_LIBFUNCS and
      	SUN_INTEGER_MULTIPLY_64 to 0.
      	* config/sparc/lite.h, config/sparc/liteelf.h, config/sparc/sp86x-elf.h:
      	Define US_SOFTWARE_GOFAST.
      	* config/vax/vax.h: Default TARGET_ELF to 0.
      	* config/vax/elf.h: Redefine TARGET_ELF to 1.
      
      	* config/gofast.h: Don't define any macros here.  Provide one
      	static function, gofast_maybe_init_libfuncs, which does what
      	INIT_GOFAST_LIBFUNCS used to do but only if US_SOFTWARE_GOFAST
      	is already defined.  Do not clear negation libfuncs.  Do
      	not mess with HFmode, XFmode, or TFmode libfuncs.
      
      	* config/avr/avr.c (avr_init_once): #if 0 out; mark FIXME.
      
      From-SVN: r72009
      Zack Weinberg committed
  22. 15 Sep, 2003 2 commits
    • expr.h (DEFAULT_FUNCTION_ARG_PADDING): New. · d3704c46
      	* expr.h (DEFAULT_FUNCTION_ARG_PADDING): New.
      	(FUNCTION_ARG_PADDING): Use DEFAULT_FUNCTION_ARG_PADDING.
      	* config/ia64/ia64.c (ia64_hpux_function_arg_padding):
      	Likewise.
      	* config/m68hc11/m68hc11.c (m68hc11_function_arg_padding):
      	Likewise.
      	* config/rs6000/rs6000.c (function_arg_padding): Likewise.
      	* config/sparc/sparc.c (function_arg_padding): Likewise.
      
      From-SVN: r71406
      Kazu Hirata committed
    • re PR rtl-optimization/10914 (unswitch loops does not work on powerpc) · ec6ec6aa
      2003-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
      
              PR optimization/10914
              * expr.h (get_condition, canonicalize_condition): Declaration changed.
              * cfgloopanal.c (simple_loop_exit_p): Add parameter to a get_condition
              and canonicalize_condition calls.
              * gcse.c (fis_get_condition, delete_null_pointer_checks_1,
              delete_null_pointer_checks): Ditto.
              * ifcvt.c (noce_get_alt_condition, noce_get_condition): Ditto.
              * predict.c (estimate_probability, expected_value_to_br_prob): Ditto.
              * loop.c (check_dbra_loop, get_condition_for_loop): Ditto.
              (canonicalize_condition, get_condition): Allow to return comparisons
              of cc mode registers.
              * loop-unswitch.c (may_unswitch_on_p, unswitch_single_loop): Allow
              cc mode registers comparison in condition.
      
      From-SVN: r71398
      Zdenek Dvorak committed
  23. 04 Sep, 2003 1 commit
    • targhooks.c: New file. · 61f71b34
      	* targhooks.c: New file.
      	* targhooks.h: New file.
      	* Makefile.in: Add targhooks.o support.
      	(function.o): Depend on$(TARGET_H).
      	(stmt.o): Likewise.
      	(combine.o): Depend on $(TREE_H) and $(TARGET_H).
      	* builtins.c (apply_args_size, expand_builtin_apply_args_1,
      	expand_builtin_apply): Convert to calls.struct_value_rtx hook.
      	(expand_builtin_saveregs): Convert to
      	calls.expand_builtin_saveregs hook.
      	* c-decl.c (start_decl): Handle new calls.promote_prototypes hook
      	here, instead of ...
      	(get_parm_info) ... here.
      	(store_parm_decls_oldstyle): Convert to calls.promote_prototypes
      	hook.
      	(finish_function): Handle calls.promote_prototypes hook here too.
      	* c-typeck.c (convert_arguments): Convert to
      	calls.promote_prototypes hook.
      	(c_convert_parm_for_inlining): Likewise.
      	* calls.c (initialize_argument_information): Convert to
      	calls.promote_function_args hook.
      	(expand_call): Convert to calls.struct_value_rtx,
      	calls.strict_argument_naming,
      	calls.pretend_outgoing_varargs_named, and
      	calls.promote_function_return hooks.  Pass fndecl to
      	aggregate_value_p.  Initialize CUMULATIVE_ARGS before calling
      	hooks, so they can use that.
      	(emit_library_call_value_1): Likewise.
      	* combine.c (setup_incoming_promotions): Convert to
      	calls.promote_function_args hook.
      	* emit-rtl.c: Convert to calls.struct_value_rtx hook.
      	* expr.c (expand_assignment): Pass call to aggregate_value_p.
      	(expand_expr): Likewise.
      	* expr.h: Remove support for SETUP_INCOMING_VARARGS,
      	STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED,
      	RETURN_IN_MEMORY macro defaults.
      	* final.c (profile_function): Convert to calls.struct_value_rtx
      	hook.
      	* function.c (aggregate_value_p): Accept function type tree as
      	second parameter; try to deduce fntype from it.  Convert to
      	calls.return_in_memory hook.
      	(assign_parms): Convert to calls.setup_incoming_varargs,
      	calls.strict_argument_naming, calls.promote_function_args,
      	calls.pretend_outgoing_varargs_named hooks.  Pass fndecl to
      	aggregate_value_p.
      	(expand_function_start): Likewise.  Convert to
      	calls.struct_value_rtx hook.
      	(expand_function_end): Convert to calls.promote_function_return hook.
      	(allocate_struct_function): Pass fndecl to aggregate_value_p.
      	* hard-reg-set.h: Update comments to new hook names.
      	* integrate.c (expand_inline_function): Pass fndecl to aggregate_value_p.
      	* reg-stack.c (stack_result): Likewise.
      	* rtl.h (struct_value_rtx, struct_value_incoming_rtx): Delete.
      	* stmt.c (expand_value_return): Convert to
      	calls.promote_function_return hook.
      	* target-def.h: Add TARGET_PROMOTE_FUNCTION_ARGS,
      	TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
      	TARGET_STRUCT_VALUE_RTX, TARGET_RETURN_IN_MEMORY,
      	TARGET_EXPAND_BUILTIN_SAVEREGS, TARGET_SETUP_INCOMING_VARARGS,
      	TARGET_STRICT_ARGUMENT_NAMING,
      	TARGET_PRETEND_OUTGOING_VARARGS_NAMED, and TARGET_CALLS.
      	* target.h: Likewise.
      	* tree.h (aggregate_value_p): Also takes a tree to deduce function
      	attributes from (for target hooks).
      	* doc/tm.texi (PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN,
      	PROMOTE_PROTOTYPES, RETURN_IN_MEMORY, STRUCT_VALUE_REGNUM,
      	STRUCT_VALUE, STRUCT_VALUE_INCOMING_REGNUM, STRUCT_VALUE_INCOMING,
      	EXPAND_BUILTIN_SAVEREGS, SETUP_INCOMING_VARARGS,
      	STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED): Convert
      	to hooks.
      
      	* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Pass function
      	to aggregate_value_p.
      	* config/arm/arm.c (arm_init_cumulative_args,
      	arm_output_mi_thunk): Likewise.
      	* config/i386/i386.c (ix86_return_pops_args, x86_this_parameter):
      	Likewise.
      	* config/mips/mips.c (mips_save_reg_p, mips_expand_prologue,
      	mips_can_use_return_insn): Likewise.
      	* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
      	* config/s390/s390.c (s390_output_mi_thunk): Likewise.
      	* config/sparc/sparc.c (sparc_output_mi_thunk): Pass function to
      	aggregate_value_p.
      	* config/story16/stormy16.c (xstormy16_asm_output_mi_thunk): Pass
      	function to aggregate_value_p.
      	* objc/objc-act.c (generate_struct_by_value_array): Pass NULL to
      	aggregate_value_p.
      
      	* config/sh/sh-protos.h (sh_builtin_saveregs): Remove.
      	(sh_attr_renesas_p, sh_cfun_attr_renesas_p, sh_function_arg,
      	sh_function_arg_advance, sh_pass_in_reg_p): New.  * config/sh/sh.c
      	(sh_handle_renesas_attribute, sh_promote_prototypes,
      	sh_struct_value_rtx, sh_return_in_memory, sh_builtin_saveregs,
      	sh_setup_incoming_varargs, sh_strict_argument_naming,
      	sh_pretend_outgoing_varargs_named): New decls.
      	(targetm): Add new hooks.
      	(calc_live_regs): Save MACL and MACH if the function has the
      	renesas attribute.
      	(sh_expand_prologue): Support renesas attribute.
      	(sh_builtin_saveregs): Make static.
      	(sh_build_va_list): Support renesas attribute.
      	(sh_va_start): Likewise.
      	(sh_va_arg): Likewise.
      	(sh_promote_prototypes): New.
      	(sh_function_arg): New, moved from sh.h.  Support renesas
      	attribute.
      	(sh_function_arg_advance): Likewise.
      	(sh_return_in_memory): Likewise.
      	(sh_strict_argument_naming): Likewise.
      	(sh_pretend_outgoing_varargs_named): Likewise.
      	(sh_struct_value_rtx): New.
      	(sh_attribute): Add renesas attribute.
      	(sh_handle_renesas_attribute): New.
      	(sh_attr_renesas_p, sh_cfun_attr_renesas_p): New.
      	(sh_ms_bitfield_layout_p): Support renesas attribute also.
      	(sh_output_mi_thunk): Pass function to aggregate_value_p.  *
      	config/sh/sh.h (TARGET_SWITCHES): Add -mrenesas as an alias for
      	-mhitachi.
      	(STRUCT_VALUE_REGNUM, STRUCT_VALUE, RETURN_IN_MEMORY): Moved to
      	target hooks.
      	(sh_args): Add renesas_abi flag.
      	(INIT_CUMULATIVE_ARGS): Set it.  Pass fndecl to aggregate_value_p.
      	(FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Move to sh.c.
      	(PASS_IN_REG_P): Support renesas attribute.  Pass DF and TF on the
      	stack for the renesas abi.
      	(STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED,
      	SETUP_INCOMING_VARARGS, EXPAND_BUILTIN_SAVEREGS,
      	PROMOTE_PROTOTYPES): Moved to sh.c.  * config/sh/sh.md (call): Set
      	call cookie to indicate renesas calls.
      
      	* decl.c (finish_function): Pass fndecl to aggregate_value_p.
      
      	* misc.c (default_pass_by_ref): Convert to calls.return_in_memory
      	hook.
      
      From-SVN: r71048
      DJ Delorie committed
  24. 15 Jul, 2003 1 commit
  25. 14 Jul, 2003 1 commit
    • tm.texi (BLOCK_REG_PADDING): Describe. · 6e985040
      	* doc/tm.texi (BLOCK_REG_PADDING): Describe.
      	* expr.h (struct locate_and_pad_arg_data): Add where_pad.
      	(emit_group_load, emit_group_store): Adjust declarations.
      	Remove most occurrences of #ifdef TREE_CODE.
      	* expr.c (emit_group_load): Add "type" param, and use
      	BLOCK_REG_PADDING to determine need for a shift.  Optimize non-
      	aligned accesses if !SLOW_UNALIGNED_ACCESS.
      	(emit_group_store): Likewise.
      	(emit_push_insn, expand_assignment, store_expr, expand_expr): Adjust
      	emit_group_load and emit_group_store calls.
      	* calls.c (store_unaligned_arguments_into_pseudos): Tidy.  Use
      	BLOCK_REG_PADDING to determine whether we need endian_correction.
      	(load_register_parameters): Localize vars.  Handle shifting of
      	small values to the correct end of regs.  Adjust emit_group_load
      	call.
      	(expand_call, emit_library_call_value_1): Adjust emit_group_load
      	and emit_group_store calls.
      	* function.c (assign_parms): Set mem alignment for stack slots.
      	Adjust emit_group_store call.  Store values at the "wrong" end
      	of regs to the stack.  Use BLOCK_REG_PADDING.
      	(locate_and_pad_parm): Save where_pad.
      	(expand_function_end): Adjust emit_group_load call.
      	* stmt.c (expand_value_return): Adjust emit_group_load call.
      	* Makefile.in (calls.o): Depend on $(OPTABS_H).
      	* config/rs6000/linux64.h (TARGET_LITTLE_ENDIAN): Redefine as 0.
      	(AGGREGATE_PADDING_FIXED, AGGREGATES_PAD_UPWARD_ALWAYS): Define.
      	(MUST_PASS_IN_STACK): Define.
      	(BLOCK_REG_PADDING): Define.
      	* config/rs6000/rs6000.h (struct rs6000_args): Remove orig_nargs.
      	(PAD_VARARGS_DOWN): Define in terms of FUNCTION_ARG_PADDING.
      	* config/rs6000/rs6000.c (init_cumulative_args): Don't set orig_nargs.
      	(function_arg_padding): !AGGREGATE_PADDING_FIXED compatibility code.
      	Act on AGGREGATES_PAD_UPWARD_ALWAYS.
      
      From-SVN: r69318
      Alan Modra committed
  26. 29 Jun, 2003 1 commit
    • except.c: Convert prototypes to ISO C90. · 502b8322
      	* except.c: Convert prototypes to ISO C90.
      	* except.h: Likewise.
      	* emit-rtl.c: Likewise.
      	* et-forest.c: Likewise.
      	* et-forest.h: Likewise.
      	* except.c: Likewise.
      	* explow.c: Likewise.
      	* expmed.c: Likewise.
      	* expr.c: Likewise.
      	* expr.h: Likewise.
      
      From-SVN: r68674
      Andreas Jaeger committed
  27. 16 Jun, 2003 1 commit
    • decl.c, [...]: Don't use the PTR macro. · fad205ff
      cp:
      	* cp/decl.c, cp/pt.c, cp/search.c, cp/tree.c: Don't use the PTR
      	macro.
      
      gcc:
      	* bitmap.c, builtins.c, c-incpath.c, cgraph.c, config/frv/frv.c,
      	config/mips/mips.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c,
      	dwarf2out.c, dwarfout.c, except.c, expr.c, expr.h, fold-const.c,
      	function.c, gcc.c, genoutput.c, gensupport.c, global.c,
      	haifa-sched.c, hashtable.c, ifcvt.c, integrate.c, local-alloc.c,
      	loop.c, mips-tdump.c, mips-tfile.c, mkdeps.c, protoize.c,
      	read-rtl.c, recog.h, reload1.c, sbitmap.c, ssa-dce.c,
      	stringpool.c, tlink.c, tree.c, varasm.c, varray.c: Don't use
      	the PTR macro.
      
      From-SVN: r68043
      Kaveh R. Ghazi committed
  28. 15 Jun, 2003 1 commit
    • alloc-pool.c: Convert to ISO C90 prototypes. · 4682ae04
      	* alloc-pool.c: Convert to ISO C90 prototypes.
      	* alloc-pool.h: Likewise.
      	* alias.c: Likewise.
      	* attribs.c: Likewise.
      	* bb-reorder.c: Likewise.
      	* bitmap.h: Likewise.
      	* bitmap.c: Likewise.
      	* builtins.c: Likewise.
      
      	* tree.h: Convert prototypes of attribs.c to ISO C90.
      	* basic-block.h: Convert prototypes of bb-reorder.c to ISO C90.
      	* rtl.h: Convert prototypes of alias.c and builtins.c to ISO C90.
      	* expr.h: Convert prototypes of builtins.c to ISO C90.
      
      From-SVN: r67975
      Andreas Jaeger committed
  29. 09 Jun, 2003 1 commit
    • expr.h (EXPAND_MEMORY): New. · 017e1b43
              * expr.h (EXPAND_MEMORY): New.
              * expr.c (expand_expr): Check it.
              * stmt.c (expand_asm_operands): Provide it when the constraint
              requires a memory.  Warn for memory input constraints without
              a memory operand.
      
              * gcc.dg/20011029-2.c: Fix the array reference.
              * gcc.dg/asm-7.c: New.
      
      From-SVN: r67645
      Richard Henderson committed
  30. 03 Jun, 2003 2 commits
    • function.c (assign_parms): Split complex arguments. · ded9bf77
      2003-06-03  Aldy Hernandez  <aldyh@redhat.com>
      
              * function.c (assign_parms): Split complex arguments.
      
              * doc/tm.texi (SPLIT_COMPLEX_ARGS): Document.
      
              * expr.h (SPLIT_COMPLEX_ARGS): Define.
              (split_complex_types): Protoize.
              (split_complex_values): Protoize.
      
              * calls.c (expand_call): Split complex arguments on architectures
              that require it.
              (split_complex_values): New.
              (split_complex_types): New.
      
              * config/rs6000/rs6000.c (rs6000_libcall_value): New.
              (rs6000_function_value): Handle complex values on AIX.
              (rs6000_complex_function_value): New.
      
              * config/rs6000/rs6000-protos.h (rs6000_libcall_value): Protoize.
      
              * config/rs6000/rs6000.h (LIBCALL_VALUE): Call function.
              (SPLIT_COMPLEX_ARGS): New.
      
      From-SVN: r67367
      Aldy Hernandez committed
    • builtins.c (expand_builtin_memcpy): Remove endp argument and endp != 0 handling. · 8fd3cf4e
      	* builtins.c (expand_builtin_memcpy): Remove endp argument and endp
      	!= 0 handling.  Pass 0 to store_by_pieces.
      	(expand_builtin_mempcpy): Add endp argument.  Don't call
      	expand_builtin_memcpy, call store_by_pieces resp. move_by_pieces
      	directly.  If ignoring result, only do expand_call.
      	(expand_builtin_stpcpy): Likewise.  Call expand_builtin_mempcpy
      	otherwise.
      	(expand_builtin_strncpy, expand_builtin_memset): Adjust
      	store_by_pices callers.
      	(expand_builtin): Adjust expand_builtin_memcpy and
      	expand_builtin_mempcpy callers.
      	* expr.c (can_move_by_pieces): New function.
      	(move_by_pieces): Add endp argument, return to resp. memory at end
      	or one byte earlier depending on endp.
      	(store_by_pieces): Likewise.
      	(emit_block_move): Adjust call to move_by_pieces.
      	(emit_push_insn): Adjust move_by_pieces caller.
      	* expr.h (can_move_by_pieces): New prototype.
      	(store_by_pieces): Adjust prototypes.
      	* rtl.h (move_by_pieces): Adjust prototype.
      	* config/mips/mips.c (expand_block_move): Adjust move_by_pieces
      	caller.
      
      	* gcc.c-torture/execute/builtins/string-4.c (main_test): Remove
      	mempcpy test with post-increments.
      	* gcc.c-torture/execute/string-opt-3.c: New test.
      	* gcc.dg/string-opt-1.c: New test.
      
      From-SVN: r67358
      Jakub Jelinek committed
  31. 12 May, 2003 1 commit
    • Mon May 12 11:32:53 CEST 2003 Jan Hubicka <jh@suse.cz> · 58e15542
      	* expr.h (assemble_static_space): Update prototype.
      	* output.h (assemble_zeros, output_constant): Likewise.
      	* elfos.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): Make it 64bit clean
      	* alpha.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASK_OUTPUT_LOCAL): Make
      	it 64bit clean.
      	* elf.h (ASM_OTUPUT_SKIP): Likewise.
      	* unicosmk.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMM): Likewise.
      	* arm.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
      	Expect HOST_WIDE_INT operand.
      	* aout.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
      	Expect HOST_WIDE_INT operand.
      	* unknown-elf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
      	Expect HOST_WIDE_INT operand.
      	* avr.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP): Expect
      	HOST_WIDE_INT operand.
      	* c4x.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP,
      	ASM_OUTPUT_BSS): Expect HOST_WIDE_INT operand.
      	* aout.h (ASM_OTUPUT_SKIP): Likewise.
      	* cris.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
      	* darwin.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON): Likewise.
      	* dsp16xx.h (ASM_OTUPUT_SKIP): Likewise.
      	* frv.h (ASM_OTUPUT_SKIP): Likewise.
      	* h8300.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_LOCAL): Likewise.
      	* 370.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
      	Make it 64bit
      	clean.
      	* att.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand.
      	* bsd.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
      	Make it 64bit clean.
      	* darwin.h (ASM_OUTPUT_SKIP): Make it 64bit clean..
      	* sco5.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Expect
      	HOST_WIDE_INT operand
      	* svr3gas.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
      	Expect HOST_WIDE_INT operand
      	* sysv3.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand
      	* i960.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON,
      	ASM_OUTPUT_ALIGNED_LOCAL): Expect HOST_WIDE_INT operand
      	* ip2k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
      	Likewise.
      	* m32r.h (ASM_OUTPUT_COMMON): Likewise.
      	* 3b1.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
      	Likewise.
      	* amix.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
      	* crds.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
      	* hp320.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
      	ASM_OUTPUT_SKIP): Likewise.
      	* m68k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
      	Likewise.
      	* m68kelf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
      	ASM_OUTPUT_SKIP): Likewise.
      	* m68kv4.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
      	ASM_OUTPUT_SKIP): Likewise.
      	* mot3300.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise.
      	* netbsd-elf.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON,
      	ASM_OUTPUT_SKIP): Likewise.
      	* sgs.h (ASM_OUTPUT_SKIP): Likewise.
      	* tower-as.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON,
      	ASM_OUTPUT_SKIP): Likewise.
      	* m88k.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP):
      	Likewise.
      	* mcore.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_BSS, ASM_OUTPUT_SKIP): Likewise.
      	* iris.h (ASM_OUTPUT_LOCAL): Likewise.
      	* mips.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise.
      	* ns32k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
      	ASM_OUTPUT_SKIP): Make it 64bit clean.
      	* pa-pro-end.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL):
      	Make it 64bit clean.
      	* pa.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL,
      	ASM_OUTPUT_SKIP): Make it 64bit clean.
      	* hpux.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL): Make it
      	64bit clean.
      	* romp.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect
      	HOST_WIDE_INT argument
      	* s390.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT argument.
      	* sh.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect
      	HOST_WIDE_INT argument
      	* sol2.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument
      	* sparc.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): HOST_WIDE_INT argument
      	* svr3.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument
      	* vax.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
      	HOST_WIDE_INT argument
      	* vaxv.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument
      	* xtensa.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument
      	* varasm.c (asm_output_bss, asm_output_aligned_bss,
      	asm_emit_uninitialized, assemble_zeros, assemble_static_space):
      	HOST_WIDE_INT argument
      
      From-SVN: r66713
      Jan Hubicka committed
  32. 09 May, 2003 1 commit
    • expr.c (move_block_from_reg): Remove "size" parm. · c6b97fac
      	* expr.c (move_block_from_reg): Remove "size" parm.  Localize vars.
      	Move code handling pieces not larger than a word to..
      	* function.c (assign_parms): ..here, but use change_address instead
      	of adjust_address and operand_subword, and expand_binop instead of
      	expand_shift.  Adjust calls to move_block_from_reg.
      	* expr.h (move_block_from_reg): Update declaration.
      	(copy_blkmode_from_reg): Formatting.
      	* Makefile.in (function.o): Add $(OPTABS_H) to deps.
      	* config/alpha/alpha.c (alpha_setup_incoming_varargs): Adjust
      	move_block_from_reg calls.
      	* config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
      	* config/i960/i960.c (i960_setup_incoming_varargs): Likewise.
      	* config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
      	* config/m88k/m88k.c (m88k_builtin_saveregsk): Likewise.
      	* config/mips/mips.c (mips_setup_incoming_varargs): Likewise.
      	* config/pa/pa.c (hppa_builtin_saveregs): Likewise.
      	* config/romp/romp.h (SETUP_INCOMING_VARARGS): Likewise.
      	* config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
      	* config/sh/sh.c (sh_builtin_saveregs): Likewise.
      
      From-SVN: r66623
      Alan Modra committed
  33. 07 May, 2003 1 commit
  34. 02 May, 2003 1 commit
    • calls.c (struct arg_data): Move offset, slot_offset, size and alignment_pad to… · e7949876
      calls.c (struct arg_data): Move offset, slot_offset, size and alignment_pad to struct locate_and_pad_arg_data.
      
      	* calls.c (struct arg_data): Move offset, slot_offset, size and
      	alignment_pad to struct locate_and_pad_arg_data.  Update all refs.
      	(initialize_argument_information): Adjust call to locate_and_pad_parm.
      	Delete alignment_pad var.  Don't calculate slot_offset here.
      	(emit_library_call_value_1): Delete alignment_pad, offset and size
      	vars.  Use struct locate_and_pad_arg_data instead.  Adjust refs.
      	Adjust call to locate_and_pad_parm.  Don't tweak arg size for
      	partial in-regs here.  Formatting fixes.
      	* expr.h (struct locate_and_pad_arg_data): New struct.
      	(locate_and_pad_parm): Adjust declaration.
      	* function.c (assign_parms): Localize vars.  Use "locate" instead of
      	other arg location vars.  Don't invoke FUNCTION_ARG or
      	FUNCTION_INCOMING_ARG unless pretend_named is different from
      	named_arg.  Heed MUST_PASS_IN_STACK and set up "partial" before
      	calling locate_and_pad_parm.  Adjust locate_and_pad_parm call.
      	Use slot_offset for stack home of reg parms.  Correct test for
      	parm passed in memory.  Formatting fixes.
      	(locate_and_pad_parm): Add "partial" to params.  Replace offset_ptr
      	arg_size_ptr and alignment pad with "locate".  Set slot_offset here.
      	Correct initial_offset_ptr handling.  Localize vars.  Always pad
      	locate->offset even when in_regs.
      
      From-SVN: r66383
      Alan Modra committed
  35. 28 Apr, 2003 1 commit
    • c-decl.c (finish_decl): When prototype with asmspec is found for built-in... · 9661b15f
      	* c-decl.c (finish_decl): When prototype with asmspec is found
      	for built-in, adjust built_in_decls as well as expr.c decls.
      	* expr.c (init_block_move_fn, init_block_clear_fn): New functions.
      	(emit_block_move_libcall_fn, clear_storage_libcall_fn): Use it.
      	* expr.c (init_block_move_fn, init_block_clear_fn): New prototypes.
      
      	* gcc.c-torture/execute/string-opt-asm-1.c: New test.
      	* gcc.c-torture/execute/string-opt-asm-2.c: New test.
      
      From-SVN: r66181
      Jakub Jelinek committed
  36. 14 Apr, 2003 1 commit