+2005-01-01 Steven Bosscher <stevenb@suse.de>
+
+ PR middle-end/17544
+ * c-decl.c (finish_function): If compiling C99, annotate the
+ compiler generated return with the current file name and line 0.
+ * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
+ the source line is greater than 0.
+ (remove_bb): Likewise.
+
+2004-12-31 Richard Henderson <rth@redhat.com>
+
+ PR tree-opt/19042
+ * tree-sra.c (decide_block_copy): Force use_block_copy false
+ for complex values.
+
+2004-12-31 Richard Henderson <rth@redhat.com>
+
+ PR middle-end/17799
+ * function.c (use_register_for_decl): Check DECL_IGNORED_P instead
+ of DECL_ARTIFICIAL.
+ (assign_parms_augmented_arg_list): Set DECL_IGNORED_P.
+ * c-decl.c (build_compound_literal): Likewise.
+ * dwarf2asm.c (dw2_force_const_mem): Likewise.
+ * gimplify.c (create_artificial_label): Likewise.
+ * tree-inline.c (expand_call_inline): Likewise.
+ * var-tracking.c (vt_initialize): Likewise.
+ * tree-outof-ssa.c (create_temp): Copy DECL_IGNORED_P.
+
+2004-12-31 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR target/19211
+ * config/darwin.c (machopic_legitimize_pic_address): If the orig
+ is subregister return orig.
+
+2004-12-31 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-scalar-evolution.c (instantiate_parameters_1): Copy the
+ expression only if needed.
+
+2004-12-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa-hpux.h (HANDLE_SYSV_PRAGMA, HANDLE_PRAGMA_PACK_PUSH_POP): Define.
+
+2004-12-31 Hans-Peter Nilsson <hp@bitrange.com>
+
+ PR target/18701
+ * combine.c (combine_simplify_rtx): Do not allow paradoxical
+ subregs of MEM.
+
+ PR target/18701
+ * combine.c (gen_lowpart_for_combine): When stripping SUBREG of
+ MEM, adjust imode and isize.
+
+2004-12-30 Richard Henderson <rth@redhat.com>
+
+ * config/ia64/ia64.c (hfa_element_mode): Return false for
+ zero-sized top-level aggregates.
+
+2004-12-30 Jan Hubicka <jh@suse.cz>
+
+ PR target/18019
+ * i386.md (movqi_1): Fix -Os instruction choice.
+
+2004-12-30 Steven Bosscher <stevenb@suse.de>
+
+ * global.c (regclass_intersect): Remove.
+ (mark_reg_use_for_earlyclobber): Use reg_classes_intersect_p instead.
+
+2004-12-30 Richard Henderson <rth@redhat.com>
+
+ * config/ia64/ia64.c (ia64_function_value): Use PARALLEL for
+ aggregates with XF/XCmode.
+
+2004-12-29 Richard Henderson <rth@redhat.com>
+
+ * target.h (targetm.calls.arg_partial_bytes): New.
+ * target-def.h (TARGET_ARG_PARTIAL_BYTES): New.
+ * calls.c (store_unaligned_arguments_into_pseudos): Update for
+ partial in bytes.
+ (load_register_parameters): Likewise.
+ (store_one_arg): Likewise.
+ (initialize_argument_information): Use targetm.calls.arg_partial_bytes.
+ (emit_library_call_value_1): Likewise.
+ * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
+ (emit_push_insn): Update for partial in bytes.
+ * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
+ * function.c (assign_parm_find_entry_rtl): Use
+ targetm.calls.arg_partial_bytes. Update for result in bytes.
+ (locate_and_pad_parm): Update for partial in bytes.
+ * system.h (FUNCTION_ARG_PARTIAL_NREGS): Poison.
+ * targhooks.c (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): New.
+ * targhooks.h (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Declare.
+ * doc/tm.texi (TARGET_ARG_PARTIAL_BYTES): Rename and update from
+ FUNCTION_ARG_PARTIAL_NREGS.
+
+ * config/arc/arc.h, config/c4x/c4x.h, config/i386/i386.h,
+ config/i860/i860.h, config/m68hc11/m68hc11.h, config/m68k/m68k.h,
+ config/pdp11/pdp11.h, config/s390/s390.h, config/stormy16/stormy16.h,
+ config/xtensa/xtensa.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
+
+ * config/alpha/alpha.c (alpha_arg_partial_bytes): New.
+ (TARGET_ARG_PARTIAL_BYTES): New.
+ * config/alpha/alpha.h, config/alpha/unicosmk.h,
+ config/alpha/vms.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
+
+ * config/arm/arm.h (FUNCTION_ARG_PARTIAL_NREGS): Move ...
+ * config/arm/arm.c (arm_arg_partial_bytes): ... here.
+ (TARGET_ARG_PARTIAL_BYTES): New.
+
+ * config/cris/cris.h (FUNCTION_ARG_PARTIAL_NREGS): Move ...
+ * config/cris/cris.c (cris_arg_partial_bytes): ... here.
+ (TARGET_ARG_PARTIAL_BYTES): New.
+
+ * config/fr30/fr30.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
+ * config/fr30/fr30.c (fr30_arg_partial_bytes): Rename from
+ fr30_function_arg_partial_nregs. Adjust to return bytes.
+ (TARGET_ARG_PARTIAL_BYTES): New.
+ * config/fr30/fr30-protos.h: Update.
+
+ * config/frv/frv.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
+ * config/frv/frv.c (frv_arg_partial_bytes): Rename from
+ frv_function_arg_partial_nregs. Adjust to return bytes.
+ (TARGET_ARG_PARTIAL_BYTES): New.
+ * config/frv/frv-protos.h: Update.
+
+ * config/ia64/ia64.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
+ * config/ia64/ia64.c (ia64_arg_partial_bytes): Rename from
+ ia64_function_arg_partial_nregs. Adjust to return bytes.
+ (TARGET_ARG_PARTIAL_BYTES): New.
+ * config/ia64/ia64-protos.h: Update.
+
+ * config/iq2000/iq2000.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
+ * config/iq2000/iq2000.c (iq2000_arg_partial_bytes): Rename from
+ function_arg_partial_nregs. Adjust to return bytes.
+ (TARGET_ARG_PARTIAL_BYTES): New.
+ * config/iq2000/iq2000-protos.h: Update.
+
+ * config/m32r/m32r.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
+ * config/m32r/m32r.c (m32r_arg_partial_bytes): Rename from
+ function_arg_partial_nregs. Adjust to return bytes.
+ (TARGET_ARG_PARTIAL_BYTES): New.
+ * config/m32r/m32r-protos.h: Update.
+
+ * config/mcore/mcore.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
+ * config/mcore/mcore.c (mcore_arg_partial_bytes): Rename from
+ mcore_function_arg_partial_nregs. Adjust to return bytes.
+ (TARGET_ARG_PARTIAL_BYTES): New.
+ * config/mcore/mcore-protos.h: Update.
+
+ * config/mips/mips.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
+ * config/mips/mips.c (mips_arg_partial_bytes): Rename from
+ function_arg_partial_nregs. Adjust to return bytes.
+ (TARGET_ARG_PARTIAL_BYTES): New.
+ * config/mips/mips-protos.h: Update.
+
+ * config/mn10300/mn10300.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
+ * config/mn10300/mn10300.c (mn10300_arg_partial_bytes): Rename from
+ function_arg_partial_nregs. Adjust to return bytes.
+ (TARGET_ARG_PARTIAL_BYTES): New.
+ * config/mn10300/mn10300-protos.h: Update.
+
+ * config/ns32k/ns32k.h (FUNCTION_ARG_PARTIAL_NREGS): Move ...
+ * config/ns32k/ns32k.c (ns32k_arg_partial_bytes): ... here.
+ (TARGET_ARG_PARTIAL_BYTES): New.
+
+ * config/pa/pa.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
+ * config/pa/pa.c (pa_arg_partial_bytes): Rename from
+ function_arg_partial_nregs. Handle 32-bit. Adjust to return bytes.
+ (TARGET_ARG_PARTIAL_BYTES): New.
+ * config/pa/pa-protos.h: Update.
+
+ * config/rs6000/rs6000.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
+ * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Rename from
+ function_arg_partial_nregs. Adjust to return bytes.
+ (TARGET_ARG_PARTIAL_BYTES): New.
+ * config/rs6000/rs6000-protos.h: Update.
+
+ * config/sh/sh.h (FUNCTION_ARG_PARTIAL_NREGS): Move ...
+ * config/sh/sh.c (sh_arg_partial_bytes): ... here.
+ (TARGET_ARG_PARTIAL_BYTES): New.
+
+ * config/sparc/sparc.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
+ * config/sparc/sparc.c (sparc_arg_partial_bytes): Rename from
+ function_arg_partial_nregs. Adjust to return bytes.
+ (TARGET_ARG_PARTIAL_BYTES): New.
+ * config/sparc/sparc-protos.h: Update.
+
+ * config/v850/v850.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
+ * config/v850/v850.c (v850_arg_partial_bytes): Rename from
+ function_arg_partial_nregs. Adjust to return bytes.
+ (TARGET_ARG_PARTIAL_BYTES): New.
+ * config/v850/v850-protos.h: Update.
+
+2004-12-30 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * config/mmix/mmix.h (ASM_OUTPUT_INTERNAL_LABEL): Define.
+ * config/mmix/mmix.c (mmix_asm_output_internal_label): New
+ function.
+ * config/mmix/mmix-protos.h (mmix_asm_output_internal_label):
+ Prototype.
+
+2003-12-29 Richard Henderson <rth@redhat.com>
+
+ * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): True.
+
+2004-12-29 Jeff Law <law@redhat.com>
+
+ * tree-outof-ssa.c (insert_backedge_copies): New function.
+ (rewrite_out_of_ssa): Use it.
+
+2004-12-29 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/18179
+ * tree-vectorizer.c (vect_get_base_and_offset): Call get_inner_reference
+ and vect_analyze_offset_expr.
+ (vect_create_addr_base_for_vector_ref): Build address_base by combining
+ base and initial_offset fields of vect_stmt_info.
+ (vect_update_inits_of_dr): Update offset of data-ref instead of its
+ access-fn. Remove argument.
+ (vect_update_inits_of_drs): Call vect_update_inits_of_dr with new
+ arguments.
+ (vect_compute_data_ref_alignment): Check misalignment info in
+ vect_stmt_info. Remove argument.
+ (vect_compute_data_refs_alignment): Call vect_compute_data_ref_alignment
+ with correct argument.
+ (vect_analyze_data_ref_access): Check access info in vect_stmt_info.
+ (vect_analyze_pointer_ref_access): Update step and initial_offset fields
+ of vect_stmt_info.
+ (vect_get_memtag_and_dr): Call vect_get_base_and_offset and set the
+ fields of stmt_vec_info.
+ (vect_analyze_data_refs): Find vectype and pass it to
+ vect_get_memtag_and_dr.
+ (vect_get_first_index): Remove.
+ (vect_compute_array_base_alignment): Remove.
+ (vect_compute_array_ref_alignment): Remove
+ (vect_create_data_ref_ptr): Use TYPE_SIZE_UNIT instead GET_MODE_SIZE.
+ (vect_gen_niters_for_prolog_loop): Use TREE_CONSTANT instead
+ host_integerp.
+ (vectorizable_load): Use size arithmetics.
+
+2004-12-29 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/18179
+ * tree-vectorizer.c (vect_get_base_and_offset): Rename (previous name
+ vect_get_base_and_bit_offset).
+ (vect_get_memtag_and_dr): Rename (previous name vect_get_symbl_and_dr).
+
+2004-12-29 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/18179
+ * tree-vectorizer.h (struct _stmt_vec_info): Add new fields:
+ initial_offset, step, misalignment and base_aligned_p and macros
+ to access them.
+ * tree-vectorizer.c (vect_analyze_offset_expr): New function.
+ (new_stmt_vec_info): Initialize the new fields of stmt_vec_info.
+
+ (vect_create_data_ref_ptr): Fix printings.
+
+2004-12-29 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/18179
+ * tree-vectorizer.c (vect_get_symbl_and_dr): Reorganize. Add memtag
+ retrieval.
+ (vect_analyze_data_refs): Remove memtag retrieval.
+
+2004-12-28 Richard Henderson <rth@redhat.com>
+
+ PR inline-asm/15740
+ * gimplify.c (gimplify_asm_expr): Move resolve asm names ...
+ * c-typeck.c (build_asm_expr): ... here. Validate input
+ constraints. Mark memory inputs addressable.
+
+2004-12-28 Hans-Peter Nilsson <hp@bitrange.com>
+
+ PR target/18321
+ * config/mmix/mmix.c (mmix_expand_epilogue): Change type of
+ variable offset to HOST_WIDE_INT. Remove obsolete comment. Fix
+ spacing.
+
+2004-12-28 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * fold-const.c (fold_build_cleanup_point_expr): For a RETURN_EXPR,
+ we only need a cleanup point expression when the expression on the
+ left hand side of the MODIFIY_EXPR inside the return has side
+ effects.
+
+2004-12-28 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.c (vect_mark_relevant) First argument changed from
+ varray_type to varray_type*.
+ (vect_mark_stmts_to_be_vectorized): Pass &worklist instead of worklist
+ when calling vect_mark_relevant.
+
+2004-12-28 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
+ generate non-offsettable DImode lo_sum addresses.
+
+2004-12-28 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR rtl-optimization/19103
+ * loop-iv.c (iv_number_of_iterations): Fix typo.
+
+2004-12-28 Andreas Jaeger <aj@suse.de>
+
+ * genrecog.c (compute_predicate_codes): Avoid warning.
+
+2004-12-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * vax.c (vax_address_cost, vax_rtx_cost): Correct casts.
+ (vax_rtx_cost): Handle small offsets for both PLUS and MINUS.
+
+2004-12-27 Jeff Law <law@redhat.com>
+
+ * tree-ssa-dom.c (thread_across_edge): Remove broken code to
+ avoid threading into a loop.
+
+2004-12-27 Richard Henderson <rth@redhat.com>
+
+ PR target/17406
+ * config/i386/i386.c (ix86_expand_prologue): Add REG_FRAME_RELATED_EXPR
+ note for allocate_stack_worker insn.
+
+2004-12-27 Jason Merrill <jason@redhat.com>
+
+ * doc/tm.texi (TARGET_RELAXED_ORDERING): Document.
+ * target.h (struct gcc_target): Add relaxed_ordering field.
+ * target-def.h (TARGET_RELAXED_ORDERING): Define default.
+ (TARGET_INITIALIZER): Add it.
+ * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Define.
+ * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Define.
+ * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Define.
+ * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define.
+
+2004-12-27 Roger Sayle <roger@eyesopen.com>
+
+ PR driver/16118
+ * doc/invoke.texi: Document the interaction between -save-temps
+ and -x.
+
+2004-12-27 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.c (rs6000_eliminate_indexed_memrefs):
+ Do not break apart constant pool addresses.
+ (rs6000_emit_move): Only force source into REG if target is MEM.
+
+2004-12-27 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/19148
+ * gimplify.c (gimplify_cond_expr): Add post_p parameter.
+ (gimplify_modify_expr_rhs): Adjust call to gimplify_cond_expr.
+ (gimplify_expr): Likewise.
+
+2004-12-27 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.h (UNITS_PER_SIMD_WORD): Don't use MMX/3DNOW.
+
+2004-12-26 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.c (ix86_gimplify_va_arg): Also pass the result
+ of type_natural_mode to examine_argument.
+
+ * config/i386/i386.md (mov<MMXMODEI>_internal_rex64): New.
+ (movv2sf_internal_rex64): New.
+ (mov<MMXMODEI>_internal): Use no register preferences at all.
+ (movv2sf_internal): Likewise.
+
+2004-12-26 Richard Henderson <rth@redhat.com>
+
+ * simplify-rtx.c (simplify_relational_operation_1): Don't simplify
+ plus/minus across EQ for floating-point.
+
+2004-12-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/17643
+ * pa.c (pa_function_ok_for_sibcall): Sibcalls are not ok when
+ generating code for the portable runtime.
+
+2004-12-25 Richard Henderson <rth@redhat.com>
+
+ * expr.c (clear_storage): Validate CONST0_RTX extant. Special case
+ complex modes.
+
+2004-12-25 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR rtl-optimization/19078
+ * tree-ssa-loop-ivopts.c (determine_use_iv_cost_generic,
+ determine_use_iv_cost_outer): Fix computing of cost for the original
+ bivs.
+ (dump_use): Handle case related_cands == NULL.
+
+2004-12-25 Marek Michalkiewicz <marekm@amelek.gda.pl>
+
+ PR target/19059
+ * config/avr/avr.c (avr_mcu_types): Move attiny{13,2313} from avr4
+ to avr2.
+ * config/avr/avr.h (LINK_SPEC): Ditto.
+ * config/avr/t-avr (MULTILIB_MATCHES): Ditto.
+
2004-12-25 Alan Modra <amodra@bigpond.net.au>
PR target/19137
(fix_trunc{d,s}fdi2): Reorder tests.
2004-12-24 Daniel Berlin <dberlin@dberlin.org>
-
+
Fix PR debug/14638
* tree.h (DECL_DEBUG_ALIAS_OF): New macro.
that are aliases of variables we want to track, unless the
original variable is also ignored for debugging purposes.
(VARIABLE_HASH_VAL): Use DECL_UID, so that this is deterministic.
- * tree-outof-ssa.c (create_temp): Note who we are a debug alias of.
+ * tree-outof-ssa.c (create_temp): Note who we are a debug alias of.
* dwarf2out.c (dwarf2out_var_location): Add us to the location of
the decl we are an alias of.
Change eflags_p parameter in call to output_fp_compare.
(*cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf): Remove.
(*cmpfp_2_sf_1, *cmpfp_2_df_1, *cmpfp_2_xf_1): Rename to
- *cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf. Change eflags_p
+ *cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf. Change eflags_p
parameter in call to output_fp_compare.
(*cmpfp_2_u): Remove.
(*cmpfp_2_u_1): Rename to *cmpfp_2_u. Change eflags_p parameter