+2004-09-09 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
+ save_size.
+
+2004-09-08 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
+ * config/rs6000/power5.md (power5-lmul): Same.
+
+2004-09-08 Richard Henderson <rth@redhat.com>
+
+ PR rtl-opt/17186
+ * function.c (expand_function_end): Have fall-off-the-end
+ return path jump around return register setup.
+
+2004-09-08 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * config/sparc/sparc.c (sparc_indent_opcode): New variable.
+ (output_return): Do not test for the presence of the 'unimp' insn.
+ Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
+ as predicates instead of custom ones. Return raw strings when
+ possible.
+ (output_sibcall): Likewise. Concatenate strings.
+ (output_ubranch): Remove kludge for TurboSPARC.
+ (output_cbranch): Remove 'noop' parameter. Do not output 'nop'.
+ (output_v9branch): Likewise.
+ (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
+ <#>: Set sparc_indent_opcode if the delay slot is filled.
+ <(>: Likewise.
+ <)>: New operand to emit the displacement from the saved PC on return.
+ <@>: Remove.
+ * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
+ (ASM_OUTPUT_OPCODE): New macro.
+ (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
+ * config/sparc/sparc.md (normal_branch, inverted_branch,
+ normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
+ inverted_fpe_branch): Adjust call to output_cbranch.
+ (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
+ call to output_v9branch.
+ * config/sparc/sparc-protos.h (output_cbranch): Adjust.
+ (output_v9branch): Likewise.
+
+2004-09-08 Devang Patel <dpatel@apple.com>
+
+ * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
+ -segs_read_only_addr and -segs_read_write_addr.
+ (WORD_SWITCH_TAKES_ARG): Same.
+ (LINK_SPEC): Same.
+ * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
+ -segs_read_write_addr.
+
+2004-09-08 Richard Henderson <rth@redhat.com>
+
+ * 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.
+
+2004-09-08 Devang Patel <dpatel@apple.com>
+
+ * tree-if-conv.c (find_phi_replacement_condition): Return true
+ edge block.
+ (replace_phi_with_cond_modify_expr): Select conditional expr args
+ based on true edge basic block.
+
+2004-09-08 Jan Hubicka <jh@suse.cz>
+
+ * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
+ variables being alias set.
+
+2004-09-08 Nathan Sidwell <nathan@codesourcery.com>
+
+ * final.c (shorten_branches, final, get_insn_template,
+ output_alternate_entry_point, final_scan_insn, alter_subreg,
+ alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
+ leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
+ * fix-header.c (lookup_std_proto): Likewise.
+ * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
+ verify_local_live_at_start, update_life_info, mark_reg,
+ calculate_global_regs_live, allocate_reg_life_data,
+ init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
+ ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
+ attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
+ * fold-const.c (force_fit_type, div_and_round_double,
+ may_negate_without_overflow_p, int_const_binop, const_binop,
+ size_binop, size_diffop, fold_convert_const, fold_convert,
+ invert_tree_comparison, swap_tree_comparison,
+ comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
+ range_binop, make_range, fold_cond_expr_with_comparison,
+ fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
+ fold_abs_const, fold_not_const, fold_relational_const, round_up,
+ round_down): Likewise.
+ * function.c (find_function_data, assign_stack_temp_for_type,
+ instantiate_virtual_regs_lossage, aggregate_value_p,
+ assign_parm_find_entry_rtl, assign_parm_setup_block,
+ expand_function_start, expand_function_end, keep_stack_depressed,
+ handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
+
+2004-09-08 Daniel Berlin <dberlin@dberlin.org>
+
+ * Makefile.in (tree-loop-linear.o): Added.
+ (OBJS-common): Add tree-loop-linear.o
+ * common.opt: New flag, ftree-loop-linear.
+ * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
+ * tree-flow.h: Add prototype for linear_transform_loops.
+ * tree-optimize.c: Add linear transform after vectorization.
+ * tree-pass.h: Add struct pass_linear_transform.
+ * tree-ssa-loop.c: Add pass_linear_transform.
+ * tree-loop-linear.c: New file.
+ * lambda-code.c: gcc_assertify.
+ (gcc_loop_to_lambda_loop): Handle all exit tests.
+ Handle case where we have (invariant >= induction var).
+ (find_induction_var_from_exit_cond): Ditto.
+
+2004-09-08 Jie Zhang <zhangjie@magima.com.cn>
+
+ * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
+ memory tag is call clobbered, so are its aliases.
+ (group_aliases): When two memory tags being grouped, if one is
+ call clobbered, so are the other and its aliases.
+ (add_may_alias): Remove call-clobbering stuff.
+ (replace_may_alias): Likewise.
+ (merge_pointed_to_info): Merge pt_global_mem
+
+2004-09-08 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
+ * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
+ (cgraph_expand_function): Remove stale cgraph edges of currently
+ compiled function; fix non-unit-at-a-time code copying function
+ node for later reuse.
+
2004-09-08 Nathan Sidwell <nathan@codesourcery.com>
* vec.c (vec_p_reserve, vec_o_reserve): Rename to ...