2005-04-20  Release Manager

	* GCC 4.0.0 released.

2005-04-18  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/20991
	* tree-ssa-ccp.c (fold_stmt): Don't optimize OBJ_TYPE_REFs if that
	would result in an already finalized unreachable node becoming
	reachable while cgraph_global_info_ready.

2005-04-19  Ben Elliston  <bje@au.ibm.com>

	* doc/invoke.texi (Optimize Options): Refer to the correct
	optimisation flag -ftree-dominator-opts, not -ftree-dom.

2005-04-17  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/20490
	Fix PR tree-optimization/20929

	* tree-ssa-pre.c (create_expression_by_pieces): Use
	force_gimple_operand on result of fold, value number
	gimple_operand result.

2005-04-17  Joseph S. Myers  <joseph@codesourcery.com>

	Merge from mainline:

	2005-02-28  Geert Bosch  <bosch@gnat.com>

		PR ada/15977
		* doc/contrib.texi: List contributors for Ada front end

	2005-03-14  Geoffrey Keating  <geoffk@apple.com>

		* doc/cppopts.texi (-fexec-charset): Add concept index
		entry.
		(-fwide-exec-charset): Likewise.
		(-finput-charset): Likewise.

	2005-04-15  David Edelsohn  <edelsohn@gnu.org>

		* doc/install.texi (*-ibm-aix*): Add comment about system
		limits.

2005-04-17  Richard Sandiford  <rsandifo@redhat.com>

	* combine.c (combine_simplify_rtx): Remove a transformation that
	relies on an invalid assumption about rtl sign-extension semantics.

2005-04-17  Richard Henderson  <rth@redhat.com>

	PR target/20375
	* config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
	of CUMULATIVE_ARGS past the last named argument.
	(alpha_va_start): Expect pretend_args_size only if strictly less than
	6 named arguments.
	* config/alpha/alpha.h (TARGET_FP, TARGET_FPREGS, TARGET_GAS,
	TARGET_IEEE_CONFORMANT, TARGET_IEEE, TARGET_IEEE_WITH_INEXACT,
	TARGET_BUILD_CONSTANTS, TARGET_FLOAT_VAX, TARGET_BWX, TARGET_MAX,
	TARGET_FIX, TARGET_CIX, TARGET_EXPLICIT_RELOCS, TARGET_SMALL_DATA,
	TARGET_TLS_KERNEL, TARGET_SMALL_TEXT, TARGET_LONG_DOUBLE_128,
	TARGET_CPU_EV5, TARGET_CPU_EV6, TARGET_SUPPORT_ARCH): Booleanize.

2005-04-17  Alexandre Oliva  <aoliva@redhat.com>

	PR middle-end/20739
	* gimplify.c (gimplify_addr_expr): Compensate for removal of
	e.g. cv-qualification conversions.

2005-04-16  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Specific): Avoid using asterisks in @anchor
	names related to target triplets.
	Remove i?86-*-esix from platform directory.
	Remove powerpc-*-eabiaix from platform directory.

2005-04-16  Joseph S. Myers  <joseph@codesourcery.com>

	PR middle-end/20491
	* config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
	falling through from SUBREG case to REG.

2005-04-15  Dave Korn <dave.korn@artimi.com>

	* gcc.c (default_compilers): Clarify obscure error message when
	reading from standard input.

2005-04-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* gthr-posix.c (pthread_cancel): Define.
	(pthread_mutexattr_init): Likewise.
	(pthread_mutexattr_settype): Likewise.
	(pthread_mutexattr_destroy): Likewise.

2005-04-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* doc/invoke.texi: Fix typos.
	* doc/md.texi: Likewise.
	* doc/rtl.texi: Likewise.
	* doc/sourcebuild.texi: Likewise.
	* doc/tm.texi: Likewise.

2005-04-15  Alexandre Oliva  <aoliva@redhat.com>

	* tree-eh.c (lower_try_finally_copy): Generate new code in
	response to goto_queue entries as if the queue was sorted by
	index, not pointers.
	(lower_try_finally_switch): Likewise.

2005-04-15  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
	(JUMP_TABLES_IN_TEXT_SECTION): Define.
	* config/mips/mips.c (mips16_insn_length): Remove reference to
	JUMP_TABLES_IN_TEXT_SECTION.

2005-04-14  Joseph S. Myers  <joseph@codesourcery.com>

	* doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
	refer to 4.0.

2005-04-14  Steve Ellcey  <sje@cup.hp.com>

	PR target/20924
	* config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
	fpsr 0 instead of fpsr 1.
	(divsf3_internal_thr): Ditto.
	(divdf3_internal_lat): Ditto.
	(divdf3_internal_thr): Ditto.
	(divxf3_internal_lat): Ditto.
	(divxf3_internal_thr): Ditto.

2005-04-14  Ulrich Weigand  <uweigand@de.ibm.com>

	PR target/20927
	* config/s390/s390-modes.def: Define TFmode.

2005-04-14  Alexandre Oliva  <aoliva@redhat.com>
	    Roger Sayle  <roger@eyesopen.com>

	PR target/20126
	* loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
	signal that all GIVs couldn't be reduced.

2005-04-12  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
	* config/sparc/sparc.md (untyped_call): Save the registers manually.

	* config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.

2005-04-12  Ulrich Weigand  <uweigand@de.ibm.com>

	PR middle-end/20917
	* config/s390/s390.md ("*set_tp"): Use SET in pattern.
	("set_tp_64", "set_tp_31"): Adapt expanded pattern.

2005-04-09  Jakub Jelinek  <jakub@redhat.com>

	PR target/20795
	* config/i386/i386.c (construct_container): Pass empty aligned
	struct, union or class in memory.

2005-04-08  Ulrich Weigand  <uweigand@de.ibm.com>

	Backport from mainline:
	* config/s390/tpf.h (ASM_SPEC): Define.

2005-04-07  Andreas Schwab  <schwab@suse.de>

	Backport from mainline:

	2005-04-03  Steven Bosscher  <stevenb@suse.de>

	PR middle-end/20648
	* bb-reorder.c (duplicate_computed_gotos): Do not unfactor
	a computed goto if the edge to the computed goto block has
	incoming abnormal edges.  Clarify how the function works.

2005-04-07  Joseph S. Myers  <joseph@codesourcery.com>

	PR target/20093
	* simplify-rtx.c (simplify_unary_operation): Check
	SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.

2005-04-07  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/18659
	PR ada/18819
	* doc/invoke.texi (Optimize Options): Document that
	-ftree-sra is not automatically enabled for the Ada compiler.

2005-04-06  Richard Sandiford  <rsandifo@redhat.com>

	* c.opt (-F): Remove trailing whitespace from help string.
	(-finput-charset): Use a tab to separate the switch name and help
	string.
	* common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
	(-ftree-vectorizer-verbose): Likewise.

2005-04-06  Dale Johannesen  <dalej@apple.com>

	* doc/invoke.texi (Optimization Options):  Remove
	duplicate -fcse-follow-jumps.  Add -fweb.
	(-ftree-lim):  Fix spelling (-ftree-loop-im, invariants).
	(-fivcanon):  Fix spelling (-ftree-loop-ivcanon).

2005-04-06  Joseph S. Myers  <joseph@codesourcery.com>

	* c-decl.c (finish_decl): Apply pending #pragma weak regardless of
	scope.

2005-04-06  Ranjit Mathew  <rmathew@hotmail.com>

	* doc/install.texi: Update the URL for Jacks.
	* doc/sourcebuild.texi: Likewise.

2005-04-06  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/17245
	* config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
	Revert 2004-10-08 patch.  Reject TFmode LO_SUM in 32-bit mode.

2005-04-05  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/20076
	* tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
	that call __builtin_return or __builtin_apply_args.

2005-04-06 Uros Bizjak <uros@kss-loka.si>

	PR target/20421
	* config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
	(frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
	Allocate local stack slots here.  Set ix86_optimize_mode_switching.
	flag here. Implement using define_insn_and_split.
	(frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
	(frndintxf2_mask_pm_i387): New insn patterns.
	(floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
	Do not set ix86_optimize_mode_switching flag.
	(ceilsf2, ceildf2, ceilxf2): Same.
	(btruncsf2, btruncdf2, btruncxf2): Same.
	(nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.

2005-04-05  James E. Wilson  <wilson@specifixinc.com>

	PR target/20670
	* unwind-ia64.c (uw_intall_context): Add missing load of r27.

2005-04-05  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* doc/install.texi (Configuration): Document --with-java-home.

2005-04-05  Dale Johannesen  <dalej@apple.com>

	PR middle-end/19225
	* calls.c (expand_call):  Flush pending deferrals before
	throwing call.

2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>

	PR target/20625
	* tree-ssa-loop-ivopts.c (generic_type_for): New function.
	(add_candidate_1): Use generic_type_for instead of unsigned_type_for.

2005-04-05  Roger Sayle  <roger@eyesopen.com>

	* config/i386/i386.md (*truncdfsf2_i387_1): New pattern.

2005-04-05  Ben Elliston  <bje@au.ibm.com>

	* doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
	-ftree-live_range_split.  Perhaps renamed at some point?

2005-04-05  Jason Merrill  <jason@redhat.com>

	PR c++/19317
	* calls.c (expand_call): Disable return slot optimization.

2005-04-05  Richard Henderson  <rth@redhat.com>

	PR target/20342
	PR target/20447
	* config/i386/i386.c (print_operand): Handle vector zeros.
	(ix86_split_to_parts): Handle CONST_VECTOR.
	(ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
	(ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
	what modes to tie for MMX and SSE registers.
	* config/i386/i386.h (MMX_REG_MODE_P): Remove.
	* config/i386/i386.md: Extend move 0 -> xor peephole to apply
	to vector modes as well.
	* config/i386/predicates.md (const0_operand): Handle VOIDmode
	properly as an input mode.

2005-04-05  Hans-Peter Nilsson  <hp@axis.com>

	PR rtl-optimization/20527
	* combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
	REG_INC note, test that the register also isn't mentioned in PRED
	or SUCC.

2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
	overriding.

2005-04-05  Olivier Hainque  <hainque@adacore.com>

	* config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
	match what the system unwinder expects.
	* config/mips/mips.c (mips_frame_set): If we're saving the return
	address register and the dwarf return address column number differs
	from the hard register number, adjust the note reg to refer to the
	former.

2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
	    Sebastian Pop <sebastian.pop@cri.ensmp.fr>

	PR tree-optimization/19903
	* tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
	that don't fit in their type after conversion.

2005-04-04  Roger Sayle  <roger@eyesopen.com>
	    Alexandre Oliva  <aoliva@redhat.com>

	PR c++/19199
	* fold-const.c (non_lvalue): Split tests into...
	(maybe_lvalue_p): New function.
	(fold_cond_expr_with_comparison): Preserve lvalue-ness for the
	C++ front-end prior to lowering into gimple form.

2004-04-04  Richard Sandiford  <rsandifo@redhat.com>

	PR target/19537
	* Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
	* tree-ssa-loop-ivopts.c: Include langhooks.h.
	(add_standard_iv_candidates_for_size): New function, extracting code
	from add_standard_iv_candidates and parameterizing it by type size.
	(add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.

2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* doc/invoke.texi (SPARC options): Document that
	-mlittle-endian is not supported on Linux either.

2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/20446
	* config/sparc/sparc.h (NEED_INDICATE_EXEC_STACK): Define to 0.
	* config/sparc/linux.h (TARGET_ASM_FILE_END): Delete.
	(NEED_INDICATE_EXEC_STACK): Define to 1.
	* config/sparc/linux64.h (TARGET_ASM_FILE_END): Delete.
	(NEED_INDICATE_EXEC_STACK): Define to 1.
	* config/sparc/sparc.c (TARGET_ASM_FILE_END): Set to sparc_file_end.
	(add_pc_to_pic_symbol): Rename into pic_helper_symbol.
	(add_pc_to_pic_symbol_name): Rename into pic_helper_symbol_name.
	(pic_helper_emitted_p): New global.
	(emit_pic_helper): New function extracted from...
	(load_pic_register): ...here.  Add 'delay_pic_helper' parameter.
	Do not call emit_pic_helper if delay_pic_helper is true.
	(sparc_expand_prologue): Pass 'false' to load_pic_register.
	(sparc_output_mi_thunk): Pass 'true' to load_pic_register.
	(sparc_file_end): New function.

2005-04-04  Richard Henderson  <rth@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/16104
	* fold-const.c (fold_unary): Fix folding of vector conversions.

2005-04-04  Nathan Sidwell  <nathan@codesourcery.com>

	PR debug/20505
	* dwarf2out.c (tree_add_const_value_attribute): Only add if it's
	an INTEGER_CST.

2005-04-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR c++/18644
	* doc/invoke.texi (-Wsynth): Don't document, as it now is void of
	semantics.

2005-04-02  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/19345
	* tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
	(remap_decl): Insert type decl in map earlier.

2005-04-02  Alexandre Oliva  <aoliva@redhat.com>

	PR tree-optimization/20640
	* tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
	post-dominator if it has phi nodes.
	(eliminate_unnecessary_stmts): Remove dead phis in all blocks
	before dead statements.

2005-04-02  Alexandre Oliva  <aoliva@redhat.com>

	PR middle-end/20491
	* final.c (alter_subreg): Don't call subreg_regno for a non-REG.

2005-04-02  Alexandre Oliva  <aoliva@redhat.com>

	PR rtl-optimization/20290
	* loop.c (for_each_insn_in_loop): Don't assume the loop body runs
	in every iteration if the entry point is the exit test.

2005-04-02  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
	* config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.

2005-04-02  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/t-darwin8: Comment out ppc64 multilib.

2005-04-01  Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
	    Jan Hubicka  <jh@suse.cz>
	    Steven Bosscher <stevenb@suse.de>

	* cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
	call cost based on argument sizes.
	(cgraph_mark_inline_edge): Avoid inline unit from shrinking by
	inlining.
	* params.def: (max-inline-inssn-single): Set to 450.
	(max-inline-insns-auto): Set to 90.
	(max-inline-insns-recursive): Set to 450
	(max-inline-insns-recursive-auto): Set to 450.
	(large-function-insns): Set to 2700.
	(inline-call-cost): New parameter.
	* tree-inline.c (estimate_move_cost): New function.
	(estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
	for non-gimple-regs, set cost to 0 for gimple-regs.  Compute call size
	based on arguments.
	* tree-inline.h (estimate_move_cost): Declare.
	* invoke.texi: (max-inline-inssn-single): Change default to 450.
	(max-inline-insns-auto): Change default to 90.
	(max-inline-insns-recursive): Change default to 450
	(max-inline-insns-recursive-auto): Change default to 450.
	(large-function-insns): Change default to 2700.
	(inline-call-cost): Document new parameter.

2005-04-01  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (thumb_call_via_label): Include space for SP.
	(arm_output_function_epilogue): Allow call_via_SP.
	(thumb_call_via_reg, arm_file_end): Ditto.
	* config/arm/arm.h (struct machine_function): Include space for SP.
	(thumb_call_via_label): Update declaration.

2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>

	* c-decl.c (validate_proto_after_old_defn): Look at
	TYPE_MAIN_VARIANT of argument types.

2005-04-01  Jan Hubicka  <jh@suse.cz>

	PR middle-end/20635
	* varasm.c (mark_decl_referenced): Do not mark extern inline functions
	as needed.

2005-04-01  Paolo Bonzini  <bonzini@gnu.org>

	PR middle-end/19454
	PR rtl-optimization/20600

	* combine.c (gen_binary): Remove.
	(known_cond, simplify_shift_const, find_split_point,
	combine_simplify_rtx, simplify_if_then_else, simplify_set,
	simplify_logical, expand_field_assignment, extract_left_shift,
	force_to_mode, if_then_else_cond, apply_distributive_law,
	simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
	simplify_comparison, reversed_comparison): Replace with
	simplify_gen_binary, simplify_gen_relational or
	distribute_and_simplify_rtx.
	(distribute_and_simplify_rtx): New function.

	* config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
	to fix addresses involving EBP and ESP.
	(aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
	for SUBREGed registers.
	(legitimate_address_p): Accept SUBREGed registers.

2005-04-01  Jakub Jelinek  <jakub@redhat.com>

	PR c++/19406
	* dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
	(dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
	for FIELD_DECLs.

2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.

2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/17855
	* gimplify.c (gimplify_expr): Create a temporary for lvalue
	COND_EXPR and CALL_EXPR.

2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/tree-ssa.texi: Fix a typo.

2005-03-31  Olivier Hainque  <hainque@adacore.com>

	* dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
	defined and non-zero.

2005-03-31  Alan Modra  <amodra@bigpond.net.au>

	PR target/20611
	* config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
	label operand.  Remove (use (unspec..)).  Don't emit a label on
	the offset word.
	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
	generate inline label for load_toc_v4_PIC_1b.
	(rs6000_emit_load_toc_table): Likewise.

2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>

	* config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
	ns32k-*-netbsdelf*, and ns32k-*-netbsd*.

2005-03-31  Alan Modra  <amodra@bigpond.net.au>

	* config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
	(powerpc64-*-linux*): Use it.  Rearrange tm_file assignment.
	(powerpc-*-linux*): Build a biarch compiler when --enable-targets
	is given with "powerpc64*" or "all", or when --with-cpu chooses
	a 64-bit cpu.

2005-03-30  Richard Henderson  <rth@redhat.com>

	* cgraph.h (struct cgraph_node): Add alias.
	* varasm.c (assemble_alias): Set it.
	* cgraphunit.c (cgraph_assemble_pending_functions): Check it and
	avoid calling cgraph_expand_function.

2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/772
	PR c/17913
	* c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
	C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
	c_label_context, label_context_stack): New.
	* c-decl.c (define_label): Check for jumps into statement
	expressions.  Add label to list of defined labels.
	(start_function): Push context on label_context_stack.
	(finish_function): Pop context from label_context_stack.
	* c-typeck.c (label_context_stack): New.
	(c_finish_goto_label): Check for jumps into statement
	expressions.  Add label to list of jumped to labels.
	(struct c_switch): Add blocked_stmt_expr.
	(c_start_case): Initialize it.
	(do_case): Check it.
	(c_finish_case): Verify !blocked_stmt_expr.
	(c_begin_stmt_expr):  Push context on label_context_stack.
	Increment blocked_stmt_expr.  Mark labels jumped to from outside
	as undefinable.
	(c_finish_stmt_expr): December blocked_stmt_expr.  Mark labels
	defined in the statement expression and no longer jumpable to.
	Mark labels jumped to from just outside the statement expression
	as again definable.  Pop context from label_context_stack.
	* doc/extend.texi (Statement Exprs): Update.

2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/20368
	* c-decl.c (start_function): Check for old_decl being
	error_mark_node.

2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>

	PR middle-end/20177
	* ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
	* modulo-sched.c (const_iteration_count): Return on NULL
	pre-header.
	(print_node_sched_params): Return on NULL dump_file.
	(generate_reg_moves): Handle reg-anti dependencies and disregard
	closing branch when generating register moves.
	(sms_schedule): Mark the SMSed block dirty.
	* passes.c (rest_of_handle_sms): Call update_life_info for all
	basic-blocks.
	* testsuite/gcc.dg/20050321-1.c: New test.
	* testsuite/gcc.dg/20050330-1.c: New test.

2005-03-30  Sebastian Pop  <pop@cri.ensmp.fr>

	* tree-scalar-evolution.c (instantiate_parameters_1): Return
	as soon as a chrec_dont_know is detected.

2005-03-30  Alan Modra  <amodra@bigpond.net.au>

	* doc/install.texi: Update binutils requirement for powerpc*-linux.

2005-03-30  Alan Modra  <amodra@bigpond.net.au>

	PR target/20203
	* builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
	Remove convert_memory_address call duplicating that in memory_address.

2005-03-29  Alexandre Oliva  <aoliva@redhat.com>

	PR rtl-optimization/20532
	* simplify-rtx.c (simplify_binary_operation): Protect from
	overflow when adding coefficients for PLUS or MINUS.  Handle
	CONST_DOUBLE exact power of two as multiplier.

2005-03-29  Richard Henderson  <rth@redhat.com>

	PR c/20519
	* c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
	(build_compound_literal): Likewise.  Propagate decl type into the
	initializer.
	(finish_decl): Likewise.  Use new return value from complete_array_type
	for zero sized arrays.
	(complete_array_type): Move ...
	* c-common.c (complete_array_type): ... here.  Change first argument
	to pointer-to-type-node.  Consistently use sizetype for the index
	except for zero sized arrays.  Detect zero sized arrays for pedantic
	mode diagnostics.  Create a new type node instead of modifying the
	old node in place.
	* c-tree.h (complete_array_type): Move decl ...
	* c-common.h (complete_array_type): ... here.

2005-03-29  Richard Henderson  <rth@redhat.com>

	PR tree-opt/19108
	* tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.

2005-03-29  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/20622
	* cgraph.h (struct cgraph_varpool_node): Add alias field.
	* cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
	assemble_variable on aliases.
	* varasm.c (assemble_alias): Set node->alias.
	* toplev.c (wrapup_global_declarations): Don't call
	rest_of_decl_compilation on aliases again.

2005-03-29  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR middle-end/20263
	* varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
	the DECL_NAME, not the DECL_ASSEMBLER_NAME.

2005-03-24  Geoffrey Keating  <geoffk@apple.com>

	* c.opt (fvisibility-inlines-hidden): Allow for ObjC++.

	* config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
	MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.

2005-03-25  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>

	PR target/15491
	* vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
	(vax_rtx_costs): Return false when passed unsupported rtx's.  Handle
	FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE.  Fix costs for POST_INC,
	PRE_DEC, NEG and NOT.

2005-03-25  Zdenek Dvorak  <dvorakz@suse.cz>

	PR rtl-optimization/20249
	* cse.c (insert_regs): Do not record equivalence of registers in
	different modes.

2005-03-24  James E Wilson  <wilson@specifixinc.com>

	* doc/install.texi (--enable-altivec): Delete docs.

2005-03-24  J"orn Rennecke <joern.rennecke@st.com>

	Band aid for PR target/20617:
	* config/sh/lib1funcs.asm (FUNC, ALIAS): Add .hidden directive.

2005-03-23  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/20601

	* tree-ssa-pre.c (insert_aux): Add missing condition to
	constification.

2005-03-22  James E Wilson  <wilson@specifixinc.com>

	PR c++/19769
	* dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
	origin.

2005-03-22  Daniel Berlin  <dberlin@dberlin.org>

	* c-opts.c (c_common_parse_file): Only start/end main source file
	if debug hooks says the writer wants it.
	* dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
	member.
	(xcoff_debug_hooks): Ditto.
	* debug.c (do_nothing_hooks): Ditto.
	* debug.h (gcc_debug_hooks): Ditto.
	* dwarf2out.c (dwarf2_debug_hooks): Ditto.
	* sdbout.c (sdb_debug_hooks): Ditto.
	* vmsdbgout.c (vmsdbg_debug_hooks): Ditto.

2005-03-22  Mark Mitchell  <mark@codesourcery.com>

	* doc/extend.texi: Deprecate C++ min/max operators.

2005-03-22  Jakub Jelinek  <jakub@redhat.com>

	PR target/20561
	* cfglayout.c (reemit_insn_block_notes): Don't put block notes in
	between jump table and its label.
	* final.c (shorten_branches): Handle notes in between ADDR_VEC
	resp. ADDR_DIFF_VEC and the label preceeding it.
	(final_scan_insn): Likewise.  Ensure ADDR_VEC resp. ADDR_DIFF_VEC
	is emitted in the right section.

2005-03-21  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/20539
	* fold-const.c (fold_binary): Fix type mismatch between
	TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
	(fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
	for non-truth-valued expressions.

	* c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
	and FUNCTION_DECL in the main switch.
	<TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
	TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
	we also need to convert their operands to match.
	<TRUTH_NOT_EXPR>: Likewise.

2005-03-21  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/20557
	* bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
	to determine whether a block can be duplicated, rather than test
	whether the block contains noncopyable insns ourselves.

2005-03-21  Richard Guenther  <rguenth@gcc.gnu.org>

	* tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
	unrolling if -fpeel-loops is specified, too.
	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
	Remove superfluous check for flag_unroll_loops.

2005-03-21  Nathan Sidwell  <nathan@codesourcery.com>

	PR other/20564
	* gcov.c (output_lines): Only output function block summary when
	outputting branch information.
	* doc/gcov.texi: Document format of preamble and additional block
	information lines.

2005-03-21  Richard Sandiford  <rsandifo@redhat.com>

	* libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
	(LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
	the defaults false if BITS_PER_UNIT != 8.
	(SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
	(__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
	than BITS_PER_UNIT != 8.
	(L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
	(L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
	(L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
	#undefs.
	* libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
	(__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.

2005-03-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	PR target/18551
	* config/avr/avr.c (avr_output_function_prologue): Do not use
	current_function_name() in a label, use a local label instead.

2005-03-08  Dorit Naishlos  <dorit@il.ibm.com>
	    Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/20474
	* tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
	size_type of the relevant pointer. Check for COMPLETE_TYPE_P.

2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>

	* c-decl.c (check_bitfield_type_and_width): Require bit-field
	width to have integer type.
	(build_enumerator): Require enumerator value to have integer type.

2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>

	* doc/extend.texi (__builtin_inf): Move statement about INFINITY
	to __builtin_inff.

2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>

	* c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
	std=iso9899:199x): Correct descriptions.

2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>

	* config.gcc: Consistently use solaris2.1[0-9]* instead of
	solaris2.1[0-9].

2005-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/20493
	* fold-const.c (fold_widened_comparison): Don't optimize casts of
	function pointers on targets that require function pointer
	canonicalization.
	(fold_sign_changed_comparison): Likewise.

2005-03-19  Andy Hutchinson  <HutchinsonAndy@netscape.net>

	PR target/18251
	* config/avr/avr.md (movmemhi): Rewrite as RTL loop.
	(*movmemqi_insn): Delete.
	(*movmemhi): Delete.

2005-03-18  Jan Hubicka  <jh@suse.cz>

	PR middle-end/20225
	* cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
	too late.
	* varasm.c (find_decl_and_mark_needed): Mark needed only when not
	called too late.

2005-03-18  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
	mno-fp-ret-in-387 multilib variants.

2005-03-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/18380
	* config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.

2005-03-17  Richard Henderson  <rth@redhat.com>

	* doc/extend.texi (Weak Pragmas): New section.
	(attribute alias): Clarify that target must be in the same
	translation unit.

2005-03-16  James E. Wilson  <wilson@specifixinc.com>

	* config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
	and return without creating new state if before_nops_num is nonzero.
	* config/ia64/ia64.md (first_insn): New attribute.
	(alloc): Set it to yes.

2005-03-16  Richard Henderson  <rth@redhat.com>

	PR middle-end/15700
	* varasm.c (struct alias_pair): Rename from struct output_def_pair.
	(alias_pairs): Rename from output_defs.
	(find_decl_and_mark_needed): Split out from assemble_alias.
	(do_assemble_alias): New.
	(assemble_output_def): Remove.
	(finish_aliases_1, finish_aliases_2): New.
	(process_pending_assemble_output_defs): Remove.
	(assemble_alias): Defer aliases for which we don't yet have a
	non-external decl for the target symbol.
	* passes.c (rest_of_decl_compilation): Register variables with cgraph.
	* cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
	* toplev.c (compile_file): Use finish_aliases_2 instead of
	process_pending_assemble_output_defs.
	* tree.h (finish_aliases_1, finish_aliases_2): Declare.
	(process_pending_assemble_output_defs): Remove.

2005-03-16  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
	of closing parenthesis.

2005-03-16  Roger Sayle  <roger@eyesopen.com>

	PR tree-optimization/17454
	* tree.c (tree_size): Add case for TREE_BINFO.
	* fold-const.c (fold_checksum_tree): Only clear the overloaded
	field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.

2005-03-15  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
	STACK_GROWS_DOWNWARD.

2005-03-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
	call_used_regs for wCG registers.

2005-03-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
	for non-offsettable memory references to cope with outstanding reload
	replacements, take 2.

2005-03-14  Alexandre Oliva  <aoliva@redhat.com>

	PR c++/20280
	* gimplify.c (gimplify_cond_expr): Add fallback argument.  Use a
	temporary variable of pointer type if an lvalues is required.
	(gimplify_modify_expr_rhs): Request an rvalue from it.
	(gimplify_expr): Pass fallback on.

2005-03-14  Alexandre Oliva  <aoliva@redhat.com>

	PR middle-end/18628
	* cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
	register.

2005-03-14  Richard Sandiford  <rsandifo@redhat.com>

	* doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
	* config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
	(TARGET_SWITCHES): Add -msym32 and -mno-sym32.
	(ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
	(ASM_SPEC): Pass down -msym32 and -mno-sym32.

2005-03-14  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (mips_fix_vr4130_string): Declare.
	(TARGET_FIX_VR4130): New macro.
	(TARGET_OPTIONS): Add -mfix-vr4130.
	(ISA_HAS_MACCHI): New macro.
	(ASM_SPEC): Add -mfix-vr4130.
	* config/mips/mips.c (mips_fix_vr4130_string): New variable.
	(override_options): Handle mips_fix_vr4130_string.
	(mips_avoid_hazards): Clear all_noreorder_p
	if we're working around VR4130 errata and the macc alternatives
	are not available.
	* config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
	(*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
	* config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
	(MULTILIB_DEFAULTS): Remove leading "march=".
	(DRIVER_SELF_SPECS): Likewise.  Make -mfix-vr4130 imply -march=vr4130
	if no architecture option is given.
	* config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
	VR4130 multilibs.
	(MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
	* doc/invoke.texi: Document -mfix-vr4130.

2005-03-13  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/19331
	* tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
	* fold-const.c (fold_sign_changed_comparison): Likewise.
	(fold_binary): Optimize comparisons against widened operands if
	the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.

2005-03-14  Alan Modra  <amodra@bigpond.net.au>

	* config.gcc: Remove excess indentation.
	(powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.

2005-03-13  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	PR target/20288
	* config/avr/avr.c (print_operand): Add 'p' and 'r'.
	(out_movhi_r_mr): Read low byte of volatile MEM first.
	(out_movhi_mr_r): Write high byte of volatile MEM first.

2005-03-11  David Edelsohn  <edelsohn@gnu.org>

	PR rtl-optimization/20306
	* expr.c (emit_move_complex): Set try_int false if mode is
	MODE_COMPLEX_FLOAT and mov_optab exists for inner mode.  Only try
	emit_block_move if try_int is true.

2005-03-11  Richard Henderson  <rth@redhat.com>

	PR target/20415
	* config/i386/mmx.md (vec_dupv4hi): Fix predicate.
	* config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
	to match.

2005-03-11  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (override_options): Only warn about -mint64
	deprecation if TARGET_INT64.

2005-03-10  Andrew Pinski  <pinskia@physics.uc.edu>

	PR rtl-opt/20412
	* simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
	correct mode.

2005-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR target/20322
	* combine.c (try_combine): If recog_for_combine added CLOBBERs
	to NEWI2PAT, fail to combine if they are used by NEWPAT.

2005-03-10  Aldy Hernandez  <aldyh@redhat.com>

	* doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.

2005-03-10  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.

2005-03-10  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/20375
	* function.c (struct assign_parm_data_one): Remove last_named
	field.
	(assign_parm_find_data_types): Don't determine last_named.
	Reorder named_parm determination.
	(assign_parms): Only setup varargs on the last non-varadic
	parameter.

2005-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR inline-asm/20314
	* gimplify.c (gimplify_asm_expr): Handle input/output constraints
	with multiple alternatives.

	* stmt.c (parse_output_constraint): Fix a typo.

2005-03-09  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
	for non-offsettable memory references to cope with outstanding reload
	replacements.
	* config/s390/s390.md ("reload_outti"): Call find_replacement to
	avoid losing outstanding address reloads.
	("reload_outdi", "reload_outdf"): Likewise.

2005-03-08  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/20122
	* tree-vect-analyze.c (vect_object_analysis): Analyze initial
	condition of access function instead of base.

2005-03-07  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
	output_e500_flip_gt_bit.

	* config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
	as bit 31.
	(rs6000_generate_compare): Fix logic to look at the correct bits.
	(output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
	Look at GT bit.
	(rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
	gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
	gen_move_from_CR_gt_bit.

	* config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
	("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
	(UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.

	* config/rs6000/spe.md ("e500_cr_ior_compare"): New.
	(E500_CR_IOR_COMPARE): New constant.

2005-03-08  Earl Chew <earl_chew@agilent.com>
	    David Billinghurst <David.Billinghurst@riotinto.com>

	* config/i386/host-cygwin.c: New file to support precompiled
	headers on cygwin
	* config/i386/x-cygwin: Use host-cygwin.c on cygwin host
	* config.host: Use above files for cygwin host.

2005-03-07  Richard Sandiford  <rsandifo@redhat.com>

	PR rtl-optimization/19683
	* reload1.c (choose_reload_regs): Pass the number of bits, not the
	number of bytes, to smallest_int_for_mode.  Fix arguments to
	REG_CANNOT_CHANGE_MODE_P.

2005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>

	* config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.

2005-03-07  Joseph S. Myers  <joseph@codesourcery.com>

	* config/ia64/hpux.h (LINK_SPEC): Add -z.
	* config/ia64/ia64.c (ia64_function_value): Return a REG not a
	PARALLEL for an empty structure.

2005-03-05  James A. Morrison  <phython@gcc.gnu.org>

	* doc/c-tree.texi: Wrap comments in @r{}.
	* doc/cpp.texi: Likewise.
	* doc/cppinternals.texi: Likewise.
	* doc/extend.texi: Likewise.
	* doc/md.texi: Likewise.
	* doc/objc.texi: Likewise.
	* doc/sourcebuild.texi: Likewise.
	* doc/tm.texi: Likewise.
	* doc/tree-ssa.texi

2005-03-04  Devang Patel  <dpatel@apple.com>

	PR tree-optimization/18815
	* tree-if-conv.c (combine_blocks): Adjust loop header edges for
	loops with zero exit edges.

2005-03-05  Joseph S. Myers  <joseph@codesourcery.com>

	* config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
	*-*-hpux11.[1-9]*, not just for *-*-hpux11.11.

2005-03-05  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
	    Joseph S. Myers  <joseph@codesourcery.com>

	PR c++/19797
	* pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
	(ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
	* pa-protos.h (pa_hpux_asm_output_external): Add prototype.
	* pa.c (get_plabel): Change argument to symbol_ref.  Call
	maybe_get_identifier instead of get_identifier.
	(pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
	(struct deferred_plabel): Replace name field with symbol field.
	(TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
	ASM_OUTPUT_EXTERNAL_REAL is defined.
	(output_global_address): Use output_addr_const for output of all
	symbol_refs.
	(output_deferred_plabels): Use symbol_ref instead of name for address
	output.
	* pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
	ASM_OUTPUT_SYMBOL_REF): New macros.
	* som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
	comment.
	(ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
	label.

2005-03-04  Andrew Haley  <aph@redhat.com>

	* unwind-dw2-fde-glibc.c (struct
	unw_eh_callback_data.check_cache):
	(frame_hdr_cache): New.
	(_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
	Cache frame header info.

2005-03-04  Daniel Jacobowitz  <dan@codesourcery.com>

	2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
	* config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
	for Thumb.
	* config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.

2005-03-04  Daniel Berlin <dberlin@dbrelin.org>

	Fix PR debug/20253

	* c-opts.c (c_common_parse_file): Call start_source_file
	and end_source_file at the approriate times.

	* dwarf2out.c (dwarf2out_finish): Don't auto-end
	the main file, it will be done for us now.

2005-03-03  Alan Modra  <amodra@bigpond.net.au>

	PR target/20277
	* config/rs6000/rs6000.c (rs6000_override_options): Don't allow
	-mcpu to override any other explicitly given flags.

2005-03-02  Mark Mitchell  <mark@codesourcery.com>

	PR c++/19916
	* varasm.c (initializer_constant_valid_p): Allow conversions
	between OFFSET_TYPEs.  Tidy.

2005-03-02  Geoffrey Keating  <geoffk@apple.com>

	* config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.

2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>

	* cgraph.h (struct cgraph_edge): Add prev_caller and
	prev_callee fields.
	(cgraph_node_remove_callees): Export.
	* cgraph.c (cgraph_create_edge): Initialize prev_caller
	and prev_callee.
	(cgraph_edge_remove_callee): New function.
	(cgraph_edge_remove_caller): Likewise.
	(cgraph_remove_edge): Use.
	(cgraph_redirect_edge_callee): Likewise.
	(cgraph_node_remove_callees): New function.
	(cgraph_node_remove_callers): Likewise.
	(cgraph_remove_node): Use.
	* tree-optimize.c (tree_rest_of_compilation): Use
	cgraph_node_remove_callees instead of manual loop.
	* cgraphunit.c (cgraph_finalize_function): Likewise.
	(cgraph_expand_function): Likewise.
	(cgraph_remove_unreachable_nodes): Likewise.

2005-03-01  Roger Sayle  <roger@eyesopen.com>

	PR tree-optimization/20216
	* tree-chrec.c (tree_fold_factorial): Delete.
	(tree_fold_binomial): Change argument list to take a return type
	and change the type of K to unsigned int.  Rewrite to avoid explicit
	evaluation of factorials, and (recursively) calling fold to perform
	compile-time arithmetic.  Return NULL on (internal) overflow.
	(chrec_evaluate): Change type of K to an unsigned int.  Avoid
	calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
	if any intermediate calculation overflows.
	(chrec_apply): Update call to chrec_evaluate.

2005-03-01  Hans-Peter Nilsson  <hp@axis.com>

	PR target/19065.
	* config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
	not including (reg). Do not check for reg being CRIS_PC_REGNUM.
	(EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
	* config/cris/cris.md: Tweak comments referring to Q.
	("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
	("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
	("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
	("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
	("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
	Insert spaces in constraints to align alternatives vertically for
	readability.
	("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
	operand 1: "M".

2005-02-28  Dale Johannesen  <dalej@apple.com>
	    Stan Shebs  <shebs@apple.com>

	Rewrite of 64-bit Darwin structure-by-value pass/return.
	* config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
	intoffset, use_stack, named.
	* config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
	(rs6000_darwin64_record_arg_advance_flush):  New.
	(rs6000_darwin64_record_arg_advance_recurse): New.
	(rs6000_darwin64_record_arg_flush):  New.
	(rs6000_darwin64_record_arg_recurse):  New.
	(rs6000_darwin64_record_arg):  New.
	(rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
	(function_arg_boundary):  Handle 128-bit aligned structs.
	(function_arg_advance):  Rewrite darwin64 struct handling.
	(function_arg):  Call rs6000_darwin64_record_arg.
	(function_arg_partial_nregs):  Handle darwin64 structs.
	(rs6000_darwin64_function_value):  Remove.
	(rs6000_function_value):  Call rs6000_darwin64_record_arg.

2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>

	PR target/19819
	* pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
	and after reload in REG+REG indexed addresses without REG_POINTER
	set in the base and not set in the index.

2005-02-28  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/19874
	* tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
	between different machine modes is never a "useless" conversion.

2005-02-27  Zack Weinberg  <zack@codesourcery.com>

	* config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
	* config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
	installation directory first.

2005-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR rtl-optimization/17728
	* pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
	operand 0 from general_operand to move_dest_operand.

2005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
	instead of trying to save and restore TREE_SYMBOL_REFERENCED.
	* pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
	(ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.

2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/20188
	* tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
	for the lhs, also walk over the tree.  Likewise for rhs.

2005-02-26  Joseph S. Myers  <joseph@codesourcery.com>

	* doc/invoke.texi, doc/standards.texi: Refer to
	gcc-4.0/c99status.html.

2005-02-26  Paolo Carlini  <pcarlini@suse.de>

	* doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
	Clarify that the alternative way doesn't work in GNU C++.

2005-02-25  Steve Ellcey  <sje@cup.hp.com>

	PR target/19930
	* doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
	(LIBGCC2_HAS_DF_MODE): New.
	(LIBGCC2_HAS_XF_MODE): New.
	(LIBGCC2_HAS_TF_MODE): New.
	* libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
	(LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
	* libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
	(LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
	(LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
	* config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
	and add _fixtfdi, _fixunstfdi, _floatditf
	* lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
	L_fixunstfdi, L_floatditf.
	* config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
	(LIBGCC2_HAS_TF_MODE): Define.

2005-02-25  Diego Novillo  <dnovillo@redhat.com>

	PR tree-optimization/20204
	* tree-into-ssa.c (insert_phi_nodes_for): Do not use
	REWRITE_THIS_STMT markers on PHI nodes.
	(rewrite_initialize_block): Likewise.

2005-02-25  Mark Mitchell  <mark@codesourcery.com>

	* version.c (version_string): Mark as prerelease.
	* doc/include/gcc-common.texi (DEVELOPMENT): @clear it.
	* configure.ac (is_release): Set to 1.
	* configure: Regenerated.

2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/19937
	* tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
	to the type of the induction variable.

2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR rtl-optimization/20117
	* bb-reorder.c (duplicate_computed_gotos): Don't duplicate
	the block including noncopyable insn.

2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c (delete_trivially_dead_insns): Speed up by minimizing
	calls to find_reg_note.

2005-02-24  Richard Henderson  <rth@redhat.com>

	PR tree-opt/20127
	* tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
	the type.

2005-02-24  Fariborz Jahanian <fjahanian@apple.com>

	* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
	vector types if to use base reg for misaligned non-word ld/std.

2005-02-24  Hans-Peter Nilsson  <hp@axis.com>

	PR target/14619
	* config/cris/cris.c (cris_target_asm_function_prologue): Create
	dwarf2 label manually and put it after, not before the prologue.

2005-02-24  David Edelsohn  <edelsohn@gnu.org>

	PR target/19019
	* reload.c (operands_match_p): Only increment register number for
	SCALAR_INT_MODE_P modes in multiple hard registers.

	* config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
	Fix formatting.

2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* ChangeLog.5: Fix log message typo(s).
	* ChangeLog.7: Likewise.
	* ChangeLog.tree-ssa: Likewise.
	* cfgexpand.c: Fix comment typo(s).
	* conflict.c: Likewise.
	* defaults.h: Likewise.
	* dwarf2out.c: Likewise.
	* gcse.c: Likewise.
	* ggc-page.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-ssa-dom.c: Likewise.

2005-02-24  Jakub Jelinek  <jakub@redhat.com>

	PR target/19019
	* mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
	* config/rs6000/darwin-ldouble.c: Only use the .symver directives
	if SHARED is defined.

	PR target/20196
	* config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
	allow splitting only if operands 0 and 3 don't overlap.

2005-02-24  Richard Henderson  <rth@redhat.com>

	PR middle-end/19953
	* builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
	(fold_builtin_1): Call them.
	* fold-const.c (fold_complex_mult_parts): Split out from ...
	(fold_complex_mult): ... here.  Fix typo in both imaginary case.
	(fold_complex_div_parts, fold_complex_div): New.
	(fold): Use them.
	* tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.

2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* tree-ssa-ccp.c (visit_assignment): Verify that result of
	VIEW_CONVERT_EXPR is_gimple_min_invariant.

	* print-tree.c (print_node_brief): Print LABEL_DECL_UID.
	(print_node): Likewise.
	Print TYPE_SIZES_GIMPLIFIED.

2005-02-24  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
	("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
	operands as commutative in constraints.

2005-02-24  Diego Novillo  <dnovillo@redhat.com>

	* tree-into-ssa.c: Re-organize internal functions.

2005-02-24  Richard Henderson  <rth@redhat.com>

	PR middle-end/18902
	* c-opts.c (c_common_post_options): Set flag_complex_method to 2
	for c99.
	* common.opt (fcx-limited-range): New.
	* opts.c (set_fast_math_flags): Set flag_cx_limited_range.
	* toplev.c (flag_complex_method): Initialize to 1.
	(process_options): Set flag_complex_method to 0 if
	flag_cx_limited_range.
	* doc/invoke.texi (-fcx-limited-range): New.

2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c (delete_trivially_dead_insns): Speed up by using
	NEXT_INSN and PREV_INSN directly instead of next_real_insn and
	prev_real_insn.

2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>

	* config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
	functions when -mid-shared-library is being used.

2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>

	* doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
	(LINK_LIBGCC_SPECIAL_1): Don't mention it.
	* gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
	* system.h: Poison LINK_LIBGCC_SPECIAL.

2005-02-23  James E Wilson  <wilson@specifixinc.com>

	* gengtype.c (note_insn_name): Make 1 element larger.

2005-02-23  Roger Sayle  <roger@eyesopen.com>

	PR target/20018
	PR rtl-optimization/20097
	* simplify-rtx.c (simplify_relational_operation_1): Avoid creating
	BImode SUBREGs of SImode registers which confuse the ia64 backend.

2005-02-23  David Edelsohn  <edelsohn@gnu.org>

	* t-aix43 (SHLIB_INSTALL): Create directory for shared library.
	* t-aix52 (SHLIB_INSTALL): Same.

2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>

	* genpreds.c: Update copyright.

2005-02-23  Michael Beach  <michaelb@ieee.org>

	PR target/20159
	* config/sparc/t-elf (startup files): Assemble with CPP.

2005-02-23  Paolo Bonzini  <bonzini@gnu.org>

	* genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
	(write_predicate_expr): Likewise.

2005-02-22  Diego Novillo  <dnovillo@redhat.com>

	PR tree-optimization/20100
	PR tree-optimization/20115
	* tree-optimize.c (init_tree_optimization_passes): Remove
	pass_maybe_create_global_var.
	* tree-pass.h (pass_maybe_create_global_var): Remove.
	* tree-ssa-alias.c (aliases_computed_p): Declare.
	(struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
	(count_calls_and_maybe_create_global_var): Remove.
	(pass_maybe_create_global_var): Remove.
	(init_alias_info): Do not declare aliases_computed_p.
	(maybe_create_global_var): If the function contains no
	call-clobbered variables and a mix of pure/const and regular
	function calls, create .GLOBAL_VAR.
	Mark all call-clobbered variables for renaming.
	(merge_pointed_to_info): Update comment.
	(add_pointed_to_var): Likewise.
	(is_escape_site): Likewise.
	Accept struct alias_info * instead of size_t *.
	Update all users.
	Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
	as necessary.
	* tree-ssa-operands.c (get_call_expr_operands): If
	ALIASES_COMPUTED_P is false, do not add call-clobbering
	operands.
	* tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
	(delete_tree_ssa): Likewise.

2005-02-22  James E Wilson  <wilson@specifixinc.com>

	* toplev.c (backend_init): Don't call init_adjust_machine_modes here.
	(do_compile): Do call it here.

2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>

	PR rtl-optimization/20017.
	* passes.c (rest_of_handle_combine, rest_of_handle_cse,
	rest_of_handle_cse2, rest_of_handle_gcse): Call
	delete_dead_jumptables immediately before calling cleanup_cfg.

2005-02-22  Devang Patel  <dpatel@apple.com>

	PR 19952
	* tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
	all labels

2005-02-22  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/aix.h (WINT_TYPE): Define.

2005-02-22  Stan Shebs  <shebs@apple.com>

	* config/rs6000/rs6000.c (rs6000_override_options): Default to
	natural alignment for 64-bit Darwin.
	(rs6000_parse_alignment_option): Warn about uses of -malign-power
	on 64-bit Darwin.
	* doc/invoke.texi: Document this.

2005-02-22  DJ Delorie  <dj@redhat.com>

	* c-common.c (c_common_type_for_mode): Pass the mode's precision
	to make_[un]signed_type, not the mode itself.

2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>

	* cfg.c (cached_make_edge): Call make_edge if edge cache is
	not available.  Use tail calls wherever possible.
	(make_edge): Call unchecked_make_edge to create an edge.

	* tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
	(coalesce_ssa_name): Don't check for
	SSANORM_USE_COALESCE_LIST.
	(rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.

2005-02-22  Diego Novillo  <dnovillo@redhat.com>

	* tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
	(rewrite_into_ssa): ... here.

2005-02-21  Alexandre Oliva  <aoliva@redhat.com>

	PR tree-optimization/19786
	* tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
	tag to another's may-alias bitmap when adding to the other's list.

2005-02-21  DJ Delorie  <dj@redhat.com>

	* tree-ssa-loop-ivopts.c (computation_cost): Start register
	numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
	registers in unsupported ways.
	* expmed.c (init_expmed): Likewise.

2005-02-21  Stan Cox  <scox@redhat.com>

	* config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.

2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-cfg.c (fold_cond_expr_cond): New.
	(make_edges): Call fold_cond_expr_cond.
	(find_taken_edge): Accept nothing but INTEGER_CST.
	(find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
	and 1.
	(find_taken_edge_switch_expr): Remove a check for INTEGER_CST.

	* flow.c (delete_dead_jumptables): Speed up by scanning insns
	that do not belong to any basic block.

2005-02-21  Jeff Law  <law@redhat.com>

	* cfganal.c (find_unreachable_blocks): Manually CSE load of
	e->dest.

2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
	(SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
	Adjust their definitions.
	(remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
	(rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.

	* c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
	genautomata.c, langhooks.c, langhooks.h, system.h,
	config/arm/lib1funcs.asm: Update copyright.

2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* dbxout.c (dbxout_function_end): Emit Lscope label always.

2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>

	PR bootstrap/13770
	* doc/install.texi: Document --with-gc.

2005-02-21  Paolo Bonzini  <bonzini@gnu.org>

	* simplify-rtx.c (simplify_unary_operation): Add a missing
	"break" statement.

2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR tree-optimization/18663
	* tree-ssa-dom.c (extract_range_from_cond): Return 0
	if the type has variable bounds.

2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>

	* gcse.c: Remove an obsolete comment.

	* cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.

2005-02-20  Hans-Peter Nilsson  <hp@axis.com>

	* doc/extend.texi (Function Attributes) <Attribute const>: The
	attribute "pure" is below this text, not above.

2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (pa_assemble_integer, get_plabel): Small cleanups.
	(pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
	* som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.

2005-02-20  Zack Weinberg  <zack@codesourcery.com>

	PR 18785
	* langhooks.h (struct lang_hooks): Add to_target_charset.
	* langhooks.c (lhd_to_target_charset): New function.
	* langhooks-def.h: Declare lhd_to_target_charset.
	(LANG_HOOKS_TO_TARGET_CHARSET): New macro.
	(LANG_HOOKS_INITIALIZER): Update.
	* c-common.c (c_common_to_target_charset): New function.
	* c-common.h: Declare it.
	* c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
	c_common_to_target_charset.

	* defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
	(TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
	Delete definitions.
	* system.h: Poison them.
	* doc/tm.texi: Don't discuss them.
	* builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
	* c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
	(pp_c_char): Do not attempt to generate letter escapes for
	newline, tab, etc.
	* config/arm/arm.c (output_ascii_pseudo_op): Likewise.
	* config/mips/mips.c (mips_output_ascii): Likewise.

2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>

	PR tree-optimization/19951
	* tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
	is abnormal.

2005-02-19  Steven Bosscher  <stevenb@suse.de>

	PR middle-end/19698
	* function.h (struct function): New field `max_loop_depth'.
	* cfgloop.c (establish_preds): Update maximum loop depth seen so far.
	(flow_loops_find): Reset the max loop depth count before finding loops.
	* flow.c (MAX_LIVENESS_ROUNDS): New constant.
	(update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
	(calculate_global_regs_live): Make sure the loop will terminate
	when the initial sets are not empty.

2005-02-19  Zack Weinberg  <zack@codesourcery.com>

	* mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
	object inside.
	* config/ia64/hpux.h: Don't define LIBGCC_SPEC.

2005-02-19  Richard Sandiford  <rsandifo@redhat.com>

	PR other/19525
	* doc/invoke.texi: Remove documentation of %M spec.
	* gcc.c: Likewise.
	(init_spec): Remove %M suffix from -lgcc_s.
	(do_spec_1): Remove 'M' case.
	* mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
	to put shared libraries in the multilib directory.  Remove the
	shlib_so_soname substitution variable.  Don't add a multilib encoding
	to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
	reported by -print-multi-os-directory.  Pass @multilib_dir@ to
	SHLIB_INSTALL as well as SHLIB_LINK.
	* config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
	(SHLIB_NAME): Delete.
	(SHLIB_DIR): New macro.
	(SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
	(SHLIB_INSTALL): Adjust accordingly.
	* config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
	* config/t-slibgcc-sld: Likewise.
	* config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
	(SHLIBUNWIND_SONAME): Use @shlib_base_name@.
	(SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
	in $(SHLIB_DIR).
	(SHLIBUNWIND_INSTALL): Adjust accordingly.
	* config/i386/t-nwld (SHLIB_SONAME): Delete.
	(SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
	Use @shlib_base_name@ instead of @shlib_so_name@.
	* config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
	and @shlib_base_name@.so in @multilib_dir@.
	(SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
	to the install path.
	* config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
	(SHLIB_LINK): Remove previous workaround.
	* config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
	(SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
	(SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
	the install path.
	* config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
	@multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
	(SHLIB_INSTALL): Adjust accordingly.
	(SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
	* config/rs6000/t-aix52: As for config/rs6000/t-aix43.
	* config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
	config/t-slibgcc-elf-ver.

2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
	    Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/19828
	* tree-ssa-loop-im.c: Add a TODO comment.
	(movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
	without side-effects.

2005-02-18  James A. Morrison  <phython@gcc.gnu.org>

	* tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
	call fold_convert.

2005-02-18  James E. Wilson  <wilson@specifixinc.com>

	* doc/invoke.texi (IA-64 Options): Delete -mb-step.
	* config/ia64/ia64.c (last_group, group_idx): Delete variables.
	(errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
	functions.
	(ia64_reorg): Delete fixup_errata call.
	* config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
	(TARGET_SWITCHES): Delete -mb-step entry.

2005-02-19  Jakub Jelinek  <jakub@redhat.com>

	PR c/20043
	* c-typeck.c (composite_type): Handle quals in transparent unions.
	(type_lists_compatible_p): Likewise.

2005-02-18  Stan Shebs  <shebs@apple.com>

	* config/darwin.c (machopic_select_rtx_section): Don't put relocatable
	expressions in the .literal8 section.

2005-02-18  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.

2005-02-18  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (constant_boolean_node): Always create values of the
	specified type, don't bother calling truthvalue_conversion.

2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>

	* except.c (output_function_exception_table): Call
	assemble_external_libcall (eh_personality_libfunc).

2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>

	PR target/19886
	* config/ia64/ia64.h (struct machine_function): Add state_num.
	* config/ia64/ia64.c (process_epilogue,
	process_for_unwind_directive): Use new unwind state numbers each
	time rather than state 1.

2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>

	PR target/20054
	* config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
	before the "*llgt_didi" pattern.

2005-02-18  Jason Merrill  <jason@redhat.com>

	* gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.

2005-02-18  Richard Earnshaw  <rearnsha@arm.com>

	* arm/lib1funcs.asm (FUNC_ALIAS): New macro.
	(div0): Use it in place of ARM_FUNC_ALIAS.
	(lshrdi3, ashrdi3, ashlrdi3): Likewise.

2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/20030
	* fold-const.c (fold_indirect_ref_1): Use the correct index for zero
	access, the lower bound of the array type if it exists.

2005-02-18  Alexandre Oliva  <aoliva@redhat.com>

	PR c++/20008
	* stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
	cases that are out-of-range for the index type.

2005-02-18  James A. Morrison  <phython@gcc.gnu.org>

	* stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
	(estimate_case_costs): Don't call convert.
	* expmed.c (expand_shift): Likewise.
	(make_tree): Call fold_convert instead of convert.

2005-02-18  Jakub Jelinek  <jakub@redhat.com>

	PR c++/19813
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
	that ref to be marked MEM_READONLY_P doesn't have base that needs
	constructing.

2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>

	* genautomata.c (output_get_cpu_unit_code_func,
	output_cpu_unit_reservation_p): Don't generate old-style function
	definitions.

2005-02-18  Jakub Jelinek  <jakub@redhat.com>

	PR c++/20023
	PR tree-optimization/20009
	* convert.c (convert_to_integer): Revert 2005-02-16 change.

	PR tree-optimization/18947
	* cgraphunit.c (cgraph_finalize_function): When redefining an extern
	inline, remove all nodes that are inlined into the extern inline
	being redefined.

2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>

	* bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
	loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
	tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
	config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
	Update copyright.

2005-02-17  Roger Sayle  <roger@eyesopen.com>

	PR tree-optimization/19917
	* tree-eh.c (tree_could_trap_p): Consider calls to weak functions
	to be potentially trapping.

2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>

	* libgcc2.c, tree-vect-analyze.c: Fix comment typos.

2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>

	* builtins.c (expand_builtin_return_addr): Remove tem parameter.
	tem becomes a local variable which is set to the value of the
	back end defined INITIAL_FRAME_ADDRESS macro.
	(expand_builtin_frame_address): Omit the base parameter to
	expand_builtin_return_addr.
	(expand_builtin_profile_func): Likewise.
	* config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
	(DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
	* doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.

2005-02-17  Jakub Jelinek  <jakub@redhat.com>

	* config/s390/s390.c (s390_alloc_pool, s390_free_pool,
	s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
	* config/frv/frv.c (frv_function_epilogue): Likewise.

2005-02-17  Daniel Berlin  <dberlin@dberlin.org>

	* lambda-code (perfect_nestify): Remove mark/unmark
	for rewriting hack.
	* tree-loop-linear.c (linear_transform_loops): Add
	rewrite_into_ssa call so that ssa is correct for
	rewriting into loop closed.

2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>

	* bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
	* bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
	BITMAP_FREE.
	* bt-load.c (btr_def_live_range, combine_btr_defs,
	migrate_btr_def, migrate_btr_defs): Likewise.
	* cfgcleanup.c (thread_jump): Likewise.
	* cfgloop.c (get_loop_body_in_bfs_order): Likewise.
	* df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
	df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
	df_rd_local_compute, df_reg_info_compute): Likewise.
	* dominance.c (init_dom_info, free_dom_info): Likewise.
	* flow.c (init_propagate_block_info,
	free_propagate_block_info): Likewise.
	* gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
	* global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
	modify_reg_pav): Likewise.
	* loop-invariant.c (find_defs, find_invariant_insn,
	find_invariants, free_inv_motion_data): Likewise.
	* predict.c (tree_predict_by_opcode,
	estimate_bb_frequencies): Likewise.
	* stmt.c (expand_case): Likewise.
	* tree-cfg.c (tree_duplicate_sese_region): Likewise.
	* tree-dfa.c (mark_new_vars_to_rename): Likewise.
	* tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
	* tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
	get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
	rewrite_ssa_into_ssa): Likewise.
	* tree-optimize.c (tree_rest_of_compilation): Likewise.
	* tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
	analyze_edges_for_bb, perform_edge_inserts): Likewise.
	* tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
	* tree-sra.c (tree_sra): Likewise.
	* tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
	* tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
	* tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
	* tree-ssa-dse.c (tree_ssa_dse): Likewise.
	* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
	Likewise.
	* tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
	calculate_live_on_entry, calculate_live_on_exit,
	build_tree_conflict_graph): Likewise.
	* tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
	record_important_candidates, set_use_iv_cost, find_depends,
	determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
	tree_ssa_iv_optimize_finalize): Likewise.
	* tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
	find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
	tree_duplicate_loop_to_header_edge): Likewise.
	* tree-ssa-pre.c (init_pre, fini_pre): Likewise.
	* tree-ssa.c (verify_flow_insensitive_alias_info,
	verify_name_tags, verify_ssa, init_tree_ssa,
	delete_tree_ssa): Likewise.
	* tree-ssanames.c (marked_ssa_names, init_ssanames,
	fini_ssanames): Likewise.
	* tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.

2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config/rs6000/t-rtems: Completely reworked.

2005-02-17  Ira Rosen  <irar@il.ibm.com>

	* tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.

2005-02-17  Ira Rosen  <irar@il.ibm.com>

	* tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
	POINTER_TYPE_P when checking that type is a pointer.
	(vect_get_memtag): Remove.
	(vect_address_analysis): Use POINTER_TYPE_P. Call
	vect_object_analysis with dummy parameter for memtag.
	(vect_object_analysis): Extract memtag (functionality that
	used to be in vect_get_memtag and moved here). Fix printings.
	(vect_analyze_data_refs): Fix comment. Call vect_object_analysis
	with correct parameters. Remove call to vect_get_memtag.

2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>

	* Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
	(tree-vectorizer.o): Added missing dependencies.

	* tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
	decleration.
	(slpeel_tree_peel_loop_to_edge): Function externalized (had a static
	declaration in tree-vectorizer.c, now has an extern declaration in
	tree-vectorizer.h).
	(slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
	slpeel_verify_cfg_after_peeling, vect_strip_conversion,
	get_vectype_for_scalar_type, vect_is_simple_use,
	vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
	vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
	new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
	vectorizable_store, vectorizable_operation, vectorizable_assignment,
	vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
	find_loop_location): Likewise.

	* tree-vectorizer.c (langhooks.h): #include removed.
	(slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
	moved to tree-vectorized.h.
	(slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
	slpeel_verify_cfg_after_peeling, vect_strip_conversion,
	get_vectype_for_scalar_type, vect_is_simple_use,
	vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
	vect_supportable_dr_alignment, new_loop_vec_info,
	destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
	vect_set_verbosity_level, find_loop_location): Likewise.

	(vect_analyze_loop): Function externalized. Declaration moved to
	tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
	(vect_analyze_loop_form): Moved to tree-vect-analyze.c.
	(vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
	vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
	vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
	vect_enhance_data_refs_alignment, vect_analyze_operations,
	exist_non_indexing_operands_for_use_p, vect_mark_relevant,
	vect_stmt_relevant_p, vect_get_loop_niters,
	vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
	vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
	vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
	vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
	vect_get_memtag): Likewise.

	(vectorizable_load): Function externalized. Declaration moved to
	tree-vectorized.h. Function definition moved to tree-vect-transform.c.
	(vectorizable_store, vectorizable_operation, vectorizable_assignment,
	vect_transform_loop): Likewise.
	(vect_transform_stmt): Moved to tree-vect-transform.c.
	(vect_align_data_ref, vect_create_destination_var,
	vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
	vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
	vect_get_vec_def_for_operand, vect_init_vector,
	vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
	vect_build_loop_niters, vect_update_ivs_after_vectorizer,
	vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
	vect_update_inits_of_drs, vect_do_peeling_for_alignment,
	vect_do_peeling_for_loop_bound): Likewise.

	* tree-vect-analyze.c: New file.
	* tree-vect-transform.c: New file.

2005-02-17  Jason Merrill  <jason@redhat.com>

	PR mudflap/19319, c++/19317
	* gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
	slot explicit.

2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Specific): Update link for Darwin-specific
	tool binary site.

2005-02-16  James A. Morrison  <phython@gcc.gnu.org>

	* fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
	constant_boolean_node.

2005-02-16  David Edelsohn  <edelsohn@gnu.org>

	PR target/19019
	* config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
	* config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.

2005-02-16  Richard Henderson  <rth@redhat.com>

	PR 19920
	* libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
	with W_TYPE_SIZE.
	(HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
	replace uses with Wtype_MAXp1_F.
	(L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
	L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
	L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
	L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
	and HAVE_TFMODE as appropriate.
	(__fixunssfDI): Provide an implementation that doesn't need DFmode.
	(__floatdisf): Likewise.
	* libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
	(HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
	(Wtype_MAXp1_F): New.
	(DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
	__powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.

2005-02-16  Richard Earnshaw  <rearnsha@arm.com>

	* PR target/19162
	* arm.c (arm_apply_result_size): New function.
	* arm.h (APPLY_RESULT_SIZE): Define.
	* arm-protos.h (arm_apply_result_size): Add prototype.
	* arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
	(movxf): New expand.
	(ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
	(call_value_symbol): Remove predicate for operand 0.
	(call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
	(untyped_call): Rework to correclty return values for any type.
	(untyped_return): New expand.
	* fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.

2005-02-16  Stan Shebs  <shebs@apple.com>

	* config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
	* config/rs6000/t-darwin8: New, for 64-bit multilib.

2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* doc/install.texi (sparc-sun-solaris2*): Document required GMP
	configure settings on Solaris 7 and later.

2005-02-16  Diego Novillo  <dnovillo@redhat.com>

	PR tree-optimization/19865
	* tree-optimize.c (init_tree_optimization_passes): Run
	pass_may_alias after pass_sra.

2005-02-16  Richard Henderson  <rth@redhat.com>
	    Stuart Hastings  <stuart@apple.com>

	PR debug/19521
	* dbxout.c (dbxout_function_end): Take decl parameter; update callers.
	Do nothing if debug info suppressed for this function.
	(dbxout_begin_function): Early exit if debug info suppressed for
	this function.

2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>

	PR target/20007
	* config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
	find_basic_blocks.
	* config/sh/sh.c (sh_output_mi_thunk): Likewise.

	PR tree-optimization/19967
	* builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
	expand_builtin_strchr, expand_builtin_strrchr): Take a new
	argument TYPE.  Adjust calls to fold_builtin_XXX.
	(expand_builtin, fold_builtin_1): Adjust calls to
	expand_builtin_XXX.
	(fold_builtin_strchr, fold_builtin_strpbrk,
	fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
	result to a requested type TYPE.

2005-02-16  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/19857
	* fold-const.c (fold): Don't optimize (T)(x & cst) to
	(T)x & (T)cst if (T)cst overflows.
	* convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
	TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.

2005-02-15  Jeff Law  <law@redhat.com>

	* gcse.c (blocks_with_calls): New bitmap.
	(alloc_gcse_mem): Allocate it.
	(free_gcse_mem): Free it.
	(clear_modifY_mem_tables): Clear it.
	(record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
	when we encounter CALL_INSNs.
	(compute_transp, case MEM): Handle blocks with calls separate
	from blocks without calls.  Use bitmap iterators rather than
	FOR_EACH_BB.

2005-02-15  Peter O'Gorman  <peter@pogma.com>

	PR bootstrap/18810
	* mklibgcc.in (vis_hide): Use a temporary object file, not
	-o /dev/null.

2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>

	PR target/19924
	* config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
	access optimization.

2005-02-15  David Edelsohn  <edelsohn@gnu.org>
	    Alan Modra  <amodra@bigpond.net.au>

	PR target/19019
	* config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
	(_xlqsub): Rename to __gcc_qsub.
	(_xlqmul): Rename to __gcc_qmul.
	(_xlqdiv): Rename to __gcc_qdiv.
	Provide versioned symbol aliases with old names.
	* config/rs6000/libgcc-ppc64.ver: Rename symbols.
	* config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
	* config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
	* config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
	* config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.

2005-02-15  James A. Morrison  <phython@gcc.gnu.org>

	* fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
	Fold ~(A - 1) and ~(A + -1) to -A.

2005-02-15  James A. Morrison  <phython@gcc.gnu.org>

	PR pch/14940
	PR target/19300
	* config/host-linux.c (linux_gt_pch_use_address): Copy from
	config/pa/pa-host.c:pa_gt_pch_use_address.

2005-02-15  Daniel Berlin  <dberlin@dberlin.org>

	* tree-vn.c (get_value_handle): Make sure that given an
	is_gimple_min_invariant expression, we always return it.

2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>

	* passes.c (rest_of_handle_gcse): Fix a comment.

2005-02-15  Jeff Law  <law@redhat.com>

	* gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
	bitmap.
	(alloc_gcse_mem, free_gcse_mem): Corresponding changes.
	(canon_list_insert, record_last_mem_set_info): Similarly.
	(clear_modify_mem_tables): Similarly.

2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>

	* bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
	tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
	config/mips/mips.md, config/rs6000/aix.h,
	config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.

2005-02-15  Richard Henderson  <rth@redhat.com>

	* bb-reorder.c (find_traces_1_round): Force fallthru edge from a
	call to be best_edge.

2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>

	* basic-block.h: Adjust the prototype for find_basic_blocks.
	* cfgbuild.c (find_basic_blocks): Remove unused arguments.
	* passes.c (rest_of_handle_loop_optimize): Adjust the call to
	find_basic_blocks.

	* flow.c (recompute_reg_usage): Remove all arguments.
	* passes.c (rest_of_compilation): Adjust the call to
	recompute_reg_usage.
	* rtl.h: Adjust the prototype for recompute_reg_usage.

2005-02-14  Daniel Berlin  <dberlin@dberlin.org>

	* tree-dump.c (dump_files): Update to reflect new member
	of dump_file_info.
	(dump_register): Add new argument.
	Set glob name.
	(dump_switch_p_1): Check against glob name if doglob was passed.
	(dump_switch_p): Check against regular first, then glob if
	we didn't have any hits on the dump name.
	* tree-optimize.c (register_one_dump_file):
	Pass in glob name as well.
	* tree-pass.h (struct dump_file_info): Add glob
	member.

2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>

	PR preprocessor/16323
	* doc/invoke.texi: Document that -Wendif-labels is on by default.

2005-02-14  David Edelsohn  <edelsohn@gnu.org>

	PR target/19019
	* config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
	(trunctfdf2_internal1): New.
	(trunctfdf2_internal2): Renamed from trunctfdf2.

2005-02-14  Diego Novillo  <dnovillo@redhat.com>

	PR tree-optimization/19853
	* tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.

2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>

	* passes.c (rest_of_handle_loop_optimize): Remove calls to
	delete_dead_jumptables and cleanup_cfg.

2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>

	* reload.c (find_reloads): Swap address_reloaded flags when
	swapping commutative operands.

2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>

	* lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
	Use standard_iv_increment_position for computing the bsi position
	for create_iv.
	* tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
	the bsi position.

2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>

	PR target/17428
	* cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
	life range of hard registers.
	* value-prof.c (insn_prefetch_values_to_profile): Only
	scan normal insns.

	* value-prof.c (rtl_find_values_to_profile): Do not look for values to
	profile in libcalls.

2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>

	* bitmap.h (bitmap_and_compl_into): Return bool.
	* bitmap.c (bitmap_and_compl_into): Return changed flag.

2005-02-13  James A. Morrison  <phython@gcc.gnu.org>

	PR tree-optimization/19944
	* fold-const.c (fold): Re-add ABS_EXPR folding.

2005-02-13  David Edelsohn  <edelsohn@gnu.org>

	PR target/19019
	* config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
	{TARGET,MASK}_XL_COMPAT.
	(SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
	MASK_XL_COMPAT.
	* config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
	* config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
	TARGET_XL_COMPAT.
	(rs6000_arg_partial_bytes): Same.
	(rs6000_generate_compare): Generate PARALLEL for compare if TFmode
	and XL compatibility enabled.
	* config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
	* config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
	test to final condition.
	(cmptf_internal2): New.
	* doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
	xl-compat.  Add TFmode information to description.

2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>

	* flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.

2005-02-13  Jason Merrill  <jason@redhat.com>

	PR c++/16405
	* fold-const.c (fold_indirect_ref_1): Split out from...
	(build_fold_indirect_ref): Here.
	(fold_indirect_ref): New fn.
	* tree.h: Declare it.
	* gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
	(gimplify_modify_expr_rhs): Likewise.
	(gimplify_expr): Likewise.

2005-02-13  James A. Morrison  <phython@gcc.gnu.org>

	PR tree-optimization/14303
	PR tree-optimization/15784
	* fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
	Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
	ABS_EXPR<x> != 0 to x != 0.

2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>

	* c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
	simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
	spelling conventions.

	* passes.c (rest_of_handle_gcse): Don't run cse_main and
	delete_trivially_dead_insns too many times.

	* passes.c (rest_of_handle_gcse): Remove dead assignments to
	tem and tem2.

2005-02-12  Ira Rosen  <irar@il.ibm.com>

	* tree-vectorizer.c (vect_get_base_and_offset): Remove.
	(vect_is_simple_iv_evolution): Remove redundant parameter
	and step check.
	(vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
	without last parameter.
	(vect_analyze_pointer_ref_access): Get access_fn as parameter.
	Return pointer step. Call vect_is_simple_iv_evolution without
	last parameter. Check only that the step is multiple of size
	type. Remove stmt_vinfo updates.
	(vect_get_memtag_and_dr): Remove.
	(vect_get_memtag): New function.
	(vect_address_analysis): New function.
	(vect_object_analysis): New function.
	(vect_analyze_data_refs): Call vect_object_analysis and
	vect_get_memtag. Update stmt_vinfo fields.

2005-02-12  Ira Rosen  <irar@il.ibm.com>

	* tree-data-ref.c (array_base_name_differ_p): Check that the bases
	exist and are objects. Remove checks for pointer.
	* tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
	STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
	(vect_create_data_ref_ptr): Likewise.
	(vect_base_addr_differ_p): New function.
	(vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
	(vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
	Don't set the DR_BASE_NAME field of data-ref.
	(vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.

2005-02-12  Uros Bizjak  <uros@kss-loka.si>

	* optabs.h (enum optab_index): Add new OTI_ldexp.
	(ldexp_optab): Define corresponding macro.
	* optabs.c (init_optabs): Initialize ldexp_optab.
	* genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
	patterns.
	* builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
	using ldexp_optab.
	(expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
	expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.

	* config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
	to implement ldexpf, ldexp and ldexpl built-ins as inline x87
	intrinsics.

2005-02-12  Ira Rosen  <irar@il.ibm.com>

	* tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
	to base_address.
	* tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
	stmt_vec_info.
	(vect_get_base_and_offset): Always return an address.
	(vect_create_addr_base_for_vector_ref): Remove treatment for
	different data reference types.
	(vect_compute_data_ref_alignment): Rename base to base_address in
	stmt_vec_info. Get the object in order to force its alignment.
	(vect_get_memtag_and_dr): Rename base to base_address in
	stmt_vec_info. Extract the object for memtag analysis.

2005-02-12  Hans-Peter Nilsson  <hp@axis.com>

	PR regression/19898.
	* config/cris/cris.c (cris_notice_update_cc): When testing if insn
	changes cc_status, use apply modified_in_p to part of cc_status
	and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
	body.

2005-02-11  Richard Henderson  <rth@redhat.com>

	* tree-complex.c (expand_complex_libcall): New.
	(expand_complex_multiplication): Use it for c99 compliance.
	(expand_complex_division): Likewise.
	* fold-const.c (fold_complex_add, fold_complex_mult): New.
	(fold): Call them.
	* builtins.c (built_in_names): Remove const.
	* tree.c (build_common_builtin_nodes): Build complex arithmetic
	builtins.
	* tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
	(BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
	(built_in_names): Remove const.
	* c-common.c (c_common_type_for_mode): Handle complex modes.
	* flags.h, toplev.c (flag_complex_method): Rename from
	flag_complex_divide_method.
	* libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
	__mulsc3, __muldc3, __mulxc3, __multc3): New.
	* libgcc2.h: Declare them.
	* libgcc-std.ver: Export them.
	* mklibgcc.in (lib2funcs): Build them.

2005-02-11  Steven Bosscher  <stevenb@suse.de>

	PR tree-optimization/19876
	Partially revert my change from 2005-01-14
	* tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
	(compute_antic): ...and remove the loop here.

2005-02-11  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/19858
	* fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
	is number of inner's bits, avoid creating a BIT_FIELD_REF.

	* config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
	crtend.o if -pie.  Use %{x:a;:b} spec syntax.

2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
	offsets for the big-endian 32-bit case.

2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>

	* config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.

2005-02-11  Dale Johannesen  <dalej@apple.com>

	* cselib.c (cselib_process_insn):  Clear out regs where
	HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
	* reload.c (find_equiv_reg): Ditto.

2005-02-11  Ian Lance Taylor  <ian@airs.com>

	* read-rtl.c (read_rtx_1): Give fatal error if we see a vector
	with no elements.

	* tree.c (build_function_type_list): Work correctly if there are
	no arguments.

2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
	"*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
	("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
	TARGET_ZARCH instead of TARGET_64BIT.

2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config/rs6000/t-rtems:
	(MULTILIB_OPTIONS): Remove mcpu=602.
	(MUTLILIB_DIRNAMES): Remove m602.
	(MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
	Let mcpu=602 match mcpu=603.
	(MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.

2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
	signal trampolines.

2005-02-10  David Daney  <ddaney@avtrex.com>

	* config/alpha/linux-unwind.h: Add exception clause to copyright.
	* config/i386/linux-unwind.h: Likewise.
	* config/ia64/linux-unwind.h: Likewise.
	* config/mips/linux-unwind.h: Likewise.
	* config/pa/linux-unwind.h: Likewise.
	* config/rs6000/linux-unwind.h: Likewise.
	* config/s390/linux-unwind.h: Likewise.
	* config/sh/linux-unwind.h: Likewise.
	* config/sparc/linux-unwind.h: Likewise.

2005-02-10  Steven Bosscher  <stevenb@suse.de>

	PR tree-optimization/17549
	* tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
	TER to replace a DEF with its expression if the DEF and the
	rhs of the expression we replace into have the same root
	variable.

2005-02-10  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.md: Fix the placement of the match_scratch in the
	lea64 peephole2.

2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
	Fix comment typos.

2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
	(strip_offset): Handle addresses.
	(add_address_candidates): Use strip_offset.
	(difference_cost): Reflect strip_offset change.
	(force_var_cost, difference_cost): Strip nops.

2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>

	* df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.

	* builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
	tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
	config/cris/cris-protos.h, config/cris/cris.c: Update
	copyright.

2005-02-10  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
	(lookup_avail_expr): Similarly.

2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>

	* builtins.c (fold_builtin_powi): New function.
	(fold_builtin_1): Call it.

2005-02-10  Steven Bosscher  <stevenb@suse.de>

	PR documentation/19309
	* doc/cpp.texi: The __GNUC__ and related predefined macros
	are also defined for the "standalone" cpp.
	Some non-GCC compilers may also define __GNUC__.

2005-02-10  Jakub Jelinek  <jakub@redhat.com>

	PR c/19342
	* c-typeck.c (common_type): New routine.  Old common_type renamed
	to...
	(c_common_type): ...this.
	(build_conditional_expr, build_binary_op): Use c_common_type instead
	of common_type.

2005-02-10  Steven Bosscher  <stevenb@suse.de>

	* doc/md.texi: Replace @samp{length} with @code{length}.

2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/18687
	* tree-flow.h (find_loop_niter): Declare.
	* tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
	Try using scev even for loops with more than one exit.
	* tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
	(struct ivopts_data): Added niters field.
	(struct nfe_cache_elt): New.
	(nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
	functions.
	(tree_ssa_iv_optimize_init): Initialize niters cache.
	(determine_number_of_iterations): Removed.
	(find_induction_variables): Do not call determine_number_of_iterations.
	Access niters for single exit through niter_for_single_dom_exit.
	(add_iv_outer_candidates): Access niters for single exit through
	niter_for_single_dom_exit.
	(may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
	number_of_iterations_cond.
	(iv_period): New function.
	(determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
	(may_replace_final_value): Take data argument.  Use
	niter_for_single_dom_exit.
	(determine_use_iv_cost_outer): Pass data to may_replace_final_value.
	(rewrite_use_compare): Pass data to may_eliminate_iv.
	(rewrite_use_outer): Pass data to may_replace_final_value.
	(free_loop_data): Clean up the niters cache.
	(tree_ssa_iv_optimize_finalize): Free the niters cache.
	(tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
	* tree-ssa-loop-niter.c (find_loop_niter): New function.
	(find_loop_niter_by_eval): Use tree_int_cst_lt.
	(num_ending_zeros): Moved to tree.c.
	* tree.h (num_ending_zeros): Declare.
	* tree.c (num_ending_zeros): Moved from tree.c.

2005-02-09  Richard Henderson  <rth@redhat.com>

	* builtins.c (DEF_BUILTIN): Add COND argument.
	* tree.h (DEF_BUILTIN): Likewise.
	* builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
	DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
	match.
	(DEF_BUILTIN_STUB): New.
	(BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
	BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
	BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
	* c-common.c (DEF_BUILTIN): Add COND argument.
	* tree.c (local_define_builtin): New.
	(build_common_builtin_nodes): New.

2005-02-09  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold_strip_sign_ops): New function to simplify a
	floating point expression ignoring the sign of the result.
	(fold) <ABS_EXPR>: Use it to simplify fabs(x).
	(fold) <MULT_EXPR>: Use it to simplify x*x.
	* tree.h (fold_strip_sign_ops): Prototype here.
	* builtins.c (fold_builtin_copysign): Take an additional FNDECL
	argument.  Use fold_strip_sign_ops to simplify the first argument.
	(fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
	first argument when the second argument is an even integer
	constant, but only with -funsafe_math_optimizations.
	(fold_builtin_1): Update call to fold_builtin_copysign.

2005-02-09  Ian Lance Taylor  <ian@airs.com>

	PR middle-end/19583
	* gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
	just check whether EH_FILTER_FAILURE falls through.

2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>

	* gcc/haifa-sched.c (schedule_block): Make queued sched group
	insns return to ready list in the next turn.

2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>

	PR middle-end/19402
	* builtins.def: New __builtin_powi[lf].
	* builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
	(expand_builtin_powi): New function.
	(expand_builtin): Dispatch to expand_builtin_powi.
	* libgcc2.h: Add prototypes for __builtin_powi[lf].
	* libgcc2.c: Add __builtin_powi[lf] implementation.
	* mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
	* optabs.h: Add powi_optab.
	* optabs.c (init_optabs): Initialize powi_optab.
	* doc/extend.texi: Document __builtin_powi[lf].

2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>

	* tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
	exists.

2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>

	PR middle-end/19854
	* fold-const.c (try_move_mult_to_index): Remove redundant
	type argument.  Create ADDR_EXPR with correct type.
	(fold): Update callers of try_move_mult_to_index.  Convert
	result to the appropriate type.

2005-02-09  Roger Sayle  <roger@eyesopen.com>

	PR target/19597
	* config/avr/avr.c (default_rtx_costs): Delete.
	(avr_operand_rtx_cost): New function.
	(avr_rtx_costs): Completely rewrite.

2005-02-08  Hans-Peter Nilsson  <hp@axis.com>

	PR target/19806
	* config/cris/cris.c (in_code): New variable.
	(cris_output_addr_const): Now a static function, a wrapper for
	output_addr_const.
	(cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
	case from old cris_output_addr_const.
	(cris_asm_output_label_ref): Similar for LABEL_REF.
	(cris_output_addr_const_extra): Similar for UNSPEC.
	* config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
	(ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
	* config/cris/cris-protos.h (cris_output_addr_const): Remove
	declaration.
	(cris_asm_output_symbol_ref, cris_output_addr_const_extra)
	(cris_asm_output_label_ref): Declare.

2005-02-08  Paolo Bonzini  <bonzini@gnu.org>

	PR preprocessor/19801
	* doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
	filenames that changed when libcpp was moved to the toplevel.

2005-02-07  Roger Sayle  <roger@eyesopen.com>

	* simplify-rtx.c (simplify_relational_operation_1): Avoid creating
	zero extensions of BImode operands.  Call lowpart_subreg instead
	of gen_lowpart_common and gen_lowpart_SUBREG.

2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>

	PR ada/19489
	* libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
	* configure.ac: Set cc_for_cross_gnattools.
	* configure: Regenerate.

2005-02-08  Alan Modra  <amodra@bigpond.net.au>

	PR target/19803
	* predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.

2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR debug/19327
	* dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
	of nested functions.

2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>

	* doc/extend.texi: Document deprecated extensions allowing
	static floating-point members to have initializers and allowing
	floating-point literals in integral constant expressions.

2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>

	* cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
	config/darwin7.h, config/mips/mips.c,
	config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
	Update copyright.

	* cse.c: Update comments.

2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>

	PR middle-end/19775
	* builtins.c (fold_builtin_sqrt): Transform
	sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
	pow(x,y*0.5).

2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
	    Dorit Naishlos  <dorit@il.ibm.com>

	* doc/invoke.texi (ftree-vectorizer-verbose): New.
	* opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
	* common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
	was added.
	* tree.h (vect_set_verbosity_level): New extern function declaration
	added.
	* tree-vectorizer.h (verbosity_levels): New enum type.
	* tree-vectorizer.c (vect_debug_stats): Function removed.
	(vect_debug_details): Likewise.
	(vect_verbosity_level): Global variable was defined and initialized.
	(vect_dump): Global variable definition.
	(vect_print_dump_info): New function.
	(vect_set_dump_settings): New function.
	(vect_set_verbosity_level): New function.
	(vectorize_loops): Add call to vect_set_dump_settings.

	(slpeel_make_loop_iterate_ntimes): Dump condition was changed.
	(slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
	(slpeel_tree_peel_loop_to_edge): Likewise.

	(vect_analyze_offset_expr): Call to vect_print_dump_info with
	appropriate verbosity level instead of call to vect_debug_details
	or vect_debug_stats.
	(vect_get_base_and_offset):
	(vect_create_addr_base_for_vector_ref):
	(get_vectype_for_scalar_type):
	(vect_create_data_ref_ptr):
	(vect_init_vector):
	(vect_get_vec_def_for_operand):
	(vect_finish_stmt_generation):
	(vectorizable_assignment):
	(vectorizable_operation):
	(vectorizable_store):
	(vectorizable_load):
	(vect_transform_stmt):
	(vect_update_ivs_after_vectorizer):
	(vect_do_peeling_for_loop_bound):
	(vect_update_inits_of_drs):
	(vect_do_peeling_for_alignment):
	(vect_transform_loop):
	(vect_is_simple_use):
	(vect_analyze_operations):
	(vect_is_simple_iv_evolution):
	(vect_analyze_scalar_cycles):
	(vect_analyze_data_ref_dependence):
	(vect_analyze_data_ref_dependences):
	(vect_compute_data_ref_alignment):
	(vect_enhance_data_refs_alignment):
	(vect_analyze_data_refs_alignment):
	(vect_analyze_data_ref_access):
	(vect_analyze_data_ref_accesses):
	(vect_analyze_pointer_ref_access):
	(vect_get_memtag_and_dr):
	(vect_analyze_data_refs):
	(vect_mark_relevant):
	(vect_stmt_relevant_p):
	(vect_mark_stmts_to_be_vectorized):
	(vect_can_advance_ivs_p):
	(vect_get_loop_niters):
	(vect_analyze_loop_form):
	(vect_analyze_loop):
	(vectorize_loops): Likewise.

	(vect_do_peeling_for_loop_bound): Dump format slightly changed.
	(vect_update_inits_of_drs):
	(vect_do_peeling_for_alignment):
	(vect_transform_loop):
	(vect_analyze_operations):
	(vect_analyze_scalar_cycles):
	(vect_analyze_data_ref_dependences):
	(vect_analyze_data_refs_alignment):
	(vect_analyze_data_ref_accesses):
	(vect_analyze_data_refs):
	(vect_mark_stmts_to_be_vectorized):
	(vect_get_loop_niters):
	(vect_analyze_loop_form):
	(vect_analyze_loop): Likewise.
	(vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.

2005-02-07  Richard Sandiford  <rsandifo@redhat.com>

	PR bootstrap/19796
	Revert:
	2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
	* config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
	either -ffast-math or -funsafe-math-optimizations is in use.

	2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
	* config/mips/irix-csr.c: New file.
	* config/mips/t-iris6 (irix-csr.o): New rule to build it.
	(EXTRA_MULTILIB_PARTS): Add irix-csr.o.
	* config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
	executables.

2005-02-07  Alexandre Oliva  <aoliva@redhat.com>

	* config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
	redundant, incorrect definitions.

	* config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
	expand.
	("*tls_indirect_call"): New, reference hard regs directly.
	* config/frv/frv.c (gen_inlined_tls_plt): Adjust.

2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
	Let !-mhard-float !-msoft-float imply -mfpu=softfpa.

2005-02-06  Roger Sayle  <roger@eyesopen.com>

	PR rtl-optimization/19800
	* simplify_rtx.c (simplify_relational_operation_1): Explicitly
	call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
	gen_lowpart.

2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.

2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>

	PR other/17135
	* doc/invoke.texi: Correct documentation of -freorder-functions.

2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>

	PR other/14402
	* doc/invoke.texi: Don't mention gccbug.

2005-02-06  Roger Sayle  <roger@eyesopen.com>
	    Andrew Pinski  <pinskia@physics.uc.edu>
	    Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>

	* simplify-rtx.c (simplify_relational_operation_1): Simplify
	(ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
	into just (zero_extract:SI FOO (const_int 1) BAR).

2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>

	* doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
	macro locally.  Don't give last revision date.  Use GCC version
	number from gcc-common.texi.
	* doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
	revision date.  Use GCC version number from gcc-common.texi.
	Describe being a library as current state rather than as 3.x
	history.
	* doc/gcc.texi: Remove last update date.
	* doc/gccint.texi: Likewise.  Update copyright dates.
	* doc/install.texi: Update copyright dates.

2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>

	PR other/7549
	* doc/invoke.texi: Mention for each option included in -Wall that
	it is included in -Wall.
	* doc/gcc.texi: Update copyright and last modification date.

2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
	unnecessary cast to original induction variable increments.

2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/18219
	* tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
	in distributed form.

2005-02-06  Richard Sandiford  <rsandifo@redhat.com>

	* expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
	Set bitpos and offset later in the function.  Do nothing if the
	target is a register and if the bitfield lies completely outside
	that register.
	(extract_bit_field): Make the same SUBREG, bitpos and offset changes
	here.  Return an uninitialised register if the source value is stored
	in a register and the bitfield lies completely outside that register.

2005-02-06  Steven Bosscher  <stevenb@suse.de>

	* df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
	not SET_DEST.

2005-02-06  Marcin Dalecki  <martin@dalecki.de>

	* diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.

2005-02-06  Geoffrey Keating  <geoffk@apple.com>

	* config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
	* config/darwin8.h: New.
	* config/darwin7.h: Update comment.

2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
	    Dorit Naishlos  <dorit@il.ibm.com>

	* tree-vectorizer.h (LOC): New type.
	(UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
	(loop_line_number): New field in struct _loop_vec_info.
	(LOOP_VINFO_LOC, LOOP_LOC): New macros.

	* tree-vectorizer.c (input.h): Included.
	(find_loop_location): New function.
	(vect_debug_stats): Argument changed from loop to LOC. Computation of
	loop line number removed.
	(vect_debug_details): Likewise.
	(new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.

	(slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
	call to vect_debug_details/stats changed from loop to loop_loc.
	(slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
	(slpeel_tree_peel_loop_to_edge): Likewise.

	(vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
	changed from NULL to UNKNOWN_LOC.
	(vect_get_base_and_offset):
	(vect_create_addr_base_for_vector_ref):
	(get_vectype_for_scalar_type):
	(vect_create_data_ref_ptr):
	(vect_init_vector):
	(vect_get_vec_def_for_operand):
	(vect_finish_stmt_generation):
	(vectorizable_assignment):
	(vectorizable_operation):
	(vectorizable_store):
	(vectorizable_load):
	(vect_transform_stmt):
	(vect_update_ivs_after_vectorizer):
	(vect_do_peeling_for_loop_bound):
	(vect_do_peeling_for_alignment):
	(vect_transform_loop):
	(vect_is_simple_use):
	(vect_analyze_operations):
	(vect_is_simple_iv_evolution):
	(vect_analyze_scalar_cycles):
	(vect_analyze_data_ref_dependences):
	(vect_compute_data_ref_alignment):
	(vect_enhance_data_refs_alignment):
	(vect_analyze_data_ref_access):
	(vect_analyze_data_ref_accesses):
	(vect_analyze_pointer_ref_access):
	(vect_get_memtag_and_dr):
	(vect_analyze_data_refs):
	(vect_mark_relevant):
	(vect_stmt_relevant_p):
	(vect_mark_stmts_to_be_vectorized):
	(vect_can_advance_ivs_p):
	(vect_get_loop_niters):
	(vect_analyze_loop):
	(vectorize_loops): Likewise.

	(vectorizable_load): Argument in call to vect_debug_details/stats
	changed from loop to LOOP_LOC (loop_vinfo).
	(vect_transform_loop):
	(vect_analyze_operations):
	(vect_analyze_scalar_cycles):
	(vect_analyze_data_ref_dependence):
	(vect_enhance_data_refs_alignment):
	(vect_analyze_data_ref_accesses):
	(vect_analyze_pointer_ref_access):
	(vect_analyze_data_refs):
	(vect_analyze_loop): Likewise.

	(vect_analyze_loop_form): Argument in call to vect_debug_details/stats
	changed from loop to loop_loc.

	(vect_enhance_data_refs_alignment): Removed unused variable loop.

2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
	    Dorit Naishlos  <dorit@il.ibm.com>

	* tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
	declaration added.
	(vect_analyze_data_ref_dependences): Likewise.

	(vect_is_simple_use): Argument changed from loop structure to
	loop_vect_info structure.
	(vect_can_advance_ivs_p): Likewise.
	(vect_create_index_for_vector_ref): Likewise.
	(vect_update_ivs_after_vectorizer): Likewise.
	(new_stmt_vec_info): Likewise.

	(new_loop_vec_info): Second argument in call to new_stmt_vec_info was
	changed from loop to loop_vinfo.
	(vect_create_data_ref_ptr): First argument in call to
	vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
	(vectorizable_assignment): Second argument in call to vect_is_simple_use
	was changed from loop to loop_vinfo.
	(vectorizable_operation): Likewise.
	(vectorizable_store): Likewise.
	(vect_mark_stmts_to_be_vectorized): Likewise.
	(vect_do_peeling_for_loop_bound): First argument in call to
	vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
	(vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
	was changed from loop to loop_vinfo.
	(vect_analyze_data_ref_dependences): Third argument in call to
	vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.

	(vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
	(vect_create_data_ref_ptr): Likewise.
	(vect_init_vector): Likewise.
	(vect_get_vec_def_for_operand): Likewise.
	(vectorizable_assignment): Likewise.
	(vectorizable_operation): Likewise.
	(vectorizable_store): Likewise.
	(vectorizable_load): Likewise.
	(vect_update_ivs_after_vectorizer): Likewise.
	(vect_is_simple_use): Likewise.
	(vect_analyze_data_ref_dependence): Likewise.
	(vect_analyze_pointer_ref_access): Likewise.
	(vect_can_advance_ivs_p): Likewise.

	* tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
	before _stmt_vec_info.
	(_stmt_vec_info): Loop field replaced by loop_vec_info.
	(STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
	(new_stmt_vec_info): Argument changed from loop structure to
	loop_vect_info structure

	(vect_analyze_data_ref_dependences): Unnecessary line was removed.
	(vect_analyze_offset_expr): Avoid 80 columns overflow.
	(vect_create_addr_base_for_vector_ref): Likewise.
	(vect_analyze_pointer_ref_access): Likewise.

2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/19768
	* tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
	phi flag if the phi is abnormal.

2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/19736
	* tree-ssa.c (replace_immediate_uses): Update the immediate_uses
	information for the new statement.

2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>

	PR driver/19117
	* gcc.c (main): Include the target in -v output.

2005-02-03  Alexandre Oliva  <aoliva@redhat.com>

	* combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
	Do not drop the extend if we'd have to add a paradoxical subreg
	later.  Include optabs.h and insn-codes.h.
	* Makefile.in (combine.o): Depend on $(OPTABS_H).

2005-02-02  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/19405
	* real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
	* fold-const.c (const_binop): Avoid constant folding floating
	point operations in modes that use composite representations.
	* simplify-rtx.c (simplify_binary_operation): Likewise.

2005-02-02  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/altivec.md (altivec_dst): Make the first operand
	a REG, not a MEM.
	(altivec_dstt): Likewise.
	(altivec_dstst): Likewise.
	(altivec_dststt): Likewise.
	* config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
	of first operand.

2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>

	* tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
	EXPR_LOCUS from orig_cond to the new cond_stmt.
	(vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
	the new vec_stmt.

2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>

	* tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
	standard_iv_increment_position. Remove call to bsi_next
	(no need to bump the iterator anymore).
	(vect_create_index_for_vector_ref): Call
	standard_iv_increment_position. Remove second function argument.
	(vect_finish_stmt_generation): Remove call to bsi_next
	(no need to bump the iterator anymore).
	(vect_create_data_ref_ptr): Remove second argument (bsi) in call
	to vect_create_index_for_vector_ref.

2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>

	* tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
	phis are used out of the loop.

2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/17807
	* c-decl.c (undef_nested_function): New variable.
	(pop_scope): Diagnose undefined nested functions.
	(finish_function): Don't attempt cgraph processing or genericizing
	if current top-level function contained an undefined nested
	function.  Reset undef_nested_function at the end of a top-level
	function.

2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree.c (build_int_cst_type): Take sign of the value into account
	when deciding whether sign extend the value.

2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/18502
	* gcc.c (cpp_unique_options): Remove %{trigraphs}.
	(cpp_options, cc1_options): Change %{std*&ansi} to
	%{std*&ansi&trigraphs}.

2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c: Update comments.

2005-02-02  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
	arguments go on the stack.  Do not put complex doubles in odd/even
	pairs.

2005-02-02  Steven Bosscher  <stevenb@suse.de>

	* doc/invoke.texi: Update the options enabled at -O1, -O2,
	and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
	-ftree-pre, and -fthread-jumps.

2005-02-02  Richard Sandiford  <rsandifo@redhat.com>

	PR tree-optimization/19578
	* tree-flow.h (modified_noreturn_calls): Declare.
	(noreturn_call_p): Declare.
	* tree-flow-inline.h (noreturn_call_p): New function.
	(modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
	* tree-cfg.c (modified_noreturn_calls): New variable.
	(cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
	that contain a mid-block noreturn call.
	* tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.

2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>

	* df.c (df_def_record_1, df_uses_record): Don't use
	DF_FOR_REGALLOC.
	* df.h (DF_FOR_REGALLOC): Remove.

2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/19435
	* c-typeck.c (really_start_incremental_init): Reset
	constructor_max_index for arrays of incomplete type.

2005-02-02  Jeff Law  <law@redhat.com>

	* gcse.c (struct reg_set): Store the block index where the register
	was set rather than the setting insn.
	(record_one_set, compute_transp): Corresponding changes.
	(pre_insert_copy_insn): Do not call replace_one_set.
	(replace_one_set): Remove.

2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>

	PR other/15514
	* doc/gcov.texi: Fix typo.

2005-02-01  Richard Henderson  <rth@redhat.com

	PR target/19680
	* config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
	* config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
	type to bool.
	(ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
	* config/i386/i386-protos.h: Update.

2005-02-01  Steven Bosscher  <stevenb@suse.de>

	PR tree-optimization/19217
	* tree-cfg.c (verify_expr): Use the data field to see if TP was
	seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
	(verify_stmts): Pass (void*)1 as data to verify_expr to signal
	that it is walking a PHI node.

2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>

	* doc/extend.texi (Nested Functions): Update.

2005-02-01  Richard Henderson  <rth@redhat.com>

	PR 19696
	* optabs.c (expand_copysign_absneg): Export.
	* optabs.h (expand_copysign_absneg): Declare.
	* config/rs6000/rs6000.md (copysigntf3): New.

2005-02-01  Diego Novillo  <dnovillo@redhat.com>

	PR tree-optimization/19633
	* tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
	* tree-ssa-alias.c (init_alias_info): Initialize.
	(merge_pointed_to_info): Set.
	(add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
	(dump_points_to_info_for): Show value of pt_null.
	(struct count_ptr_d): Declare.
	(find_ptr_dereference): Remove.
	(ptr_is_dereferenced_by): Remove.
	(count_ptr_derefs): New local function.
	(count_uses_and_derefs): New local function.
	(compute_points_to_and_addr_escape): Call it.  If the number
	of dereferences is greater than zero, mark the pointer as
	dereferenced.  If there are fewer dereferences than uses of
	the pointer, the pointer's value escapes.

2005-02-01  Diego Novillo  <dnovillo@redhat.com>

	PR tree-optimization/19670
	* tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
	here...
	(verify_use): ... set it here, instead.

2005-02-01  Janis Johnson  <janis187@us.ibm.com>

	* doc/sourcebuild.texi (Test directives): Fix formatting.

	* doc/sourcebuild.texi (Test directives): Describe selector
	expressions.

2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>

	* config.gcc (powerpc64-*-linux*): Default to -m64 also for
	specific 64-bit CPUs.

2005-02-01  Richard Earnshaw  <rearnsha@arm.com>

	PR target/16201
	* arm.c (arm_eliminable_register): New function.
	(adjacent_mem_locations): Don't allow eliminable registers.  Use
	HOST_WIDE_INT for address offsets.
	* arm-protos.h (arm_eliminable_register): Add prototype.

2005-02-01  Steven Bosscher  <stevenb@suse.de>

	PR optimization/15242
	* params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
	* basic-block.h (duplicate_computed_gotos): Add prototype.
	* bb-reorder.c (duplicate_computed_gotos): New function to
	duplicate sufficiently small blocks ending in a computed jump.
	* passes.c (rest_of_compilation): Call duplicate_computed_gotos
	if not optimizing for size.
	* cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
	never do tail merging for blocks ending in a computed jump.
	* doc/invoke.texi: Document the max-goto-duplication-insns param.

2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>

	Patch from Richard Sandiford <rsandifo@redhat.com>
	* reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
	from inheriting a subreg equivalence with a non-spill register.

	* tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.

2005-02-01  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.c (movcc_fp_destination_operand): New.
	(gpr_or_memory_operand): Fix typo in comment.
	(gpr_or_memory_operand_with_scratch): New.
	* config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
	* config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
	movcc_fp_destination_operand.
	(reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
	Legitimize memory addresses using a scratch register.

2005-01-31  Jeff Law  <law@redhat.com>

	* tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
	bitmap a sparse bitmap instead of a simple bitmap.
	(mark_def_sites_initialize_block):  Corresponding changes.
	(ssa_mark_def_sites_initialize_block): Likewise.
	(ssa_mark_phi_uses): Likewise.
	(mark_def_site, ssa_mark_def_sites): Likewise.
	(mark_def_site_blocks): Likewise.
	(rewrite_ssa_into_ssa): Likewise.

	* tree-ssa-dom.c (record_cond): Pass correct variable type
	for last argument to htab_find_slot_with_hash.

	* fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
	effects when optimizing 0 % X.  Do not try to optimize X % 0.

2005-01-31  James E. Wilson  <wilson@specifixinc.com>

	* config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
	1_mmalua.

2005-02-01  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.c (override_options): Warn if -mint64
	is used.
	* doc/invoke.texi (MIPS Options): Document that -mint64 is
	deprecated.

2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
	timestamp.
	(cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
	REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
	cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
	(cached_regno): Initialize to INVALID_REGNUM.
	(cse_reg_info_table_size,
	cse_reg_info_table_first_uninitialized,
	cse_reg_info_timestamp): New.
	(REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
	get_cse_reg_info.
	(init_cse_reg_info, get_cse_reg_info_1): New.
	(get_cse_reg_info): Cache the last look-up.
	(new_basic_block): Update the code to clear mappings from
	registers to cse_reg_info entries.
	(cse_main): Call init_cse_reg_info.

	* cse.c (get_cse_reg_info): Update a comment.

2005-01-31  Steven Bosscher  <stevenb@suse.de>

	PR c/19333
	* c-decl.c (start_decl): Do not warn about arrays of elements with
	an incomplete type here.
	(grokdeclarator): Do it here by making a pedwarn an error.
	* c-typeck.c (push_init_level): If there were previous errors with
	the constructor type, do not warn about braces for initializers.
	(process_init_element): Likewise for excess initializer elements.

2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c (delete_trivially_dead_insn): Don't iterate.

2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/rs6000/rs6000.md (copysignsf3): New expand.
	(copysigndf3): Likewise.

2005-01-31  Steven Bosscher  <stevenb@suse.de>

	* recog.c (constrain_operands): Only look for earlyclobber operand
	conflicts if an '&' constraint was seen.

2005-01-31  Marc Espie <espie@openbsd.org>

	* config.gcc: Don't include embedded systems fragment, switches default
	debugging format to ELF.
	* config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
	longer pick it up there.

2005-01-31  Dale Johannesen  <dalej@apple.com>

	* doc/extend.texi (nested functions): Fix linkage description.
	Clarify that static is not allowed.

2005-01-31  Dale Johannesen  <dalej@apple.com>

	* config/rs6000/darwin.md (movsf_low_di):  Make work.
	(movdf_low_di):  Make work.

2005-01-31  Dale Johannesen  <dalej@apple.com>

	* config/rs6000/darwin-tramp.asm (__trampoline_setup):
	Make work for 64 bit.

2005-01-31  Roger Sayle  <roger@eyesopen.com>
	    Dale Johannesen  <dalej@apple.com>

	PR middle-end/19650
	* fold-const.c (fold_binary_op_with_conditional_arg):
	Make types match original operands, before STRIP_NOPS.

2005-01-31  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/linux-unwind.h (struct gcc_vregs): New.
	(struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
	(struct gcc_sigcontext): Delete.  Merge contents to..
	(struct gcc_ucontext): ..here.
	(get_sigcontext): Delete.
	(get_regs): New function, like get_sigcontext but return regs ptr.
	64-bit version finds regs from r1 to support vdso.
	(ppc_linux_aux_vector): New function.
	(ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
	and vector regs.

2005-01-31  Ira Rosen  <irar@il.ibm.com>

	* tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
	sizetype.
	(vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
	redundant fold. Fix misalignment for MINUS_EXPR.
	(vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
	(vect_analyze_pointer_ref_access): Likewise.
	(vect_get_memtag_and_dr): Likewise.

2005-01-31  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
	(absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
	absnegdf2_i387, absnegxf2_i387): Likewise.

2005-01-31  Richard Henderson  <rth@redhat.com>

	PR 19696
	* optabs.c (expand_copysign_absneg): New.
	(expand_copysign_bit): Split out from ...
	(expand_copysign): ... here.  Use expand_copysign_absneg.

2005-01-30  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/19697
	* config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
	constant as the second operand and a register as the third.

2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>

	PR target/19704
	* config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
	that dllimport'd functions do not use all call-clobbered registers
	to pass parameters.

2005-01-30  Richard Henderson  <rth@redhat.com>

	PR 19696
	* optabs.c (expand_absneg_bit): Split out from expand_unop and
	expand_abs_nojump and generalize.  Use operand_subword and
	emit_no_conflict_block.  Support large modes.
	(expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
	back to maximum.
	(expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
	negation to subtraction.
	(expand_copysign): Check that the format has signed zeros.
	Use operand_subword and emit_no_conflict_block.  Support large modes.

2005-01-30  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/19624

	* Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
	* tree-ssa-pre.c: Add cfgloop.h.
	Update comment.
	(pre_stats): New member, constified.
	(inserted_exprs): New static variable.
	(NECESSARY): New macro.
	(create_expression_by_pieces): Fold the expression, and
	mark it as defaulting to not necessary. Also put in
	inserted_exprs.
	(fully_constant_expression): New function.
	(insert_into_preds_of_block): Modify to not insert phis when we
	are playing with induction variables.
	Push phis onto the inserted_exprs vector, and mark them as not
	necessary by default.
	(insert_aux): Call fully_constant_expression on eprime.
	If all edges produce the same value, mark it constant.
	(mark_operand_necessary): New function.
	(remove_dead_inserted_code): New function.
	(init_pre): Init loop optimizer to get loop info.
	(fini_pre): Free loop_optimizer, and inserted_exprs vec.
	(execute_pre): Commit edge inserts, then remove dead code.

2005-01-30  Richard Henderson  <rth@redhat.com>

	* rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
	* varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.

2005-01-30  Richard Henderson  <rth@redhat.com>

	PR target/19700
	* config/i386/i386.c (ix86_expand_copysign): New.
	(ix86_split_copysign_const): New.
	(ix86_split_copysign_var): Rename from ix86_split_copysign,
	rearrange op1/nmask operands.
	* config/i386/i386-protos.h: Update.
	* config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
	(copysigndf3): Likewise.
	(copysignsf3_const, copysigndf3_const): New.
	(copysignsf3_var): Rename from copysignsf3, split out splitter
	and fix split predicate for X constraint.
	(copysigndf3_var): Similarly.

2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>

	* optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
	doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
	doc/tm.texi, doc/tree-ssa.texi: Update copyright.

2005-01-29  Richard Henderson  <rth@redhat.com>

	PR target/19690
	* config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
	of # and * in constraints.

2005-01-29  Richard Henderson  <rth@redhat.com>

	PR middle-end/19689
	* expr.c (store_field): Don't strip sub-mode cast when the input
	data is even smaller.

2005-01-29  Richard Henderson  <rth@redhat.com>

	PR middle-end/19687
	* expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
	union being empty.

2005-01-29  Richard Henderson  <rth@redhat.com>

	* combine.c (make_field_assignment): Fix argument order
	to gen_int_mode.

2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>

	PR tree-optimization/15791
	* fold-const.c (extract_array_ref): New function.
	(fold): Fold comparisons between &a[i] and &a[j] or
	semantically equivalent trees.

2005-01-29  Jeff Law  <law@redhat.com>

	* gcse.c (insert_expr_in_table): Revamp handling of available
	and anticipatable occurrence lists to avoid unnecessary list
	walking.
	(insert_set_in_table): Similarly.

2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>

	* c-common.c (fix_string_type): Just use c_build_qualified_type to
	build string type.
	(c_build_qualified_type): Build qualified array types with
	TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
	* c-decl.c (c_make_fname_decl): Build unqualified array type
	before qualified type.
	(grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
	type is qualified, not just if type itself is.  Don't apply
	qualifiers to array type when declarator is processed.  Apply
	qualifiers to field type whether or not it is an array type.
	Don't handle array types specially for applying qualifiers to
	variables.
	* c-typeck.c (composite_type): Build unqualified element type and
	array type when forming composite of array types.
	(common_pointer_type, comptypes, comp_target_types,
	type_lists_compatible_p, build_indirect_ref, build_array_ref,
	convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
	types.
	(type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
	(args2) in variables a1 and a2.

2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c (n_elements_made, max_elements_made): Remove.
	(insert): Don't touch n_elements_made.
	(cse_main): Don't touch n_elements_made or max_elements_made.

2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>

	PR target/15384
	* config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
	configuration part of dp-bit.c to be lost.

2005-01-28  Roger Sayle  <roger@eyesopen.com>

	* expmed.c (expand_mult_highpart_optab): When attempting to use
	a non-widening multiplication in a wider mode, the operands need
	to be converted (zero or sign extended) to that mode.

2005-01-28  Ian Lance Taylor  <ian@airs.com>

	PR middle-end/16558
	PR middle-end/19583
	* gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
	through if both operands fall through.

2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c (fold_rtx) <PC>: Don't optimize.

2005-01-28  Jeff Law  <law@redhat.com>

	* fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
	(case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.

2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
	cse_reg_info_used_list_end): Remove.
	(cse_reg_info_list, cse_reg_info_list_free): New.
	(get_cse_reg_info): When allocating an instance of
	cse_reg_info, add it to the beginning of the cse_reg_info_list
	list.  Remove code to maintain cse_reg_info_used_list.
	(new_basic_block): Reset the free list to the beginning of
	cse_reg_info_list.

2005-01-28  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
	(frv_init_builtins): Change its prototype to take 4 uhalf arguments.
	(frv_expand_mdpackh_builtin): New function.
	(frv_expand_builtin): Use it to expand __MDPACKH.
	* doc/extend.texi (__MDPACKH): Update documentation.

2005-01-28  Uros Bizjak  <uros@kss-loka.si>

	* config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
	SSE_FLOAT_MODE_P for use_sse computation.

2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>

	PR target/19663
	* config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.

2005-01-27  Richard Henderson  <rth@redhat.com>

	* builtins.c (expand_builtin_copysign): New.
	(expand_builtin): Call it.
	* genopinit.c (optabs): Add copysign_optab.
	* optabs.c (init_optabs): Initialize it.
	(expand_copysign): New.
	* optabs.h (OTI_copysign, copysign_optab): New.
	(expand_copysign): Declare.

	* config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
	(copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.

	* config/i386/i386.c (ix86_build_signbit_mask): Split from ...
	(ix86_expand_fp_absneg_operator): ... here.
	(ix86_split_copysign): New.
	* config/i386/i386-protos.h: Update.
	* config/i386/i386.md (UNSPEC_COPYSIGN): New.
	(copysignsf3, copysigndf3): New.

	* config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
	(copysignsf3, ncopysignsf3): New.
	(copysigndf3, ncopysigndf3): New.
	(copysignxf3, ncopysignxf3): New.
	* config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.

2005-01-27  Arend Bayer  <arend.bayer@web.de>
	    Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c: (find_best_addr): Don't call copy_rtx before calling
	fold_rtx.  Save cost recomputation if fold_rtx did nothing.
	(fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
	NULL_RTX.

2005-01-27  Jeff Law  <law@redhat.com>

	* tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
	definitions of SSA_NAMEs which are not being rewritten.
	(rewrite_ssa_into_ssa): Only initialize the current definition
	of an SSA_NAME if that SSA_NAME has been marked for rewriting.
	If checking is enabled, assert that SSA_NAME_AUX is clear for all
	SSA_NAMEs before returning.

2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>

	* c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
	cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
	tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
	config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
	config/mips/iris6.h, config/sh/sh.c: Update copyright.

2005-01-27  Steven Bosscher  <stevenb@suse.de>

	PR middle-end/17278
	* opts.c (decode_options): Move flag_thread_jumps from -O1 and
	higher to -O2 and higher.  Likewise for tree PRE.
	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
	and better.

2005-01-27  Ian Lance Taylor  <ian@airs.com>

	PR middle-end/19583
	* gimple-low.c (try_catch_may_fallthru): New static function.
	(block_may_fallthru): Handle TRY_CATCH_EXPR.
	* tree-inline.c (expand_call_inline): Don't warn about reaching
	the end of a non-void function being inlined if the function uses
	a return slot.

2005-01-27  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.

	PR c/18946
	* c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
	(pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
	(implicitly_declare): Handle error_mark_node.

2005-01-27  Richard Henderson  <rth@redhat.com>

	PR tree-opt/14329
	* tree.h (struct tree_decl): Add debug_expr_is_from.
	(DECL_DEBUG_EXPR_IS_FROM): New.
	(DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
	* dwarf2out.c (dwarf2out_var_location): Update to match.
	* tree-outof-ssa.c (create_temp): Likewise.
	* var-tracking.c (track_expr_p): Likewise.
	* tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
	* c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
	* toplev.c (default_tree_printer): Likewise.

2005-01-27  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
	GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.

2005-01-27  Steven Bosscher  <stevenb@suse.de>

	* tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
	CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
	ASM_CLOBBERS): Add tree checks.

	* c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
	(SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
	* c-common.def (SWITCH_STMT): Update to match.
	* c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
	macros instead of SWITCH_EXPR ones.
	* c-dump.c (c_dump_tree): Likewise.
	* c-gimplify.c (gimplify_switch_stmt): Likewise.
	* c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.

	* doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.

2005-01-27  Alan Modra  <amodra@bigpond.net.au>

	* unwind-dw2.c (execute_stack_op): Add missing cases for
	DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.

2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config.gcc (Obsolete configurations): Remove 'dummy', add
	sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
	sparc-*-openbsd*.

2005-01-26  Diego Novillo  <dnovillo@redhat.com>

	PR tree-optimization/19633
	* tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
	CALL_EXPRs.
	(maybe_create_global_var): Do not create .GLOBAL_VAR if there
	are no call-clobbered variables.
	* tree-outof-ssa.c (check_replaceable): Return false for calls
	with side-effects.

2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>

	* dbxout.c (dbxout_symbol_location): Resolve constant pool references
	even for variables with NULL DECL_INITIAL.

2005-01-26  Stuart Hastings  <stuart@apple.com>

	* gimplify.c (shortcut_cond_expr): Re-compute side-effects.

2005-01-26  Richard Henderson  <rth@redhat.com>

	PR middle-end/18008
	* c-decl.c (finish_struct): Set DECL_MODE after resetting a
	field's type.
	* expr.c (store_field): Strip conversions to odd-bit-sized types
	if the destination field width matches.

2005-01-26  Richard Henderson  <rth@redhat.com>

	* c-decl.c, expmed.c, expr.c: Revert last change.

2005-01-26  Richard Henderson  <rth@redhat.com>

	PR middle-end/18008
	* c-decl.c (finish_struct): Set DECL_MODE after resetting a
	field's type.
	* expmed.c (store_fixed_bit_field): Create a paradoxical subreg
	if we don't need the bits above those present in the current mode.
	* expr.c (store_field): Strip conversions to odd-bit-sized types
	if the destination field width matches.

2005-01-26  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
	either -ffast-math or -funsafe-math-optimizations is in use.

2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	PR target/19293
	PR target/19329
	* config/avr/avr.c (notice_update_cc): Only set condition code for
	ashrqi3 if shift count > 0.
	(out_shift_with_cnt): Handle shift count <= 0 as a no-op.
	(ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
	ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
	count <= 0 as a no-op, and shift count >= width by copying zero
	or sign bit to all bits of the result.
	* config/avr/avr.md (all shifts): Add alternatives for zero shift
	count, with attribute "length" set to 0 and "cc" set to "none".

2005-01-26  Aldy Hernandez  <aldyh@redhat.com>

	* doc/invoke.texi: Document -mTLS.

	* testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
	* testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
	* testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
	* testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
	* testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
	* testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
	* testsuite/gcc.target/frv/all-tls-local-exec.c: New.
	* testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.

	* configure.ac: Check for a TLS capable gas.

	* configure: Regenerate.

2005-01-26  Richard Henderson  <rth@redhat.com>

	PR middle-end/18008
	* combine.c (make_field_assignment): Simplify store to zero_extract
	from a source with an overlapping mask.

2005-01-26  Aldy Hernandez  <aldyh@redhat.com>

	2004-11-11  Eric Christopher  <echristo@redhat.com>

	* config/frv/frv.md: Add fr400_integer automaton. Don't
	allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
	to TYPE_MACC.

2005-01-26  Steven Bosscher  <stevenb@suse.de>

	PR middle-end/16585
	* cfgbuild.c (make_edges): Do not clear or set
	current_function_has_computed_jump.
	* function.h (struct function): Remove the has_computed_jump field.
	(current_function_has_computed_jump): Do not define.
	* sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
	in a computed jump.  Ignore current_function_has_computed_jump.

2005-01-26  Richard Henderson  <rth@redhat.com>

	PR middle-end/19515
	* expr.c (categorize_ctor_elements): New argument p_must_clear.
	(categorize_ctor_elements_1): Likewise.  Detect a union that isn't
	fully initialized.
	(mostly_zeros_p): Update for new categorize_ctor_elements argument.
	* gimplify.c (gimplify_init_constructor): Likewise.  Only shove
	objects into static storage if they have more than one non-zero value.
	* tree.h (categorize_ctor_elements): Update decl.

2005-01-26  Steven Bosscher  <stevenb@suse.de>

	PR middle-end/19616
	* tree.h (CALL_EXPR_TAILCALL): Add comment.
	* calls.c (check_sibcall_argument_overlap_1): Revert the change
	to this function from 2004-07-10.
	* tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
	the current function for tail call optimizations if the address
	of one of it its arguments is taken.

2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c (fold_rtx): Call equiv_constant only when necessary.

2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>

	* function.c (expand_function_end): If current_function_calls_alloca,
	emit stack restore in a place that is reached when the function falls
	through at the end.

2005-01-26  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
	rule to avoid matching inappropriate suffix rule.

2005-01-26  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/19241
	* tree-inline.c (copy_body_r): Do not walk subtrees after substituting.

2005-01-26  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
	-lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
	of doubling.
	(STARTFILE_SPEC): Add crti.o, before crtbegin.o.
	<sim*>: Always use crt1.o, regardless of N in simN.
	<!sim>: Drop support for -pg and -p variants; always use crt0.o.
	(ENDFILE_SPEC): Add crtn.o, after crtend.o.
	(CRT_CALL_STATIC_FUNCTION): Remove.
	* config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
	use crt1.o, regardless of N in simN.
	<!sim>: Drop support for -pg and -p variants; always use crt0.o.
	(LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
	(CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
	case isystem setting.
	(MAX_OFILE_ALIGNMENT): Correct to 32, not 16.

2005-01-25  Ian Lance Taylor  <ian@airs.com>

	* gimple-low.c (block_may_fallthru): Correct handling of
	SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.

2005-01-26  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
	handlers to match indentation; nested under the mtune=* handler.
	Similar for mcpu= and march=.

2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
	* config/mips/linux64.h (LIB_SPEC): Likewise.
	* config/mn10300/linux.h (LIB_SPEC): Likewise.
	* config/sh/linux.h (LIB_SPEC): Likewise.

2005-01-25  Aldy Hernandez  <aldyh@redhat.com>

	* config/frv/frv.c (frv_legitimize_tls_address): New.
	(TARGET_HAVE_TLS): Define.
	(FRV_SYMBOL_REF_TLS_P): Define.
	(frv_override_options): Handle new register classes.
	(frv_legitimate_address_p): Reject tls addresses.
	(frv_legitimize_address): Handle TLS addresses.
	(gen_inlined_tls_plt): New.
	(gen_tlsmoff): New.
	(frv_legitimize_tls_address): New.
	(unspec_got_name): Add TLS entries.
	(got12_operand): Add R_FRV_TLSMOFF12 case.
	(frv_emit_move): Fixup TLS addresses.
	(frv_emit_movsi): Legitimize TLS addresses.

	* config/frv/frv.h (MASK_BIG_TLS): New.
	(TARGET_BIG_TLS): New.
	(HAVE_AS_TLS): Define.
	(TARGET_SWITCHES): Add -mTLS and -mtls options.
	(enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
	(REG_CLASS_NAMES): Same.
	(REG_CLASS_CONTENTS): Same.
	(CONSTRAINT_LEN): New.
	(REG_CLASS_FROM_CONSTRAINT): New.
	(PREDICATE_CODES): Add symbolic_operand.

	* config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
	UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
	UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
	UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
	R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
	R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
	R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
	GR9_REG, GR14_REG, LRREG.
	(type): Add load_or_call attribute.
	("load_or_call"): New reservation.
	("call_gettlsoff"): New.
	("tls_indirect_call"): New.
	("tls_load_gottlsoff12"): New.
	("tlsoff_hilo"): New.
	("tls_tlsdesc_ldd"): New.
	("tls_tlsoff_ld"): New.
	("tls_lddi"): New.

	* config/frv/frv-protos.h (symbolic_operand): Protoize.

	2005-01-25  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
	* config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
	* config/frv/frv.c (TLS_BIAS): Define.
	(frv_output_dwarf_dtprel): New.

2005-01-26  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/19579
	* ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
	both A and B, see if they don't clobber registers the other expr uses.

2005-01-25  J"orn Rennecke <joern.rennecke@st.com>

	* real.c (do_add): Initialize signalling and canonical members.

	* real.c (real_from_integer): Zero out destination.

2005-01-18  Jan Hubicka  <jh@suse.cz>

	PR tree-optimize/19337
	* tree-inline.c (initialize_inlined_parameters): Copy
	saved_static_chain_decl only.

2005-01-25  Richard Henderson  <rth@redhat.com>

	PR target/19556
	PR target/19584
	* config/i386/i386.c (x86_inter_unit_moves): Zero.
	(ix86_preferred_reload_class): Rewrite fp-constant section, with
	80387 enabled, to return a proper subclass.  Return the subset that
	overlaps with GENERAL_REGS for PLUS.
	* config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.

2005-01-25  Richard Henderson  <rth@redhat.com>

	PR middle-end/19609
	* tree-complex.c (expand_complex_div_wide): Use the correct formulae.

2005-01-25  Roger Sayle  <roger@eyesopen.com>

	* expmed.c (choose_multiplier): Change interface to return the
	multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
	(expand_divmod): Update calls to choose_multiplier.

2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/19330
	* expmed.c (extract_bit_field): Use adjust_address instead of
	gen_lowpart when op0 is a MEM.

2005-01-24  Steven Bosscher  <stevenb@suse.de>

	* cfgexpand.c (expand_gimple_tailcall): Fix typo.

2005-01-24  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/irix-csr.c: New file.
	* config/mips/t-iris6 (irix-csr.o): New rule to build it.
	(EXTRA_MULTILIB_PARTS): Add irix-csr.o.
	* config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
	executables.

2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR bootstrap/19364
	* config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
	sparc/elf.h, add sparc/sp-elf.h.
	(sparc-*-rtems*): Likewise.
	(sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
	tm-dwarf2.h, add sparc/sp-elf.h.
	(sparc86x-*-elf): Likewise.
	(sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
	* config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
	TARGET_OS_CPP_BUILTINS.
	* config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
	* config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
	Undefine it.
	* config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
	* config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
	(SWITCH_TAKES_ARG): Likewise.
	(LOCAL_LABEL_PREFIX): Likewise.
	(ASM_GENERATE_INTERNAL_LABEL): Likewise.
	(TARGET_N_FORMAT_TYPES): Delete.
	(TARGET_FORMAT_TYPES): Likewise.
	(ASM_DECLARE_FUNCTION_SIZE): Likewise.
	* config/sparc/elf.h: Delete.
	* config/sparc/sp-elf.h: New file.

2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-flow-inline.h (phi_arg_from_edge): Remove.
	* tree-flow.h: Remove the corresponding prototype.
	* tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
	tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.

2005-01-24  Jakub Jelinek  <jakub@redhat.com>

	PR target/17751
	* config/rs6000/rs6000.c (rs6000_file_start): Create toc section
	for AIX ABI or ELF -fPIC.
	(rs6000_emit_load_toc_table): Don't create toc_section here.
	(rs6000_xcoff_file_start): Nor here.

2005-01-24  J"orn Rennecke <joern.rennecke@st.com>

	* sh.c (ra.h): Don't #include.
	(hard_regs_intersect_p): New function, resurrected from ra.c.

	* sh.c: Fix 1996 Copyright.

2005-01-24  Richard Henderson  <rth@redhat.com>
	    Aldy Hernandez  <aldyh@redhat.com>

	* regrename.c (note_sets): Handle subregs.

2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>

	PR bootstrap/18058
	* genconditions.c (write_header, write_conditions): Elide file if
	not GCC >= 3.0.1.

2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>

	* c-opts.c, expmed.c, gengtype.c, tree-complex.c,
	config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
	Update copyright.

2005-01-24  Jakub Jelinek  <jakub@redhat.com>

	* builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
	expand_builtin_printf, expand_builtin_fprintf,
	expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
	checking against POINTER_TYPE.
	(validate_arglist): Handle POINTER_TYPE code by checking
	POINTER_TYPE_P.

2005-01-24  Paolo Bonzini  <bonzini@gnu.org>

	* rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
	init_rtlanal): New.
	(for_each_rtx): Call for_each_rtx_1.
	* rtl.h (init_rtlanal): Declare.
	* toplev.c (backend_init): Call init_rtlanal.

2005-01-24  Jakub Jelinek  <jakub@redhat.com>

	* flow.c (propagate_one_insn): Formatting.

	PR middle-end/19551
	* flow.c (libcall_dead_p): Be more conservative if unsure.
	If there are any instructions between insn and call, see if they are
	all dead before saying the libcall is dead.

2005-01-24  Uros Bizjak  <uros@kss-loka.si>

	* config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
	operand constraint for operand 0.

2005-01-23  Richard Henderson  <rth@redhat.com>

	PR 19486
	* tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
	edges leading to join block.

2005-01-23  Roger Sayle  <roger@eyesopen.com>

	* expmed.c (expand_mult_highpart): Make static.  Change type of
	constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
	(expand_divmod): Updates calls to expand_mult_highpart by using
	gen_int_mode to pass a CONST_INT rtx.
	* rtl.h (expand_mult_highpart): Remove prototype.

2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>

	* flow.c (regset_bytes, regset_size): Remove.

	* cfganal.c: Fix a reference to Harvey's paper.

2005-01-23  Steven Bosscher  <stevenb@suse.de>

	PR rtl-optimization/19464
	* tree-optimize.c (init_tree_optimization_passes): Add one more
	copyrename pass just before out-of-ssa.

2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>

	PR bootstrap/18058
	* recog.c (recog_memoized): Don't define if GENERATOR_FILE.
	* ggc-none.c (ggc_free): Define.

2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c (max_reg, max_insn_uid): Remove.
	(cse_main): Don't access max_reg or max_insn_uid.

	* c-common.c (explicit_flag_signed_bitfields,
	lang_statement_code_p, lang_expand_function_end): Remove.
	* c-common.h: Remove the corresponding declarations.
	* c-opts.c (c_common_handle_option): Remove all write access
	to explicit_flag_signed_bitfields.

	* cgraph.c (cgraph_varpool_n_nodes): Remove.
	(cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
	* cgraph.h: Remove the corresponding declaration.

	* gcse.c (null_pointer_info): Remove.

2005-01-23  Roger Sayle  <roger@eyesopen.com>
	    Eric Botcazou  <ebotcazou@libertysurf.fr>

	* combine.c (simplify_logical): Only simplify logical expressions
	of the form ior(and(x,y),z) by the inverse distributive law if the
	result is cheaper than the original.

2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>

	* alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
	fold-const.c, gimplify.c, params.h, tree-data-ref.c,
	tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
	tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
	config/freebsd-spec.h, config/arm/arm.h,
	config/h8300/h8300.md, config/i386/i386.md,
	config/i386/predicates.md, config/i386/sse.md,
	config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
	config/vax/vax.md: Fix comment typos.  Follow spelling
	conventions.

2005-01-23  Steven Bosscher  <stevenb@suse.de>

	* gengtype.c (walk_type): Produce `not equal to' compares for loop
	tests, instead of `less than'.

2005-01-23  Richard Sandiford  <rsandifo@redhat.com>

	* function.c (assign_parm_setup_block): When creating a new stack slot
	for a parameter, get its alignment from the parameter's DECL_ALIGN
	rather than the type's TYPE_ALIGN.  Make sure that the parameter
	is at least word aligned.

2005-01-22  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/19378
	* config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.

2005-01-22  Richard Henderson  <rth@redhat.com>

	PR target/19506
	* config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
	in both compare operands.
	(movdfcc_1_sse_max): Likewise.
	(movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
	(movdfcc_1_sse): Likewise.
	* config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
	scratch register as needed.

2005-01-22  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.md (smaxsf3): Fix mnemonic typo.

	* config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.

2005-01-22  Richard Henderson  <rth@redhat.com>

	* genopinit.c (optabs): Use smin/smax for floating point too.
	* doc/md.texi: Update to match.  Clarify that floating point
	results are undefined for +0/-0 and NaN.
	* doc/rtl.texi: Likewise.
	* rtl.def (SMIN, SMAX): Likewise
	* tree.def (MIN_EXPR, MAX_EXPR): Likewise.

	* config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
	leading 's' to the name.
	* config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
	smaxxf3, sminxf3): Likewise.
	* config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
	Likewise.

2005-01-22  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.

2005-01-21  Mark Dettinger  <dettinge@de.ibm.com>

	* config/s390/s390.c (struct processor_costs): New fields
	dlgr, dlr, dr, dsgfr, dsgr.
	(z900_cost, z990_cost): Values for new fields.
	(s390_rtx_costs): New cases MEM und COMPARE in switch
	statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
	DIV, MOD, UDIV, UMOD.

2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("doloop_si64"): Reload input value directly
	into the register being decremented.
	("doloop_si31", "doloop_di"): Likewise.
	("*doloop_si_long"): Adapt pattern.

2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
	access registers.
	(CLASS_MAX_NREGS): Likewise.

2005-01-21  Daniel Berlin  <dberlin@dberlin.org>

	* doc/tree-ssa.texi (Statement Operands): Add example for new
	must-def macro. Note deprecation of old operands interface.

2005-01-22  Richard Sandiford  <rsandifo@redhat.com>

	PR tree-optimization/19484
	* tree-cfg.c (remove_fallthru_edge): New function.
	(cleanup_control_flow): Remove fallthru edges from calls that are
	now known not to return.

2005-01-20  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/19038
	* tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
	copies with loop variant ones.

2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>

	* cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
	config/alpha/alpha-protos.h, config/alpha/alpha.h,
	config/alpha/alpha.md, config/alpha/predicates.md,
	config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
	config/sparc/sol2.h: Update copyright.

	* tree-cfg.c (remove_forwarder_block_with_phi): Look at the
	first label to see if it is a nonlocal label.

2005-01-22  David Edelsohn  <edelsohn@gnu.org>
	    Andrew Pinski  <pinskia@physics.uc.edu>

	PR target/19491
	* config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
	maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.

2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config/rs6000/rtems.h: Update copyright.

2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>

	PR target/19548
	* config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
	(CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
	(SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.

2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c/18809
	* c-typeck.c (convert_arguments): Check for error_mark_node.

2005-01-21  Ian Lance Taylor  <ian@airs.com>

	PR tree-optimization/13000
	* tree-inline.c: Include "tree-flow.h".
	(expand_call_inline): If warn_return_type, warn if non-void inline
	function falls through.
	* tree-cfg.c (execute_warn_function_return): Don't warn about
	control reaching end if TREE_NO_WARNING is set.  Set
	TREE_NO_WARNING.
	* gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
	has been lowered.
	* gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
	branch if we don't need one.
	* c-typeck.c: Include "tree-flow.h"
	(c_finish_bc_stmt): Don't add a goto if the current statement
	list doesn't fall through to the current point.

2005-01-21  Roger Sayle  <roger@eyesopen.com>

	PR rtl-optimization/576
	* real.c (real_arithmetic): Change return type from void to bool
	to return an indication that the result may be inexact.
	* real.h (real_arithmeric): Update prototype.
	* fold-const.c (const_binop):  Don't constant fold floating
	point expressions when the user specifies -frounding-math and
	the result may depend upon the run-time rounding mode.
	(fold_convert_const_real_from_real): Clean-up.
	(fold_initializer): Ignore flag_rounding_math for initializers.
	* simplify-rtx.c (simplify_binary_operation): Likewise, don't
	constant fold FP operations with flag_rounding_math if the
	result may depend upon the run-time rounding mode.

2005-01-21  Tom Tromey  <tromey@redhat.com>

	* c-cppbuiltin.c (define__GNUC__): Correct assertion.

2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-cfg.c: Fix comment typos.

2005-01-21  J"orn Rennecke <joern.rennecke@st.com>

	* passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
	around the call to rest_of_handle_branch_target_load_optimize.

2005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
	(sparc64-*-openbsd*): Likewise.
	(sparclite-*-elf*): Include tm-dwarf2.h.
	(sparc86x-*-elf*): Likewise.
	(sparc64-*-elf*): Likewise.
	* config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
	(DBX_DEBUGGING_INFO): Likewise.
	* config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
	(PREFERRED_DEBUGGING_TYPE): Likewise.
	* config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
	* config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
	(PREFERRED_DEBUGGING_TYPE): Likewise.
	* config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
	(PREFERRED_DEBUGGING_TYPE): Likewise.
	* config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.

2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>

	PR target/18701
	* combine.c (combine_simplify_rtx): Revert change of 2004-12-31.

2005-01-20  Paul Brook  <paul@codesourcery.com>

	* doc/rtl.texi: Document value extension requirements for CONST_INT.

2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
	label is first in a sequence of labels.

	* tree-cfg.c (tree_verify_flow_info): Fix a typo.

2005-01-20  Janis Johnson  <janis187@us.ibm.com>
	    Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	* doc/sourcebuild.texi (Test Directives): New.

2005-01-20  Roger Sayle  <roger@eyesopen.com>

	* real.c (real_floor): Don't leave the result uninitialized when
	mode is VOIDMode, but return the unrounded intermediate value.
	(real_ceil): Likewise.

2005-01-20  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.md (insv): Use gen_int_mode.

2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
	* config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
	* config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
	* config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
	* config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.

2005-01-20  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR debug/19124
	* dwarf2out.c (concat_loc_descriptor): We don't know we can use
	fbreg, so we have to assume we can't.
	(loc_descriptor_from_tree_1): Ditto.
	(containing_function_has_frame_base): New function.
	(add_location_or_const_value_attribute): Use it.
	Also try to generate a frame_base from a single element location
	list.

2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>

	PR tree-optimization/15349
	* timevar.def (TV_TREE_MERGE_PHI): New.
	* tree-cfg.c (tree_forwarder_block_p): Add a new argument
	PHI_WANTED.
	(remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
	calls to tree_forwarder_block_p.
	(remove_forwarder_block_with_phi, merge_phi_nodes,
	gate_merge_phi, pass_merge_phi): New.
	* tree-optimize.c (init_tree_optimization_passes): Add
	pass_merge_phi.
	* tree-pass.h: Add an extern for pass_merge_phi;

2005-01-20  Richard Henderson  <rth@redhat.com>

	PR target/19418
	* config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
	(_mm_castps_pd, _mm_castps_si128): New.
	(_mm_castsi128_ps, _mm_castsi128_pd): New.

2005-01-20  Richard Henderson  <rth@redhat.com>

	PR target/19530
	* config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
	__builtin_ia32_vec_init_v2si.
	(_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
	* config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
	(ix86_init_mmx_sse_builtins): Create it.
	(ix86_expand_builtin): Expand it.
	(ix86_expand_vector_set): Handle V2SFmode and V2SImode.
	* config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
	(vec_extractv2si_0, vec_extractv2si_1): New.

2005-01-20  Richard Henderson  <rth@redhat.com>

	PR target/16533
	* config/i386/i386.c (ix86_expand_push): New.
	* config/i386/mmx.md (push<MMXMODE>1): New.
	* config/i386/sse.md (push<SSEMODE>1): New.
	* config/i386/i386-protos.h: Update.

2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>

	* params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
	copyright.

2005-01-20  Richard Henderson  <rth@redhat.com>

	* rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
	* rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.

2005-01-19  Richard Henderson  <rth@redhat.com>

	PR target/19350
	* config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
	to V4SFmode in SSE1 fallback load path.

2005-01-19  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
	in QImode expansion to ix86_expand_vector_set.
	(ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.

2005-01-19  Richard Henderson  <rth@redhat.com>

	PR target/19511
	* config/i386/i386.c (ix86_preferred_reload_class): Return a proper
	subclass of the input class.
	(ix86_secondary_memory_needed): Always true for cross-MMX classes.
	Always true for cross-SSE1 classes.  Rationalize conditionals.
	* config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
	* config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
	for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
	(movdi_2): Add MMX/SSE zeros.
	(movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
	(movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
	(zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
	(movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
	(movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
	(zero_extendsidi2_rex64_1): Remove.
	(MOV0 peephole): Check GENERAL_REG_P.

2005-01-19  Richard Henderson  <rth@redhat.com>

	PR target/19427
	* config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
	shufps elements.
	(ix86_expand_vector_extract): Likewise.

2005-01-19  Richard Henderson  <rth@redhat.com>

	PR middle-end/19304
	* expr.c (emit_move_change_mode): New argument force; use
	simplify_gen_subreg if true.
	(emit_move_via_alt_mode): Merge into ...
	(emit_move_via_integer): ... here.
	(emit_move_ccmode): Use emit_move_change_mode directly.

2005-01-19  Richard Henderson  <rth@redhat.com>

	PR target/19518
	* config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
	(alpha_preferred_reload_class): Handle CONST_VECTOR.
	(alpha_emit_set_const_1): Add no_output parameter; don't emit
	rtl if true.
	(alpha_emit_set_const): Likewise.  Make static.
	(alpha_emit_set_long_const): Make static.
	(alpha_extract_integer): Split out from alpha_expand_mov.
	(alpha_split_const_mov): Likewise.
	(alpha_expand_mov): Use them.  Handle CONST_VECTOR.
	(alpha_legitimate_constant_p): New.
	* config/alpha/alpha-protos.h: Update.
	* config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
	(LEGITIMATE_CONSTANT_P): Re-implement with a function.
	* config/alpha/alpha.md (movsi): Add n alternative.
	(movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
	(mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
	(splitters for all of the above): Use alpha_split_const_mov.
	* config/alpha/predicates.md (non_add_const_operand): New.
	(non_zero_const_operand): New.
	(input_operand): Use alpha_legitimate_constant_p after reload.

2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/19038
	* tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
	(add_candidate): Add ivs with increment in latch only if
	allow_ip_end_pos_p is true.
	(determine_iv_cost): Use empty_block_p.

2005-01-19  Daniel Berlin  <dberlin@dberlin.org>

	* cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
	(compute_dominance_frontiers): Ditto.

2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>

	PR target/19529
	* config/sh/t-rtems: New.
	* config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.

2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
	the offset of the selected field.

2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-cfg.c (remove_forwarder_block): Fix the check to
	prevent a nonlocal label from appearing in the middle of a
	basic block.

2005-01-19  Hans-Peter Nilsson  <hp@axis.com>

	PR rtl-optimization/19462
	* reorg.c (find_end_label): Create return insn only if
	current_function_epilogue_delay_list is empty.

2005-01-19  Paolo Bonzini  <bonzini@gnu.org>

	* doc/passes.texi: Remove paragraph mentioning new-ra.

2005-01-19  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/15139
	* combine.c: Include params.h.
	(count_rtxs): New function.
	(record_value_for_reg): If replace_rtx would replace at least
	2 occurrences of REG in VALUE and TEM is really large, replace REG with
	(clobber (const_int 0)) instead of TEM.
	* params.def (PARAM_MAX_LAST_VALUE_RTL): New.
	* params.h (MAX_LAST_VALUE_RTL): New.
	* Makefile.in (combine.o): Depend on $(PARAMS_H).
	* doc/invoke.texi (--param max-last-value-rtl=N): Document.

	PR c/17297
	* c-typeck.c (digest_init): Only call build_vector if all constructor
	elements are *_CST nodes.
	* gimplify.c (gimplify_init_constructor): Likewise.

	PR middle-end/19164
	* c-typeck.c (digest_init): Only call build_vector if inside_init
	is a CONSTRUCTOR.

2005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>

	* toplev.c (init_asm_output): Remove dead #ifdef.

2005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.

2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
	accessing DECL_FUNCTION_CODE.
	* dojump.c (do_jump): Likewise.
	* gimplify.c (gimplify_call_expr): Likewise.
	* predict.c (expr_expected_value): Likewise.
	(strip_builtin_expect): Likewise.
	* tree-inline.c (estimate_num_insns_1): Likewise.
	* tree-ssa-loop-im.c (stmt_cost): Likewise
	* fold-const.c (fold): Test for BUILT_IN_NORMAL.
	(tree_expr_nonnegative_p): Likewise.

2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.c (load_pic_register): Emit the appropriate
	variant of the load_pcrel_sym pattern.
	* config/sparc/sparc.md (P macro): Move to the top.
	(load_pcrel_sym): Macroize using P.
	(save_register_window): Likewise.

2005-01-18  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md ("sunordered"): Disable for e500.
	("sordered"): Same.

2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>

	PR C/19472
	* c-typeck.c (build_asm_expr): Strip nops off
	input memory operands.

2005-01-18  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
	_XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
	* config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
	* config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.

2005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>

	PR target/19379
	* config/i386/i386.c (override_options): If the 80387 is disabled,
	then do not return FP values using FP registers.

2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>

	* basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
	c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
	combine.c, config.gcc, coverage.h, cse.c, cselib.c,
	defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
	flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
	gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
	output.h, postreload-gcse.c, postreload.c, recog.c,
	resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
	targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
	tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
	tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
	tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
	tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
	tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
	unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.

	* config/darwin.c, config/darwin.h, config/freebsd-spec.h,
	config/alpha/alpha.c, config/arm/vfp.md,
	config/i386/emmintrin.h, config/i386/i386-modes.def,
	config/i386/i386-protos.h, config/i386/i386.h,
	config/i386/pmmintrin.h, config/i386/ppro.md,
	config/i386/predicates.md, config/i386/xmmintrin.h,
	config/i860/i860.c, config/ia64/ia64-modes.def,
	config/ia64/ia64-protos.h, config/ia64/ia64.h,
	config/ia64/ia64.md, config/ia64/itanium1.md,
	config/ia64/itanium2.md, config/ia64/predicates.md,
	config/iq2000/iq2000.h, config/mips/linux64.h,
	config/rs6000/aix41.h, config/rs6000/aix43.h,
	config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
	config/rs6000/rs6000.c, config/rs6000/rs6000.h,
	config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
	config/sparc/linux64.h, config/sparc/litecoff.h,
	config/sparc/sp64-elf.h, config/sparc/sparc.c,
	config/sparc/sparc.h, config/sparc/sparc.md,
	config/sparc/sysv4-only.h: Update copyright.

2005-01-18  Richard Henderson  <rth@redhat.com>

	PR target/19496
	* config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.

2005-01-18  Marc Espie  <espie@openbsd.org>
	* config/i386/openbsdelf.h: Typo.

2005-01-18  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
	special case for sse.
	* config/i386/predicates.md (sse_comparison_operator): Likewise.

2005-01-18  Dorit Naishlos  <dorit@il.ibm.com>

	* tree-inline.c (estimate_num_insns_1): Added cases for
	ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.

2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR rtl-optimization/19296
	* combine.c (simplify_comparison): Rewrite the condition under
	which a non-paradoxical SUBREG of a PLUS can be lifted when
	compared against a constant.

2005-01-18  Andi Kleen <ak@muc.de>

	* c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
	* c.opt (-Wpointer-sign): Add.
	* doc/invoke.texi: (-Wpointer-sign): Add.

2005-01-18  Uros Bizjak  <uros@kss-loka.si>

	* config/i386/i386.c (override_options): Revert 2004-11-24 change.
	* config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
	*tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
	logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
	exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
	nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
	for TARGET_MIX_SSE_I387.
	(fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
	sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
	atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
	log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
	floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
	(TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
	TARGET_MIX_SSE_I387.
	(atan2sf3, atan2df3, atan2xf3): Remove register constraints
	from expander.

2005-01-18  Uros Bizjak  <uros@kss-loka.si>

	PR target/19424
	* config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
	Add movaps alternative for xmm reg->reg move.

2005-01-17  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
	at the end of the main DOM loop rather than just before DOM exits.

2005-01-17  Diego Novillo  <dnovillo@redhat.com>

	PR tree-optimization/19121
	* tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
	adding aliases to a name tag, also add them to the pointer's
	type tag.
	* tree-ssa-copy.c (merge_alias_info): Do not merge flow
	sensitive alias info at all.  Only check that the two pointers
	have compatible pointed-to sets.
	* tree-ssa.c (verify_name_tags): Verify that the alias set of
	a pointer's type tag is a superset of the alias set of the
	pointer's name tag.

2005-01-17  James E Wilson  <wilson@specifixinc.com>

	PR target/19357
	* config/ia64/ia64.md (movxf): Handle general register source.  Adjust
	comment to document why.

2005-01-17  Richard Henderson  <rth@redhat.com>

	* config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
	sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
	sse2_vmsmaxv2df3_finite, sminv2df3_finite,
	sse2_vmsminv2df3_finite): New.
	(smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
	sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
	Force op1 into register.

2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
	bubblestrap from always rebuilding build directory.

2005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("*clc"): Remove incorrect '='.
	("*cmpmem_short"): Likewise.

2005-01-17  Steven Bosscher  <stevenb@suse.de>

	* basic-block.h: Document BB_* flags.
	* regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
	use an sbitmap instead.
	* sched-rgn.c (compute_trg_info): Likewise.

2005-01-17  Richard Sandiford  <rsandifo@redhat.com>

	* config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
	redundant target_cpu_default and extra_parts lines.  Use the default
	"from-abi" ISA.
	* config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
	(SUBTARGET_EXTRA_SPECS): Delete.
	(DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
	(SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
	* config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
	and "n32" for -mabi=n32.

2005-01-17  Ian Lance Taylor  <ian@airs.com>

	PR c/5675
	* c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
	fold constant variables into initial values.

2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.

	* tree-cfg.c (tree_forwarder_block_p): Speed up by walking
	through the statements backward.

2005-01-17  Ian Lance Taylor  <ian@airs.com>

	PR middle-end/13127:
	* tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
	a variable set to the return value of the inlined function.

2005-01-17  Mark Dettinger  <dettinge@de.ibm.com>

	* rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
	when modes are tieable.

2005-01-17  Ranjit Mathew  <rmathew@hotmail.com>

	* gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
	of pthread_create to find out if threads are enabled.
	* gthr-posix95.h (__gthread_active_p): Likewise.

2005-01-17  Paolo Bonzini  <bonzini@gnu.org>

	* common.opt (-fnew-ra): Remove.
	* ra*.*: Remove.
	* toplev.h (flag_new_regalloc): Remove.
	* Makefile.in (ra*.*): Don't mention.
	* passes.c (rest_of_handle_new_regalloc): Remove.
	(rest_of_handle_combine, rest_of_compilation): Always consider
	flag_new_regalloc as false.
	* doc/invoke.texi: Don't document -fnew-ra.

2005-01-17  Paolo Bonzini <bonzini@gnu.org>

	* bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
	last parameter to reg_scan.
	* loop.c (loop_optimize): Likewise.
	* passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
	rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
	rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
	rest_of_handle_gcse, rest_of_handle_loop_optimize,
	rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
	* regclass.c (reg_scan): Likewise, for the declaration.
	* rtl.h (reg_scan): Likewise, for the prototype.

2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
	mark_dfs_back_edges.

2005-01-16  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-pre.c (add_to_sets): s1 may be NULL.
	(compute_avail): Uses don't go in tmp_gen.

2005-01-16  Steven Bosscher  <stevenb@suse.de>

	* ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
	loop to look for a free slot in a page entry.

2005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/16304
	* defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
	* toplev.c (compile_file): Call process_pending_assemble_output_defs
	just before targetm.asm_out.file_end.
	* tree.h (process_pending_assemble_output_defs): Declare.
	* varasm.c (assemble_output_def, process_pending_assemble_output_defs):
	New functions.
	(assemble_alias): Defer generation of assembly code for defines when
	TARGET_DEFERRED_OUTPUT_DEFS is true.
	* config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
	* config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
	* doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.

2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/19336
	* pa.c (pa_scalar_mode_supported_p): New function.
	(TARGET_SCALAR_MODE_SUPPORTED_P): Define.
	* pa.h (MIN_UNITS_PER_WORD): Add comment.

	* pa-protos.h (prefetch_operand): Delete.
	(prefetch_cc_operand, prefetch_nocc_operand): New declations.
	* pa.c (prefetch_operand): Delete.
	(prefetch_cc_operand, prefetch_nocc_operand): New functions.
	* pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
	(PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
	and prefetch_nocc_operand.
	* pa.md (prefetch): Rework to avoid reload problems handling short
	displacements when a cache control completer needs to be provided.
	(prefetch_32, prefetch_64): Delete.
	(prefetch_cc, prefetch_nocc): New patterns.

2005-01-15  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.

2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR ada/19388
	* pa.c (pa_asm_output_aligned_common): Warn if specified alignment
	exceeds maximum alignment for global common data.
	* pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
	* som.h (MAX_OFILE_ALIGNMENT): Likewise.

2004-01-15  Roger Sayle  <roger@eyesopen.com>

	* tree-ssa-dom.c (extract_range_from_cond): Correct condition.

2004-01-15  Roger Sayle  <roger@eyesopen.com>

	* harg-reg-set.h (reg_class_names): Prototype global array.
	* regclass.c (reg_class_names): Declare here and initialize to
	REG_CLASS_NAMES.
	(dump_regclass): Remove local declaration of reg_class_names.
	(regclass): Likewise.
	* cfg.c (dump_flow_info): Likewise.
	* ra-debug.c (reg_class_names): Likewise.
	* regrename.c (reg_class_names): Likewise.
	* reload.c (reg_class_names): Likewise.
	* reload1.c (spill_failure): Likewise.
	* config/m68hc11/m68hc11.c (reg_class_names): Likewise.

2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("reload_outti"): Remove predicate for
	output operand.  Abort if operand is not a MEM.
	("reload_outdi", "reload_outdf"): Likewise.

2005-01-15  Marc Espie  <espie@openbsd.org>

	* config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
	(i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
	* config/openbsd.h:  Fix C++ includes for native configurations.
	Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
	Add trampoline support.
	* config/i386/openbsdelf.h: New.

2005-01-15  Marc Espie  <espie@openbsd.org>

	* collect2.c (main): Explicitly parse -dynamic-linker option.

2005-01-15  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/19060
	* tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
	Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
	(simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
	and handle extract_range_from_cond returning false.
	* fold-const.c (fold): Optimize comparisons with min/max even for
	width > HOST_BITS_PER_WIDE_INT.

2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
	* config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
	Remove little endian multilib variants.
	Add mips32 multilib variant.

2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>

	* explow.c (copy_all_reg, stabilize): Remove.
	* expr.h: Remove the corresponding prototypes.

	* rtlanal.c (regs_set_between_p): Remove.
	* rtl.h: Remove the corresponding prototype.

2005-01-14  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
	to rs6000_nonimmediate_operand.
	* config/rs6000/rs6000.h (PREDICATE_CODES): Rename
	rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
	* config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
	rs6000_nonimmediate_operand.
	* config/rs6000/spe.md (movdf_e500_double): Rename predicate to
	rs6000_nonimmediate_operand.

2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>

	* tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.

2005-01-14  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
	on e500v2.
	(CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
	(PREDICATE_CODES): Add rs6k_nonimmediate_operand.

	* config/rs6000/rs6000.c (invalid_e500_subreg): New.
	(rs6k_nonimmediate_operand): New.
	(rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
	correctly.
	(legitimate_lo_sum_address_p): Same.
	(rs6000_legitimize_address): Same.
	(rs6000_legitimize_reload_address): Same.
	(rs6000_legitimate_address): Same.
	(spe_build_register_parallel): Pass DF and DC modes in a DI
	register.

	* config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
	to rs6k_nonimmediate_operand.

	* config/rs6000/spe.md ("*frob_df_di"): New.
	("*frob_di_df"): New.
	("*frob_di_df_2"): New.
	("*mov_sidf_e500_subreg0"): New.
	("*mov_sidf_e500_subreg4"): New.
	("*movdf_e500_double"): Change predicate to
	rs6k_nonimmediate_operand.

2005-01-14  Aldy Hernandez  <aldyh@redhat.com>

	* postreload.c (move2add_note_store): Only call
	trunc_int_for_mode on scalar integers.

2005-01-14  Steven Bosscher  <stevenb@suse.de>

	* tree-ssa-dce.c (visited_control_parents): New sbitmap to
	replace BB_VISITED uses.
	(find_obviously_necessary_stmts): Don't clear BB_VISITED.
	(propagate_necessity): Check the bitmap instead of BB_VISITED.
	(tree_dce_done): Free visited_control_parents.
	(perform_tree_ssa_dce): Allocate and clear it.
	* tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
	(compute_antic): Iterate from here using a DFS.  Use an sbitmap
	instead of BB_VISITED.

2005-01-14  Kazu Hirata  <kazu@cs.umass.edu>

	* c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
	rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
	Remove unused prototypes.

2005-01-14  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
	64-bit register usage.
	(spe_func_has_64bit_regs_p): Add FIXME note.

2005-01-14  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (rs6000_generate_compare): Replace
	flag_finite_math_only with flag_unsafe_math_optimizations.

2005-01-14  J. D. Johnston  <jjohnst@us.ibm.com>

	* config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
	end-of-stack check.
	(__tpf_eh_return): Copy TPF private stack area from the module
	boundary stack frame.  Add check for when module addresses are
	equal, but no stub address is found.

2005-01-14  Richard Earnshaw  <rearnsha@arm.com>

	PR target/7525
	* arm.h (struct machine_function): Add call_via field.
	(thumb_call_via_label): Declare.
	* arm.c (thumb_call_via_label): New variable.
	(thumb_call_reg_needed): New variable.
	(arm_output_function_epilogue): For Thumb code, output any per-function
	call-indirect trampolines.
	(thumb_call_via_reg): New function.
	(arm_file_end): New function.
	(TARGET_ASM_FILE_END): Call arm_file_end.
	(aof_file_end): Likewise.
	* arm-protos.h (thumb_call_via_reg): Declare.
	* arm.md (call_reg_thumb, call_value_reg_thumb): Call
	thumb_call_via_reg in normal case.

2005-01-14  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/19084
	PR rtl-optimization/19348
	* recog.c (peephole2_optimize): Do global life update if some peephole
	decides it doesn't need at least one of its inputs and that change
	influences liveness at the start of the basic block.

	* basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
	arguments instead of 1.

2005-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR middle-end/18820
	* varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
	zero for nested functions needing a static chain or functions
	with a non-constant address.

2005-01-13  Roger Sayle  <roger@eyesopen.com>

	* simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
	(and (sign_extend X) C) into (zero_extend (and X C)).

2005-01-13  David O'Brien  <obrien@FreeBSD.org>

	* config/freebsd-spec.h:  Make KSE pthread lib logic the default.

2005-01-13  Richard Henderson  <rth@redhat.com>

	PR target/19009
	PR target/19250
	PR target/19252
	* config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
	bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
	not just TARGET_SSE.
	(cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
	(cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
	(cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
	(cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
	(fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
	(fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
	(fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
	fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
	(movdicc_c_rex64): Rename with '*'.
	(movsfcc, movdfcc): Add checks for 387 and sse math to condition.
	(movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
	(movsfcc_1_387): Rename from movsfcc_1.
	(movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
	(movdfcc_1, movdfcc_1_rex64): Add check for 387.
	(sminsf3, smaxsf3, smindf3, smaxdf3): New.
	(minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
	mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
	maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
	sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
	sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
	sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
	sse_movdfcc_const0_4): Remove.
	* config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
	recognize min/max early.  Update for changed sse cmove patterns.
	(ix86_split_sse_movcc): New.
	* config/i386/i386-protos.h: Update.

2005-01-13  Steven Bosscher  <stevenb@suse.de>

	* tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
	(fix_stmt_v_may_defs): Likewise.

2005-01-13  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
	for converting the mask.

2005-01-13  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
	definition to 600.

2005-01-13  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
	IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
	IX86_BUILTIN_MOVDQ2Q): Remove.
	(IX86_BUILTIN_VEC_EXT_V4SI): New.
	(ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
	(ix86_expand_vector_extract): For V4S[FI], extract element 0 after
	shuffling.
	* config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
	(sse2_pextrw): Fix immediate constraint.
	(sse2_loadq, sse2_loadq_rex64): Remove.
	* config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
	Use __builtin_ia32_vec_ext_<size>.
	(_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.

2005-01-13  Aldy Hernandez  <aldyh@redhat.com>

	* function.c (assign_parm_setup_block): Look inside original
	entry_parm when inspecting PARALLEL.

2005-01-13  Ralf Corsepius  <ralf.corsepius@rtems.org>
	    Joel Sherrill  <joel@oarcorp.com>

	PR target/19399
	* gthr-rtems.h (__gthread_recursive_mutex_t): New type.
	(__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
	rtems_gxx_recursive_mutex_init.
	(__gthread_recursive_mutex_lock): New function.
	(__gthread_recursive_mutex_trylock): Likewise.
	(__gthread_recursive_mutex_unlock): Likewise.

2005-01-13  Ralf Corsepius <ralf.corsepius@rtems.org>

	* config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.

2005-01-13  Jan Beulich  <jbeulich@novell.com>

	* config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
	(ashrti3_internal): Indicate output is early clobber. Generate result
	into output rather than first input. Use move for low word of output
	if shift count is exactly 64.
	(lshrti3_internal): Likewise.

2005-01-13  Hans-Peter Nilsson  <hp@bitrange.com>

	PR target/18329
	PR target/18330
	* reload1.c (delete_output_reload): Don't delete an output reload
	if the pseudo lives longer than a single basic block.  Adjust and
	improve wording of comment.

2005-01-12  Andrew Pinski  <pinskia@physics.uc.edu>

	PR target/19334
	* config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
	of TYPE_SIZE where we mean the number of bytes.

2005-01-12  Aldy Hernandez  <aldyh@redhat.com>

	* function.c (assign_parm_setup_block): Relax condition on
	multi-register optimization.

2005-01-12  Nick Clifton  <nickc@redhat.com>

	* config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
	an "in_delay_slot" attribute of "no" to prevent them being used in
	delay slots.  This is forbidden because they might generate
	exceptions.

2005-01-12  Alan Modra  <amodra@bigpond.net.au>

	PR target/19389
	* config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
	with r->Y and Y->r.

2005-01-12  Nick Clifton  <nickc@redhat.com>

	* config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
	passed on to GAS) but do not define, as GAS no longer supports or
	needs the -m2000 option.

2005-01-11  Roger Sayle  <roger@eyesopen.com>

	* builtins.c (fold_builtin_fabs): Convert argument to the appropriate
	type as args of unprototyped builtins aren't automatically promoted.
	(fold_builtin_abs): Likewise.

2005-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in: Set a `build-warn' variable.

2005-01-11  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/17949
	* tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
	(find_interesting_uses_address): Use it.

2005-01-11  Aldy Hernandez  <aldyh@redhat.com>

	* regrename.c (kill_value): Handle subreg's that won't simplify.

2005-01-11  Richard Henderson  <rth@redhat.com>

	PR target/13366
	* config/i386/i386.h (enum ix86_builtins): Move ...
	* config/i386/i386.c: ... here.
	(IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
	IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
	IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
	IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
	IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
	IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
	IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
	IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
	IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
	IX86_BUILTIN_LOADDDUP): Remove.
	(IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
	IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
	IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
	IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
	IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
	(ix86_init_builtins): Make static.
	(ix86_init_mmx_sse_builtins): Update for changed builtins.
	(ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
	if all the modes match.  Otherwise, fake it.
	(get_element_number, ix86_expand_vec_init_builtin,
	ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
	(ix86_expand_builtin): Make static.  Update for changed builtins.
	(ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
	operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
	(ix86_expand_vector_init_duplicate): New.
	(ix86_expand_vector_init_low_nonzero): New.
	(ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
	Split out from ix86_expand_vector_init; handle integer modes.
	(ix86_expand_vector_init): Use them.
	(ix86_expand_vector_set, ix86_expand_vector_extract): New.
	* config/i386/i386-protos.h: Update.
	* config/i386/predicates.md (reg_or_0_operand): New.
	* config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
	(movv2sf_internal): Likewise.  And a splitter to match them all.
	(vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
	vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
	vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
	vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
	(mmx_pinsrw): Fix operand ordering.
	* config/i386/sse.md (movv4sf splitter): Use direct pattern,
	rather than sse_loadss expander.
	(movv2df splitter): Similarly.
	(sse_loadss, sse_loadlss): Remove.
	(vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
	(vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
	(vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
	(sse3_movddup): Rename with '*'.
	(sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
	(sse2_loadsd): Remove.
	(vec_dupv2df_sse3): Rename from sse3_loadddup.
	(vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
	(sse2_pinsrw): Fix argument ordering.
	(sse2_loadld, sse2_loadq): Add sse1 alternatives.
	(sse2_stored): Remove 'r' destination.
	(vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
	vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
	vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
	vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
	vec_extractv16qi, vec_initv16qi): New.

	* config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
	(_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
	_mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
	constructor form.
	(_mm_load_pd, _mm_store_pd): Use plain dereference.
	(_mm_load_si128, _mm_store_si128): Likewise.
	(_mm_load1_pd): Use _mm_set1_pd.
	(_mm_load_sd): Use _mm_set_sd.
	(_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
	(_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
	(_mm_set_epi64): Use _mm_set_epi64x.
	(_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
	_mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
	_mm_setr_epi8): Use _mm_set_foo form.
	(_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
	(_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
	(_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
	(_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
	* config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
	(_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
	(_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
	(_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
	(_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
	* config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
	(_mm_movedup_pd): Use _mm_shuffle_pd.
	* config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
	_mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
	(_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
	_mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
	Use _mm_setzero_ps.
	(_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
	(_mm_load_ps, _mm_loadr_ps): Use raw dereference.
	(_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
	(_mm_store_ps): Use raw dereference.
	(_mm_store1_ps): Use _mm_storeu_ps.
	(_mm_storer_ps): Use _mm_store_ps.
	(_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
	(_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.

2005-01-11  Stan Shebs  <shebs@apple.com>

	* config/rs6000/rs6000.c (machopic_output_stub): Issue
	ldu instead of lwzu if 64-bit -mdynamic-no-pic.

2005-01-11  Andrew Pinski  <pinskia@physics.uc.edu>

	PR target/18761
	* config/rs6000/rs6000.c (rs6000_special_round_type_align):
	Skip all DECLs except for FIELD_DECLs.

2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (override_options): Return error if
	-mbackchain, -mpacked-stack and -mhard-float are used together.
	(s390_va_start): Remove the backchain && packed-stack special case.
	(s390_gimplify_va_arg): Likewise.
	* doc/invoke.texi: Remove the ABI incompatibility note.

2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (struct s390_frame_layout): Remove
	save_backchain_p.
	(s390_frame_info, s390_emit_prologue): Replace occurrences of
	save_backchain_p with TARGET_BACKCHAIN.

2005-01-11  Alan Modra  <amodra@bigpond.net.au>

	PR target/18916
	* builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
	* expr.h (struct locate_and_pad_arg_data): Add "boundary".
	* function.c (locate_and_pad_parm): Set new field.
	(assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
	Tweak where_pad test to include "none".  Always set mem align for
	stack_parm.
	(assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
	not sufficient for type.
	(assign_parm_setup_block): If stack_parm is zero on entry, always
	make a new stack local.  Block move old stack parm if necessary
	to new aligned stack local.
	(assign_parm_setup_stack): Use a block move to handle
	potentially misaligned entry_parm.
	(assign_parms_unsplit_complex): Specify required alignment when
	creating stack local.
	* calls.c (compute_argument_addresses): Override alignment of stack
	arg calculated from its type with the alignment given by
	FUNCTION_ARG_BOUNDARY.
	(store_one_arg): Likewise.

2005-01-11  Jan Beulich  <jbeulich@novell.com>

	* config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
	Change respective itanium_class attribute to ialu.
	(shladdp4_internal): New.
	* config/ia64/predicates.md (shladd_log2_operand): New.

2005-01-11  Richard Henderson  <rth@redhat.com>

	* expr.c (store_constructor): Use rtvec_alloc instead of
	alloca+gen_rtvec_v, and an incorrect number passed to alloca.

2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>

	* config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.

2005-01-11  Alan Modra  <amodra@bigpond.net.au>

	* varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
	* config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
	(TARGET_RWRELOC): Define.
	(ia64_rwreloc_section_type_flags): Delete.
	(ia64_section_type_flags): New function.
	* config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
	(TARGET_RWRELOC): Define.

2005-01-10  David Mosberger  <davidm@hpl.hp.com>

	PR target/18987
	* config/ia64/ia64.c (process_set): For alloc insn, only call
	process_epilogue is !frame_pointer_needed.

2005-01-10  Roger Sayle  <roger@eyesopen.com>

	PR c++/19355
	* c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
	unary operator and can't be treated as a binary/comparison operator.

2005-01-10  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_function_value): Use type_natural_mode.
	(ix86_return_in_memory): Likewise.
	(function_arg_advance):  Likewise.  Mirror structure in function_arg
	for choosing register to advance.

2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-vectorizer.c, tree.def: Fix comment typos.

2005-01-10  Mark Dettinger  <dettinge@de.ibm.com>

	* config/s390/s390.c (struct processor_costs): 4 new fields:
	ddbr, ddr, debr, der.
	(s390_rtx_costs): More precise handling of divide instructions.

2005-01-10  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.

2005-01-10  Jan Beulich  <jbeulich@novell.com>

	* config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
	names resulting from -ffunction-sections/-fdata-sections and linkonce
	ones.
	* varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
	based on the section name. Rearrange the section name comparison logic
	slightly so that each section name is compared against at most once.

2005-01-10  Ben Elliston  <bje@au.ibm.com>

	* doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
	targets for which -fPIC reduces limitations on the GOT size.

2005-01-09  Falk Hueffner  <falk@debian.org>

	* fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
	X/C1 cmpop C2.

2005-01-09  David Edelsohn  <edelsohn@gnu.org>

	PR target/18720
	* collect2.c (main): Set aixrtl_flag for -brtl option.
	(resolve_lib_name): Search for .so file extension before .a
	if aixrtl_flag set.

2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>

	* tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
	(vect_analyze_data_refs_alignment): Add dump prints.

2005-01-09  Ira Rosen  <irar@il.ibm.com>

	* tree-vectorizer.c (vect_analyze_offset_expr): Use
	expr_invariant_in_loop_p.
	Initialize outputs first thing in the function.
	(vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
	(vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
	(vect_analyze_pointer_ref_access): Check that the initial condition of
	the access function is loop invariant.

2005-01-09  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
	(ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
	just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
	* config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
	mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
	movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
	movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
	sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
	ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
	mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
	mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
	sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
	mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
	mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
	gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
	ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
	mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
	mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
	mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
	eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
	pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
	pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
	pswapdv2sf2): Move to mmx.md; rename as necessary with leading
	mmx_ prefix.
	(mmx_clrdi, pavgusb): Remove.
	(ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
	with leading sse_ prefix.
	* config/i386/sse.md: Receive them.
	* config/i386/mmx.md: New file.
	(MMXMODE12, MMXMODE24, mmxvecsize): New.
	(subrv2sf3): Turn into expander for normal subtraction.
	(mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
	mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
	mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
	mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
	commutative; use ix86_binary_operator_ok.
	(mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
	mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
	mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
	mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
	mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
	Macroize from existing patterns; use ix86_binary_operator_ok.
	(mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
	(mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
	mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
	with vec_select+vec_concat.
	(mmx_pshufw, mmx_pshufw_1): Likewise.
	(mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
	(mmx_uavgv4hi3): Model correctly.
	* config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
	_mm_xor_si64): Remove casts.

2005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/19224
	* tree-scalar-evolution.c (get_instantiated_value,
	set_instantiated_value): New functions.
	(instantiate_parameters_1): Cache the results.
	(instantiate_parameters, resolve_mixers): Initialize and free
	the cache.

2005-01-08  David Edelsohn  <edelsohn@gnu.org>

	* config/i386/i386.md (addhi_4): Correct reference in comment.
	(addqi_4): Same.

2005-01-08  Richard Henderson  <rth@redhat.com>

	* config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
	(_mm_cvtsi128_si64x): Likewise.
	(_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
	_mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
	the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
	* config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
	* config/i386/i386-protos.h: Update.
	* config/i386/i386.c (print_operand): Add 'H'.
	(ix86_fixup_binary_operands): Split out from ...
	(ix86_expand_binary_operator): ... here.
	(ix86_fixup_binary_operands_no_copy): New.
	(ix86_expand_fp_absneg_operator): Handle vector mode results.
	(bdesc_2arg): Update names for sse{,2,3}_ prefixes.
	(ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
	(safe_vector_operand): Use CONST0_RTX.
	(ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
	(ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
	CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
	expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
	special cases.
	* config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
	(IX86_BUILTIN_CMPNGESS): New.
	* config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
	(attr type): Add sselog1.
	(attr unit, attr memory): Handle it.
	(movti, movti_internal, movti_rex64): Move near other integer moves.
	(movtf, movtf_internal): Move near other fp moves.
	(SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
	vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
	movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
	movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
	sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
	sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
	sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
	mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
	rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
	sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
	sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
	sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
	vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
	smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
	cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
	cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
	vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
	vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
	sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
	sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
	cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
	cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
	cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
	cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
	ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
	subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
	smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
	sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
	sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
	sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
	gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
	ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
	ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
	sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
	sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
	sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
	sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
	sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
	sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
	sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
	mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
	addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
	movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
	non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
	same time.
	(SSEPUSH, push<SSEPUSH>): Remove.
	(MMXPUSH, push<MMXPUSH>): Remove.
	(sse_movaps, sse_movaps_1, sse_movups): Remove.
	(sse2_movapd, sse2_movdqa, sse2_movq): Remove.
	(sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
	(sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
	(maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
	(maskncmpv2df3, vmmaskncmpv2df3): Remove.
	(ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
	(lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
	* config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
	(athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
	* config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
	(ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
	(ppro_sse_log_V4SF): Handle sselog1.
	* config/i386/predicates.md (const_0_to_1_operand): New.
	(const_0_to_255_mul_8_operand): New.
	(const_1_to_31_operand): Rename from const_int_1_31_operand.
	(const_2_to_3_operand, const_4_to_7_operand): New.
	* config/i386/sse.md: New file.
	(SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
	(sse_movups): Rename from sse_movups_1.
	(sse_loadlss): Rename from sse_loadss_1.
	(andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
	from the name.
	(negv4sf2): Use ix86_expand_fp_absneg_operator.
	(absv4sf2, negv2df, absv2df): New.
	(addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
	(subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
	iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
	smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
	umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
	(sse3_addsubv4sf3): Model correctly.
	sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
	sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
	(sse_movhlps): Model with vec_select+vec_concat.
	(sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
	sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
	sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
	sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
	sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
	sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
	sse2_pshufhw_1): Likewise.
	(neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
	(add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
	sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
	ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
	sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
	ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
	(addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
	sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
	mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
	sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
	sminv8hi3): Mark commutative
	operands.  Use ix86_binary_operator_ok.
	(sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
	sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
	sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
	sse2_punpcklqdq): Allow operand2 in memory.
	(sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
	sse2_movsd): Add memory alternatives.
	(sse_storelps): Turn expander into an insn; split after reload.
	(sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
	(sse2_storehpd, sse2_storelpd): Add non-xmm outputs.

2005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* configure.ac (DWARF-2 debug_line): Use objdump.
	* configure: Regenerate.

2005-01-08  Jeff Law  <law@redhat.com>
	    Diego Novillo  <dnovillo@redhat.com>

	PR tree-optimization/18241
	* tree-nrv.c (tree_nrv): Ignore volatile return values.
	* tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
	statements with volatile operands.
	* tree-ssa-operands.c (add_stmt_operand): Do add volatile
	operands after marking a statement with has_volatile_ops.

2005-01-08  Roger Sayle  <roger@eyesopen.com>

	* tree.c (int_fits_type_p): Always honor integer constant
	TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.

2005-01-08  Roger Sayle  <roger@eyesopen.com>

	* ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
	the latent bug in rtl_delete_block has been resolved.

2005-01-08  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
	(MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.

2005-01-08  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
	library as @multilib_dir@/$(SHLIB_SONAME).

2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
	* configure: Regenerate.

2005-01-07  Jakub Jelinek  <jakub@redhat.com>

	* c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
	TYPE_MODE.

2005-01-07  David Edelsohn  <edelsohn@gnu.org>

	PR target/13674
	* config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
	Convert non-word aligned offset address using ld/std into
	indirect address.

2005-01-07  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.

2005-01-07  Richard SAndiford  <rsandifo@redhat.com>

	* tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.

2005-01-07  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/19283
	* fold-const.c (fold_widened_comparison): Return NULL if shorter_type
	is not shorter than the original type.

	PR rtl-optimization/19012
	* config/i386/i386.md (addqi_1_slp): Set memory attribute.

	PR rtl-optimization/18861
	* cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
	(FULL_STATE): Define.
	(mark_tablejump_edge): New function.
	(purge_dead_tablejump_edges): New function.
	(find_bb_boundaries): Use it.

	PR tree-optimization/18828
	* builtins.c (expand_builtin_next_arg): Remove argument and all
	the argument checking.
	(expand_builtin): Adjust caller.
	(expand_builtin_va_start): Likewise.  Remove error for too many
	arguments.
	(fold_builtin_next_arg): Issue error for too many arguments.
	After checking arguments, replace them with magic arguments that
	prevent further checking of the args.

2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.

2005-01-06  Roger Sayle  <roger@eyesopen.com>

	PR target/6077
	* gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
	and %{.S:...} (and their negative variants) to test whether the
	input file is assembler or pre-processed-assembler independent of
	the actual filename extension.

2005-01-06  Roger Sayle  <roger@eyesopen.com>

	* simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
	of sign or zero extended values.

2005-01-06  Geoffrey Keating  <geoffk@apple.com>

	* c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
	for IBM long double format correctly.

2005-01-06  Daniel Berlin <dberlin@dberlin.org>

	Fix PR tree-optimization/18792

	* tree-data-ref.c (build_classic_dist_vector): Change first_loop
	to first_loop_depth, and use loop depth instead of loop number.
	(build_classic_dir_vector): Ditto.
	(compute_data_dependences_for_loop): Use depth, not loop number.
	* tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
	number. Pass in loops, instead of loop numbers.
	(gather_interchange_stats): Ditto.
	(linear_transform_loops): Ditto.

2005-01-06  Richard Sandiford  <rsandifo@redhat.com>

	PR rtl-opt/13299
	* loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
	biv_fits_mode_p, extension_within_bounds_p): New functions.
	(check_ext_dependent_givs): Use them.

2005-01-06  Roger Sayle  <roger@eyesopen.com>

	* cfgrtl.c (rtl_delete_block): A basic block may be followed by
	more than one barrier, in which case we should delete them all.

2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* gcc.c (process_command): Change year in 'gcc --version' to 2005.

2005-01-05  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR middle-end/19286
	Fix PR debug/19267
	* dwarf2out.c (gen_subprogram_die): If we've already tried to
	output this subprogram, simply ignore this attempt to do it again.
	(add_abstract_origin_attribute): Don't abort trying to add the abstract
	origin attribute if it's not possible.
	(gen_block_die): Don't ignore subblocks of "unused" blocks.
	(decls_for_scope): Ditto.
	* gimple-low.c (mark_blocks_with_used_subblocks): Remove.
	(mark_used_blocks): Don't call mark_blocks_with_used_subblocks.

2005-01-05  Richard Henderson  <rth@redhat.com>

	PR target/11327
	* config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
	(bdesc_2arg): Use it.
	(ix86_expand_binop_builtin): Force operands into registers
	when optimizing.
	(ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
	ix86_expand_sse_compare, ix86_expand_sse_comi,
	ix86_expand_builtin): Likewise.

2005-01-05  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
	and VEC_SELECT.
	* config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
	(mulv4hi3): Set itanium_class mmmul.
	(fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
	(fpack): Rename from fpack_sfsf.

2005-01-05  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/10692
	* reload1.c (do_input_reload): Restrict the optimization deleteing
	a previous output reload to RELOAD_FOR_INPUT.

2005-01-05  Steven Bosscher  <stevenb@suse.de>

	* combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
	comment that we fall through after case.
	(mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
	(distribute_links): Likewise.
	* cse.c (cse_insn): Likewise.
	* cselib.c (cselib_invalidate_mem): Likewise.
	* df.c: Update comments at the top of the file.
	(read_modify_subreg_p): Update comments here too.
	(df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
	* flow.c (mark_set_1): Likewise.
	(mark_used_regs): Likewise.
	* gcse.c (mems_conflict_for_gcse_p): Likewise.
	(canon_list_insert): Likewise.
	(mark_set): Likewise.
	(try_replace_reg): Likewise.
	(store_killed_in_insn): Likewise.
	* loop.c (count_one_set): Likewise.
	(basic_induction_var): Likewise.
	* postreload-gcse.c (find_mem_conflicts): Likewise.
	* postreload.c (reload_combine_note_store): Likewise.
	(move2add_note_store): Likewise.
	* reload.c (find_equiv_reg): Likewise.
	(mark_referenced_resources): Likewise.
	* rtlanal.c (set_noop_p): Likewise.
	(note_stores): Likewise.
	(note_uses): Likewise.
	* sched-deps.c (sched_analyze_1): Likewise.
	* sched-rgn.c (check_live_1): Likewise.
	(update_live_1): Likewise.
	* config/i860/i860.c: Likewise.

	* rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
	an lvalue.
	(ZERO_EXTRACT): Mention that this one can be an lvalue.

	* doc/rtl.texi: Update documentation for bit-fields and SET.

2005-01-05  Roger Sayle  <roger@eyesopen.com>

	* ifcvt.c (find_if_case_1): Revert 2005-01-04 change.

2005-01-05  Jan Hubicka  <jh@suse.cz>
	    Richard Henderson  <rth@redhat.com>

	PR target/18910
	* config/i386/i386.c (ix86_expand_move): Handle tls symbols
	with an offset.

2005-01-05  Richard Henderson  <rth@redhat.com>

	PR target/12902
	* config/i386/i386.md (sse_movhps, sse_movlps): Remove.
	(sse_shufps): Change operand 3 to const_int_operand.
	(sse2_storelps): Fix typo in template.
	(sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
	* config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
	(ix86_expand_builtin): Likewise.

2005-01-05  Julian Brown  <julian@codesourcery.com>

	* config/arm/arm.c (arm_return_in_memory): Treat complex types
	as aggregates for AAPCS ABIs.

2005-01-05  Stan Shebs  <shebs@apple.com>

	* unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
	Mach-O getters if ppc64.
	* config/darwin.c (darwin_asm_output_dwarf_delta): Obey
	size argument.
	* config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
	signed four-byte field for global code case.
	(STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.

2005-01-05  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/19100
	* c-common.c: Include real.h.
	(c_common_truthvalue_conversion): Avoid destructively modifying expr.
	Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
	Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
	* Makefile.in (c-common.o): Update dependencies.

2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>

	* c-parse.in (asm_string): Add trailing semicolon.

2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>

	* c-parse.in (asm_string): New.  Don't allow wide strings in
	'asm'.
	(simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
	asm_string instead of STRING.

2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>

	* c-typeck.c (constructor_no_implicit): Remove.
	(set_designator, process_init_element): Don't check
	constructor_no_implicit.

2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
	    Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/16482
	* lcm.c (create_pre_exit): New.
	(optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
	ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.

2004-01-05  Richard Earnshaw  <rearnsha@arm.com>

	* arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
	-msoft-float in target_float_switch.
	* arm.c (arm_override_options): Fix processing of target_float_switch.

2004-01-05  Richard Earnshaw  <rearnsha@arm.com>

	* arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
	preferencing.

2004-01-05  Uros Bizjak  <uros@kss-loka.si>

	* doc/invoke.texi (Intel 386 and AMD x86-64 Options):
	Replace i387 with 'i386 compiler' in -mfpmath=sse option.

2005-01-04  Roger Sayle  <roger@eyesopen.com>

	* ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
	if deleting the then-block allows the test-block to fallthru to the
	else-block.

2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c/19152
	* c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
	after the full declaration if the are in two different TUs.

2005-01-04  Richard Henderson  <rth@redhat.com>

	PR tree-opt/19158
	* tree-sra.c (generate_one_element_init): Just
	call gimplify_and_add.
	(generate_element_init): Record the
	new referenced variables and mark them for renaming
	and split out to ...
	(generate_element_init_1): This.
	(scalarize_init): Don't call push_gimplify_context/
	pop_gimplify_context.

2005-01-04  Geoffrey Keating  <geoffk@apple.com>

	* toplev.c (get_src_pwd): Handle failure of getpwd().

2005-01-04  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold_single_bit_test): Delete unreachable handling
	of TRUTH_NOT_EXPR.
	(fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
	all the cases handled by it are inverted by invert_truthvalue.

2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.md (save_register_windowdi): Add missing mode.
	(save_register_windowsi): Likewise.

2005-01-04  Richard Henderson  <rth@redhat.com>

	* tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.

2005-01-04  Uros Bizjak  <uros@kss-loka.si>

	PR middle-end/17767
	* cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
	any simplifications of vector mode comparison operators.
	* simplify-rtx.c (simplify_relational_operation): Fix variable name.

2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
	    Devang Patel  <dpatel@apple.com>

	PR tree-optimization/18308
	* tree-if-conv.c (add_to_dst_predicate_list): Gimplify
	the operands before creating a new expression.
	* dojump.c (do_jump): Make drop_through_label available
	for all cases.  Add expansion of COND_EXPR.

2005-01-04  Ira Rosen  <irar@il.ibm.com>

	* tree-vectorizer.c (vect_analyze_offset_expr): Test for
	INTEGER_CST instead of TREE_CONSTANT.
	(vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
	instead of TREE_CONSTANT.
	(vect_analyze_pointer_ref_access): Test for INTEGER_CST
	instead of TREE_CONSTANT.

2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* tree-eh.c (replace_goto_queue): Return early if the queue is empty.

2005-01-04  Uros Bizjak  <uros@kss-loka.si>

	PR target/19240
	* config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
	(*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).

2005-01-03  Richard Henderson  <rth@redhat.com>

	* fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
	(fold_convert_const_int_from_int, fold_convert_const_int_from_real,
	fold_convert_const_real_from_real): Split out from ...
	(fold_convert_const): ... here.

2005-01-03  Richard Henderson  <rth@redhat.com>

	PR target/19235
	* config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
	(mov<MMXMODEI>_internal): Likewise.
	(movdf_nointeger): Prefer Y while not preferring, but allowing, x.
	Add V2SF case; use it for SSE1; don't use TI.
	(movdf_integer): Likewise.
	(mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.

2005-01-03  Ira Rosen  <irar@il.ibm.com>

	* tree-vectorizer.c (vect_strip_conversions): New function.
	(vect_analyze_offset_expr): Call vect_strip_conversions. Add
	check for binary class.

2005-01-03  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR debug/17924
	Fix PR debug/19191
	* dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
	is a decl.
	* gimple-low.c (mark_blocks_with_used_vars): New function.
	(mark_blocks_with_used_subblocks): Ditto.
	(mark_used_blocks): Ditto.
	(pass_mark_used_blocks): New pass.
	* tree-inline.c: Include debug.h.
	(expand_call_inline): Call outlining_inline_function here.
	* tree-optimize.c (init_tree_optimization_passes): Add
	pass_mark_used_blocks.
	* tree-pass.h (pass_mark_used_blocks): New.
	* Makefile.in (tree-inline.o): Add debug.h dependency.

2005-01-03  Geoffrey Keating  <geoffk@apple.com>

	* config/darwin.c (darwin_handle_weak_import_attribute): Permit
	VAR_DECLs to have weak_import attribute.

	* config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
	'struct ucontext'.

2004-01-03  Steven Bosscher  <stevenb@suse.de>

	* passes.c (rest_of_compilation): Don't run regmove if only
	flag_expensive_optimizations, require flag_regmove instead.

2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
	register "sparc".
	* config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
	* config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
	* config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
	* config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.

2005-01-03  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
	(ia64_const_ok_for_letter_p): New.
	(ia64_const_double_ok_for_letter_p): New.
	(ia64_extra_constraint): New.
	(ia64_expand_vecint_compare): New.
	(ia64_expand_vcondu_v2si): New.
	(ia64_expand_vecint_cmov): New.
	(ia64_expand_vecint_minmax): New.
	(ia64_print_operand): Add 'v'.
	(ia64_preferred_reload_class): New.
	(ia64_vector_mode_supported_p): New.
	* config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
	(PREFERRED_RELOAD_CLASS): Move to function.
	(CONST_OK_FOR_LETTER_P): Move to function.
	(CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
	(CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
	(CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
	(EXTRA_CONSTRAINT): Move to function.
	* config/ia64/ia64.md: Include vect.md.
	(itanium_class): Add mmalua.
	(type): Handle it.
	* config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
	(1b_mmalua): New.
	* config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
	* config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
	CONST0_RTX.
	(const_int_2bit_operand): New.
	(fr_reg_or_0_operand): New.
	* config/ia64/ia64-modes.def: Add vector modes.
	* config/ia64/ia64-protos.h: Update.
	* config/ia64/vect.md: New file.

2005-01-03  Richard Henderson  <rth@redhat.com>

	* simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.

2005-01-03  Uros Bizjak  <uros@kss-loka.si>

	PR target/19236
	* config/i386/i386.c (log1psf2): Change mode of operands[0,1]
	to SFmode.
	(log1pdf2): Change mode of operands[0,1] to DFmode.

2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
	* config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
	* config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
	* config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
	SPARC_RELAXED_ORDERING.

2005-01-03  Richard Henderson  <rth@redhat.com>
	    Uros Bizjak  <uros@kss-loka.si>

	PR target/14631
	* config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
	IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
	* config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
	handling.
	(*mmx_pinsrw, *sse2_pinsrw): New patterns.
	* config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
	const_pow2_1_to_128_operand): New predicates.

2005-01-02  Greg McGary  <greg@mcgary.org>

	* tree-mudflap.c (mf_varname_tree): decl_printable_name handles
	anonymous decls.
	(mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
	object.  [ptr_type]: Remove unused variable.
	Remember nearest addressable array-element or record-component
	when checking bitfield components.  Tolerate empty BIND_EXPR.

2005-01-01  Richard Henderson  <rth@redhat.com>

	* tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
	that don't narrow the value.  Fail for other conversions.

2005-01-01  Richard Henderson  <rth@redhat.com>

	PR c/19031
	* c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
	* c-lang.c (finish_file): Don't do it here.
	* objc/objc-act.c (objc_finish_file): Likewise.

	* cgraph.c (decl_assembler_name_equal): New.
	(cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
	(cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
	* cgraph.h (struct cgraph_varpool_node): Add next.
	(cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
	* varasm.c (assemble_alias): Mark the target as needed.

2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/19221
	* function.c (get_arg_pointer_save_area): Use entry_of_function
	instead of get_insns.

2005-01-01  Roger Sayle  <roger@eyesopen.com>
	    Andrew Pinski  <pinskia@physics.uc.edu>
	    James E. Wilson  <wilson@specifixinc.com>

	PR rtl-optimization/12092
	* loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
	is zero.

2005-01-01  Roger Sayle  <roger@eyesopen.com>
	    Olivier Hainque  <hainque@act-europe.fr>

	* tree.c (int_fits_type_p): A narrower type always fits in a
	wider one, except for negative values into unsigned types.

2005-01-01  Roger Sayle  <roger@eyesopen.com>

	* tree.c (int_fits_type_p): Compare the result of force_fit_type
	with the original constant rather than require TREE_OVERFLOW.

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.

See ChangeLog.12 for earlier changes.
