2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/23282
	* tree-chrec.c (chrec_fold_multiply_poly_poly): Associate chrecs
	correctly.

2006-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.md: Disparage copies between general and floating-point registers
	in 32-bit move patterns.

2006-01-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/20754
	* pa.md: Create separate 32 and 64-bit move patterns for SI, DI, SF
	and DF modes.  Add alternatives to copy between general and floating
	point registers to the 32-bit patterns.
	* pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine.
	* pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define.
	(SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when
	generating 64-bit code.
	* pa.c (output_move_double): Handle copies between general and
	floating registers.

2006-01-10  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR rtl-optimization/25367
	* config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro.

2006-01-10  Jan Beulich  <jbeulich@novell.com>

	* config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include
	MASK_ALIGN_DOUBLE.
	* config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option.
	* config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr
	arguments.

2006-01-08  Ian Lance Taylor  <ian@airs.com>
	    David Edelsohn  <edelsohn@gnu.org>

	PR rtl-optimization/25662
	* optabs.c (simplify_expand_binop): Use simplify_binary_operation
	for constant operands instead of simplify_gen_binary.

2006-01-04  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/25613
	* config/sh/sh.h (CONSTRAINT_LEN): Use unchecking version.	

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

	* config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
	make the prototype extern "C" and add throw ().

	PR target/25554
	* config/i386/i386.md (testqi_ext_3): Ensure len is positive
	and pos non-negative and pos + len <= 32.
	(testqi_ext_3_rex64): Ensure len is positive and pos non-negative,
	drop pos + len < HOST_BITS_PER_WIDE_INT test.
	(testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT.

	PR c/25559
	* c-common.c (handle_vector_size_attribute): Reject zero vector size
	as well as sizes not multiple of component size.

2006-01-03  Richard Guenther  <rguenther@suse.de>

	PR c/25183
	* stmt.c (add_case_node): Make sure to clear overflow flags
	from ranges.

2005-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR fortran/25586
	* pa.md: Remove REG_POINTER check from REG+REG peephole2 floating-point
	store patterns.

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

	PR target/25572
	* config/rs6000/rs6000.c (create_TOC_reference): Set regs_ever_live.

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

	PR rtl-optimization/21041
	* reload.c (find_reloads_subreg_address): Replace paradoxical
	subreg of MEM by widened access only if the resulting memory
	is properly aligned, even on !STRICT_ALIGNMENT targets.

2005-12-23  Jakub Jelinek  <jakub@redhat.com>

	PR objc/25328
	* c-typeck.c (comptypes): If objc_comptypes returned < 0,
	but TYPE_MODE or TYPE_REF_CAN_ALIAS_ALL differs between t1
	and t2, make sure 0 is returned.

2005-12-17  Steven Bosscher  <stevenb@suse.de>

	PR rtl-optimization/23837
	* optabs.c (expand_binop): For a multi-word rotate, never emit
	a REG_NO_CONFLICT block.

2005-12-15  Andrew Haley  <aph@redhat.com>

	* unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Guard
	against prev_cache_entry == NULL when moving a cache entry to the
	head of the list.
	
2005-12-16  Jakub Jelinek  <jakub@redhat.com>

	* doc/invoke.texi (-fdump-tree-*): Remove note about C/C++ only.

2005-12-15  Jan Hubicka  <jh@suse.cz>

	PR target/24969
	* i386.c (classify_argument): Properly adjust offset of bitfield for
	substructures.

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

	* config/rs6000/linux64.h (TARGET_ALIGN_NATURAL): Define.

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

	PR target/25258
	* pa.c (som_text_section_asm_op): Use .NSUBSPA directive when changing
	to the text subspace to output debugging information.

2005-12-09  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c: Include "cgraph.h".
	(bfin_load_pic_reg): Omit loading pic reg if in a local function.
	Return the reg that holds the pointer to the GOT.
	(bfin_expand_prologue): Use return value of bfin_load_pic_reg when
	doing stack checking.

2005-12-09  Thiemo Seufer  <ths@networkno.de>

	* config/mips/mips.c (override_options): Don't allow too small
	integers in FP registers.

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

	PR debug/24908
	* dwarf2out.c (dwarf2out_frame_debug_expr): Don't assert that
	call_used_regs can't be used to save reg in another reg.

2005-12-08  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin-protos.h (legitimize_pic_address): Don't declare.
	* config/bfin/bfin.c (legitimize_pic_address): Now static.  Take
	extra arg "picreg" and use it instead of pic_offset_table_rtx.
	All callers changed.
	(frame_related_constant_load): New arg "related" which controls
	setting of RTX_FRAME_RELATED_P.  All callers changed.
	(bfin_load_pic_reg): New function, broken out of bfin_expand_prologue.
	(bfin_expand_prologue): Add stack limit checking.
	* config/bfin/bfin.md (trapifcc): New pattern.
	(compare_eq, compare_ne, compare_le, compare_lt, compare_leu,
	compare_ltu): Now named patterns.

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

	PR other/13873
	* longlong.h: Merge PPC tests from upstream.

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

	PR target/25199
	* config/i386/i386.md (movqi_1): Only force imovx for alternative
	5 if operand 1 is not aligned.  Undo previous constraint change.
	* config/i386/predicates.md (aligned_operand): Use MEM_ALIGN.

	Backport from mainline:
	2005-06-07  Dale Johannesen  <dalej@apple.com>

	* config/i386/i386.md (movqi_1): Fix case where source
	is memory and destination EDI.

2005-12-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR middle-end/25022
	* builtins.c (expand_builtin_printf, expand_builtin_fprintf,
	fold_builtin_fputs): Lookup the explicit replacement functions
	for any unlocked stdio builtin transformations.

	PR middle-end/25158
	* builtins.c (fold_builtin_fputs): Defer check for missing
	replacement functions.

2005-11-30  Dale Johannesen  <dalej@apple.com>
            Andrew Pinski  <pinskia@physics.uc.edu>

	PR rtl-opt/24930
	* combine.c (find_split_point):  Sign extend bitmask
	when changing bitfield assignment to IOR of AND.

2005-11-30  Kean Johnston  <jkj@sco.com>

	* config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not
	simply its presense in case targets #define SUPPORTS_ONE_ONLY 0.

2005-11-30  Paolo Bonzini  <bonzini@gnu.org>

	PR c/25169
	* c-typeck.c (build_c_cast): Test CONSTANT_CLASS_P before
	accessing fields that are only defined for constants.

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

	* config/ia64/ia64.c (ia64_expand_tls_address): Add ORIG_OP1 argument.
	Move ADDEND_{HI,LO} computation into TLS_MODEL_INITIAL_EXEC case.
	(ia64_expand_move): Adjust caller.

2005-11-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR middle-end/20109
	PR middle-end/25120
	* builtins.c (init_target_chars): New.
	(expand_builtin_printf, expand_builtin_fprintf,
	expand_builtin_sprintf, fold_builtin_sprintf): Check for matching
	format strings using the target charset.

2005-11-27  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/21309
	* expmed.c (choose_mult_variant): Return immediately when mult_cost
	is less than zero.  Limit mult_cost to a reasonable upper bound for
	the synthetic multiplication sequence.

2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* fold-const.c (negate_mathfn_p): Fix comment.

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

	PR middle-end/24950
	* expmed.c (store_bit_field): Don't attempt to insv a field
	larger than the reg.

	Merge from trunk 2005-11-14  Dale Johannesen  <dalej@apple.com>
	* expmed.c (store_bit_field):  Add offset unconditionally for
	memory targets.
	(extract_bit_field):  Don't force extzv or extv operand into
	a register if field is too big.

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

	PR tree-opt/24665
	* tree-gimple.c (is_gimple_id): Export.
	* tree-gimple.h (is_gimple_id): Declare.
	* tree-ssa-ccp.c (ccp_decl_initial_min_invariant): New.
	(get_default_value): Use it.
	(maybe_fold_stmt_indirect): Likewise.

2005-11-18  James E Wilson  <wilson@specifix.com>

	* builtins.c (fold_builtin_strstr): Pass s1 through fold_convert before
	returning it.

2005-11-18  Richard Earnshaw  <richard.earnshaw@arm.com>

	PR target/24914
	* arm.c (arm_hard_regno_mode_ok): Co-processor registers aren't ok
	when not generating code to use that co-processor.

2005-11-18  Jie Zhang  <jie.zhang@analog.com>

	* config/bfin/bfin.md (trap): New pattern.

2005-11-18  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/crtlibid.s: New file.

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

	PR target/24779
	Backport 2005-03-13  David Edelsohn  <edelsohn@gnu.org>,
	2005-03-20  David Edelsohn  <edelsohn@gnu.org>,
	2005-03-24  David Edelsohn  <edelsohn@gnu.org>,
	2005-09-11  David Edelsohn  <edelsohn@gnu.org>
	* config/rs6000/rs6000.c (easy_fp_constant): SFmode constant
	0.0f is easy.  Return 0 for SFmode and DFmode before reload when
	flag_unsafe_math_optimizations not enabled.
	(reg_or_none500mem_operand): New predicate.
	(zero_reg_mem_operand): New predicate.
	(rs6000_generate_compare): Test flag_finite_math_only, not
	flag_unsafe_math_optimizations.
	* config/rs6000/rs6000.h (PREDICATES): Add zero_reg_mem_operand
	and reg_or_none500mem_operand.
	* config/rs6000/rs6000-protos.h (zero_reg_mem_operand): Prototype.
	(reg_or_none500mem_operand): Likewise.
	* config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
	to reg_or_none500mem_operand.
	(extendsfdf2_fpr): Add MEM alternative.
	(movdf splitter): Use const_double_operand predicate.
	(extenddftf2_internal): Change operand2 predicate to
	zero_reg_mem_operand.

2005-11-17  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/elf.h (STARTFILE_SPEC): Add "crtlibid%O%s"
	* config/bfin/uclinux.h (STARFILE_SPEC): Likewise.
	* config/bfin/t-bfin-elf (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Add
	crtlibid.o.
	($(T)crtlibid.o): New rule.

2005-11-16  Richard Earnshaw  <richard.earnshaw@arm.com>

	PR target/24861
	* arm.md (split for movsf with immediate): Restrict split to insns
	that set a general register.

2005-11-16  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/crti.s (__init, __fini): Use appropriate prologue if
	__PIC__ is defined.
	* config/bfin/crtn.s: Change epilogues to match.
	* config/bfin/t-bfin-elf (EXTRA_MULTILIB_PARTS): Define.
	* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If flag_pic, define
	__PIC__ and __pic__.

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

	PR rtl-optimization/23392
	* regrename.c (enum scan_actions) Add mark_access.
	(scan_actions_name): Ditto.
	(scan_rtx_reg): Handle mark_access.
	(scan_rtx_address): Do nothing for mark_access.
	(build_def_use): Mark source registers in REG_FRAME_RELATED_EXPR
	and regs in REG_INC notes before closing chains for dead regs.
	Mark destination regs in REG_FRAME_RELATED_EXPR notes after
	opening chains for new writes.

2005-11-15  Steve Ellcey  <sje@cup.hp.com>

	* mklibgcc.in: Change contents of eh_dummy.c.

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

	PR rtl-optimization/22002
	* combine.c (distribute_notes): Detect cases where a reg dies
	two or more times in a bb, including on the insn we are combining,
	and place the death note on the correct range.

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

	PR c++/22489
	* dwarf2out.c (gen_subprogram_die): Force a declaration die for
	lazily declared methods.
	(force_decl_die): Stop if forcing out the context already make a
	DIE for the decl.
	(force_type_die): Likewise.

2005-11-13  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/24820
	* builtins.c (integer_valued_real_p): Add break in
	REAL_CST having TREE_OVERFLOW set.

2005-11-12  Jie Zhang  <jie.zhang@analog.com>

	* config/bfin/bfin.h (REGISTER_NAMES, SHORT_REGISTER_NAMES,
	HIGH_REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
	REG_ALLOC_ORDER, enum reg_class): Rearrange I/B/L registers.
	* config/bfin/bfin.md: Redefine REG_ constants for I/B/L registers
	in the new order.

2005-11-11  Jason Merrill  <jason@redhat.com>

	PR c++/24686
	* gimplify.c (gimplify_cleanup_point_expr): Also save and restore 
	the cleanup list.

2005-11-11  Jie Zhang  <jie.zhang@analog.com>

	* config/bfin/bfin.c (bfin_expand_strmov): Correctly move the trailing
	bytes when align is 2.
	* config/bfin/bfin.md (rep_movsi, rep_movhi): Make LSETUP be followed
	by the first instruction of the loop.

2005-11-11  Jie Zhang  <jie.zhang@analog.com>

	* configure.ac: Enable checking assembler dwarf2 support for bfin
	target.
	* configure: Regenerate.

2005-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR middle-end/22127
	* calls.c (special_function_p): Set ECF_RETURNS_TWICE for getcontext.

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

	* dwarf2out.c (multiple_reg_loc_descriptor): Don't assume
	DBX_REGISTER_NUMBER being contiguous.

2005-11-08  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (n_dregs_to_save, n_pregs_to_save,
	expand_prologue_reg_save, expand_epilogue_reg_restore): New argument
	IS_INTHANDLER; all callers changed.
	(n_regs_saved_by_prologue): Take interrupt handler attributes into
	account.
	(do_link, do_unlink): New argument ALL; all callers changed.
	(expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
	If function isn't leaf, save and restore all registers.
	(bfin_function_ok_for_sibcall): Only true if not an interrupt or
	exception handler.

	* config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DEFAULTS,
	MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): New.

2005-11-09  Per Bothner  <per@bothner.com>
	    Uros Bizjak  <uros@kss-loka.si>
	
	PR c/24101
	* toplev.c (process_options): Initialize debug_hooks early
	in case lang_hooks.post_options ends up calling a debug_hook.

2005-11-08  Uros Bizjak  <uros@kss-loka.si>

	PR target/19340
	* reg-stack.c (reg_to_stack): Update register liveness also
	for flag_sched2_use_traces.

2005-11-08  Uros Bizjak  <uros@kss-loka.si>

	PR target/24315
	* config/i386/i386.md (*pushdi2_rex64 splitter)
	(*movdi_1_rex64 splitter, *ashldi3_1 splitter)
	(*ashrdi3_1 splitter, *lshrdi3_1 splitter): Delay splitting after
	flow2 pass only when (optimize > 0 && flag_peephole2).

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

	PR rtl-optimization/24683
	* config/i386/i386.c (legitimize_pic_address): If constant operand
	to PLUS is too large, put it in a register.

2005-11-07  Paolo Bonzini  <bonzini@gnu.org>

	PR c/24599
	* c-typeck.c (build_c_cast): Try using a shared constant, and see
	if TREE_OVERFLOW or TREE_CONSTANT_OVERFLOW really changed.

	(readonly_error): Fix formatting error.

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

	PR rtl-optimization/23567
	* ifcvt.c (noce_mem_write_may_trap_or_fault_p): New function.
	(noce_process_if_block): Don't do any optimizations except
	if (cond) x = x; if !set_b and write into orig_x may trap
	or fault.

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

	PR target/22432
	* combine.c (apply_distributive_law): Don't distribute across a
	vector mode subreg.

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

	PR c++/17964
	* diagnostic.c (diagnostic_set_info_translated): New function.
	(diagnostic_set_info): Use it.  Add comment.
	* diagnostic.h (diagnostic_set_info_translated): Declare.

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

	PR middle-end/23155
	* gimplifier.c (gimplify_expr): Create a temporary for lvalue
	CONSTRUCTOR.

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

	PR c/24329
	* c-pretty-print.c (pp_c_type_specifier): Do not recurse if
	c_common_type_for_mode returns an unnamed type.

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

	PR rtl-optimization/23585
	* rtlanal.c (rtx_addr_can_trap_p_1) <PLUS>: Return 0 for an address
	that can't trap plus a constant integer, if the mode has zero size.

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

	PR target/24178
	* config/alpha/alpha.c (get_aligned_mem): Honor alignment given
	by MEM_ALIGN.

2005-11-02  Francois-Xavier Coudert  <coudert@clipper.ens.fr>

	PR fortran/18452
	* gcc/c.opt: Add a -lang-fortran option.
	* gcc/c-opts.c: Add a lang_fortran flag.
	(c_common_init_options): Handling the -lang-fortran option.
	(c_common_handle_option): Add a case for Fortran options in
	preprocessing. Remove cases for -ffixed-form and
	-ffixed-line-length. Add a case for -lang-fortran.

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

	PR 21518
	* loop.c (scan_loop): Do not propagate computations to a hard
	register destination with SMALL_REGISTER_CLASSES.

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

	PR middle-end/24362
	* tree-complex.c (extract_component): Treat RESULT_DECL
	like the rest of the decls.

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

	PR c/23103
	* c-format.c (check_format_types): Use
	lang_hooks.types_compatible_p
	instead of pointer equality when comparing types.

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

	PR driver/24473
	* gcc.c (main): Use the correct counter for erroring out
	about mulitple files.

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

	PR target/24465
	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Always
	use r2 for 64-bit tls .got access.

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

	* dojump.c (do_jump): Handle side-effecting TRUTH_AND_EXPR and
	TRUTH_OR_EXPR.

2005-10-20  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR rtl-optimization/23585
	* rtlanal.c (rtx_addr_can_trap_p_1): New predicate extracted from...
	(rtx_addr_can_trap_p): ... here.  Invoke rtx_addr_can_trap_p_1.
	(may_trap_p_1): New predicate extracted from...
	(may_trap_p): ... here.  Invoke may_trap_p_1.
	(may_trap_or_fault_p): New predicate.
	* rtl.h (may_trap_or_fault_p): Declare it.
	* reorg.c (steal_delay_list_from_target): Use may_trap_or_fault_p
	instead of may_trap_p.
	(steal_delay_list_from_fallthrough): Likewise.
	(fill_simple_delay_slots): Likewise.
	(fill_slots_from_thread): Likewise.
	* function.c (pad_to_arg_alignment): Rework comment about
	SPARC_STACK_BOUNDARY_HACK.
	* config/sparc/sparc.h: Likewise.

2005-10-19  Ulrich Weigand  <uweigand@de.ibm.com>

	* cfgexpand.c (discover_nonconstant_array_refs_r,
	discover_nonconstant_array_refs): Move here from tree-outof-ssa.c
	(tree_expand_cfg): Call discover_nonconstant_array_refs.
	* tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
	discover_nonconstant_array_refs.

2005-10-19  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR middle-end/23199
	* cfgrtl.c (safe_insert_insn_on_edge): Use can_copy_p to detect
	whether registers live on the edge can be saved/restored.

2005-10-18  Paolo Bonzini  <bonzini@gnu.org>

	PR #19672
	* dojump.c (do_jump): Handle TRUTH_AND_EXPR and TRUTH_OR_EXPR here.

2005-10-18  Richard Henderson  <rth@redhat.com>

	PR target/24428
	* config/i386/i386.c (legitimate_constant_p): Check
	SYMBOL_REF_TLS_MODEL directly.  Don't fallthru to SYMBOL_REF
	if LABEL_REF.
	(legitimate_pic_operand_p): Test SYMBOL_REF_TLS_MODEL directly.
	(legitimate_pic_address_disp_p): Reorg CONST checking to make
	sure SYMBOL_REF_TLS_MODEL is tested.  Test SYMBOL_REF_TLS_MODEL
	directly.
	(print_operand_address): Likewise.
	* config/i386/predicates.md (x86_64_immediate_operand): Test
	SYMBOL_REF_TLS_MODEL properly inside CONST.
	(x86_64_zext_immediate_operand): Likewise.
	(global_dynamic_symbolic_operand, local_dynamic_symbolic_operand,
	initial_exec_symbolic_operand, local_exec_symbolic_operand): Remove.
	* config/i386/i386-protos.h: Remove predicates.md entries.

2005-10-17  Alexey Starovoytov  <alexey.starovoytov@sun.com>
	    Ian Lance Taylor <ian@airs.com>

	PR middle-end/23522
	* fold-const.c (fold_widened_comparison): Do not allow range based
	constant folding when right operand cannot be unwidened.

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

	PR c++/22551
	* c-common.c (c_add_case_label): Revert my 2005-10-14 clearing of
	overflow flags.

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

	PR driver/22544
	* gcc.c (have_c): New static variable.
	(have_o): Likewise.
	(process_command): Remove declation of have_c.
	Set have_o to 1 when handling -o.
	(main): Add a fatel error if there are multiple
	files specified and -o and -c/-S is passed witout
	-combine or multiple languages.

2005-10-14  Per Bothner  <per@bothner.com>

	PR preprocessor/21250
	* c-ppoutput.c (print_line): Print internal line 0 as 1.

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

	PR c++/22551
	* c-common.c (c_add_case_label): Clear LOW_VALUE and HIGH_VALUE's
	overflow flags.  Refactor some conditionals.

2005-10-13  Andreas Krebbel  <krebbel1@de.ibm.com>

	* expmed.c (expand_shift): Don't use the target of the rotate as
	target for the first expanded shift insn.
	* testsuite/gcc.dg/20050922-1.c: Testcase added.

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

	PR target/24284
	* config/sparc/sparc.c (gen_stack_pointer_inc): Build by hand.
	(gen_stack_pointer_dec): Likewise.

2005-10-12  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/23324
	* cfgexpand.c (add_alias_set_conflicts): Use objects_must_conflict_p.

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

	PR c++/19964
	* stor-layout.c (place_field): Set DECL_FIELD_OFFSET and
	DECL_FIELD_BIT_OFFSET of FIELD_DECLs, even if they have an invalid
	type.

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

	Backport from mainline:
	* config/rs6000/rs6000.md (call_indirect_nonlocal_aix32): Prefer
	CTR to LR.
	(call_indirect_nonlocal_aix64): Same.
	(call_value_indirect_nonlocal_aix32): Same.
	(call_value_indirect_nonlocal_aix64): Same.
	(call_indirect_nonlocal_sysv): Same.
	(call_value_indirect_nonlocal_sysv): Same.

2005-10-11  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/crti.s (__init, __fini): Renamed from _init, _fini.

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

	* config/i386/i386.md (movsi_1, movdi_1_rex64): Use mmxadd type
	for setting MMX register to 0 rather than mmx.

2005-10-10  Mark Mitchell  <mark@codesourcery.com>

	PR c++/24302
	* toplev.c (check_global_declaration_1): Robustify.

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

	PR target/24284
	* config/sparc/sparc.c (sparc_expand_prologue): Remove bogus PATTERN.

2005-10-10  Maciej W. Rozycki  <macro@linux-mips.org>

	* gcc.c (do_spec_1): Accept numeric characters in file name
	suffixes.

2005-10-09  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/gmon-sol2.c (internal_mcount): Mark as used.

2005-10-07  James E Wilson  <wilson@specifix.com>

	PR target/23644
	* doc/invoke.texi (IA-64 Options, item -mtune): Renamed from
	-mtune-arch.

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

	PR target/23570
	* config/i386/sse.md (*sse_concatv2sf): Change operand 2 constraint
	to "reg_or_0_operand".
	(sse2_loadld): Change operand 1 constraint to "reg_or_0_operand".

2005-10-05  Uros Bizjak  <uros@kss-loka.si>

	PR target/22585
	* config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
	force integer op1 into register for XFmode compares.

2005-10-06  Richard Henderson  <rth@redhat.com>

	PR debug/24070
	* dwarf2out.c (dwarf2out_start_source_file): Print the result
	of maybe_emit_file.

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

	* varasm.c (make_decl_rtl): Correct error message.

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

	PR middle-end/20606
	PR middle-end/24069
	* reload.c (subst_reloads): When adding a REG_LABEL to a
	jump instruction, also update JUMP_LABEL.

2005-10-05  Paolo Bonzini  <bonzini@gnu.org>

	PR tree-optimization/21419
	PR tree-optimization/24146
	PR tree-optimization/24151

	* c-typeck.c (readonly_error): Handle USE being lv_asm.
	(build_asm_expr): Call it if outputs are read-only.
	* gimplify.c (gimplify_asm_expr): Remove former fix to PR 21419.

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

	PR middle-end/23125
	* c-decl.c (finish_decl): Use set_user_assembler_name even for
	register variables.
	* varasm.c (make_decl_rtl): If a register variable does not
	have a set user assmbler name, error out.
	Decode the asmspec is now name+1 bypassing '*'.

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

	PR c/22052
	PR c/21975
	* c-decl.c (diagnose_mismatched_decls): Fix check for both
	decls being "extern inline".

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

	PR ada/19382
	* builtins.c (fold_builtin_memcmp): When constructing the pointer
	type used to access data in the inlined length == 1 case, use
	build_pointer_type_for_mode with CAN_ALIAS_ALL set to true.
	(fold_builtin_strcmp, fold_builtin_strncmp): Likewise.

2005-10-04  Richard Guenther  <rguenther@suse.de>

	PR c/23576
	* c-decl.c (grokdeclarator): Don't write to fields
	of error_mark_node.

2005-10-03  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_register_move_cost): Add case for moving
	from T_REGS to FP register class.

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

	PR 24135
	* tree-nested.c (convert_nl_goto_reference): Lookup a translation
	before creating a new one.

2005-10-02  Matthias Klose  <doko@debian.org>

	* doc/invoke.texi: Fix typo and speling error.

2005-09-30  Paolo Bonzini  <bonzini@gnu.org>
	
	PR c/21419
	* gimplify.c (gimplify_asm_expr): Raise an error if an output is
	read-only.

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

	PR middle-end/24109
	* c-decl.c (c_write_global_declarations_1): If any
	wrapup_global_declaration_2 call returned true, restart the loop.

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

	PR target/24102
	* config/rs6000/rs6000.md (floatdisf2_internal2): Correct range
	check for numbers that need no bit twiddle.

2005-09-28  Mark Mitchell  <mark@codesourcery.com>

	* version.c (version_string): Restore date stamp and prerelease
	marker.  Increment version.
	* doc/include/gcc-common.texi: Increment version.

2005-09-21  Andreas Schwab  <schwab@suse.de>

	PR rtl-optimization/23043
	* postreload-gcse.c (eliminate_partially_redundant_load): Fix typo
	when allocating a struct unoccr.

2005-09-27  Release Manager

	* GCC 4.0.2 released.

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

	PR 23941
	* real.c (exact_real_truncate): Return false if the format cannot
	represent the number as a normal.

2005-09-16  Fariborz Jahanian <fjahanian@apple.com>

	* config/darwin.c (indirect_data): Fix a typo.

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

	* config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Treat function name
	passed as NAME as if it were label at start of function code.

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

	Fix 4.1 version applied in error.
	* config/rs6000/rs6000.md (restore_stack_block): Don't use 
	gen_frame_mem.
	(save_stack_nonlocal, restore_stack_nonlocal): Likewise.

	PR target/23774
	* config/rs6000/rs6000.md (restore_stack_block): Write the backchain
	word before changing the stack pointer.	 Use gen_frame_mem for MEMs.
	Use UNSPEC_TIE to prevent insn scheduling reordering the insns.
	(restore_stack_nonlocal): Likewise.
	(save_stack_nonlocal): Use template to emit insns, and gen_frame_mem.

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

	* config/rs6000/rs6000.c (get_next_active_insn): Rewrite using
	CALL_P, JUMP_P and NONJUMP_INSN_P, so that barriers and labels
	are omitted.  Exclude stack_tie insn too.

2005-09-11  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.c (contains_placeholder_p) <tcc_expression>: Properly
	handle CALL_EXPR again.

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

	PR debug/23806
	* dbxout.c (dbxout_expand_expr): New.
	(dbxout_symbol): Use it.

2005-09-09  Josh Conner  <jconner@apple.com>

	PR c++/21135
	* expr.c (expand_expr_addr_expr_1): Don't invoke
	expand_simple_binop for EXPAND_INITIALIZER.

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

	PR debug/20998
	* dbxout.c: Include expr.h.
	(dbxout_global_decl): Don't suppress for DECL_RTL unset.
	(dbxout_symbol): Handle DECL_VALUE_EXPR.
	* Makefile.in (dbxout.o): Add EXPR_H.

2005-09-09  Richard Guenther  <rguenther@suse.de>

	PR c++/23624
	* fold-const.c (fold): Check truth_value_p before calling
	invert_truthvalue.

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

	PR debug/23190
	* toplev.c (wrapup_global_declaration_1): Split out ...
	(wrapup_global_declaration_2): ... from ...
	(wrapup_global_declarations): ... here.  Return bool.
	(check_global_declaration_1): Split out ...
	(check_global_declarations): from here.
	(emit_debug_global_declarations): New.
	* toplev.h (wrapup_global_declaration_1, wrapup_global_declaration_2,
	check_global_declaration_1, emit_debug_global_declarations): Declare.
	* c-decl.c (c_write_global_declarations_1): Don't create a vector
	of decls.  Call wrapup_global_declaration_1,
	wrapup_global_declaration_2, check_global_declaration_1 directly.
	(c_write_global_declarations_2): New.
	(ext_block): New.
	(c_write_global_declarations): Call c_write_global_declarations_2.
	* langhooks.c (write_global_declarations): Call
	emit_debug_global_declarations.

2005-09-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	Backport from mainline
	2005-09-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* c-decl.c (diagnose_mismatched_decls):  With -Wredundant-decls,
	do not issue warning for a variable definition following
	a declaration.
	
2005-09-08  Richard Guenther  <rguenther@suse.de>
	    Zdenek Dvorak  <rakdver@gcc.gnu.org>

	PR tree-optimization/22348
	* tree-ssa-loop-niter.c (number_of_iterations_cond): Fold
	MINUS_EXPR.

2005-09-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>

	PR target/23747
	* config/m32r.md (movmemsi_internal): Canonicalize order of
	operands in PLUS component of template.

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

	Backport from mainline
	2005-06-08  Richard Henderson  <rth@redhat.com>
	* config/ia64/ia64.h (NO_PROFILE_COUNTERS): New.
	* config/ia64/ia64.c (ia64_output_function_profiler): Honor it.
	Emit out3 load right after alloc.
	2005-06-08  Richard Henderson  <rth@redhat.com>
	* config/ia64/ia64.h (FUNCTION_PROFILER): Move implementation ...
	* config/ia64/ia64.c (ia64_output_function_profiler): ... here; add
	unwind markup.
	* config/ia64/ia64-protos.h (ia64_output_function_profiler): Declare.

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

	PR c/23075
	* c-typeck.c (c_finish_return): Set TREE_NO_WARNING on RETURN_EXPR
	if "return with no value, in function returning non-void" warning
	has been issued.
  	* tree-cfg.c (execute_warn_function_return): Don't look at
	RETURN_EXPRs with TREE_NO_WARNING set.

	PR target/22362
	* config/i386/i386.c (ix86_function_regparm): Make sure automatic regparm
	for internal functions doesn't use registers used by global registers
	variables.  Use fewer register parameters if there are global register
	variables.

	PR rtl-optimization/23098
	* cse.c (fold_rtx): Call delegitimize_address target hook.
	* simplify-rtx.c (constant_pool_reference_p): New function.
	* rtl.h (constant_pool_reference_p): New prototype.
	* config/i386/i386.md (pushf split, mov[sdx]f split): Use
	constant_pool_reference_p in condition and
	avoid_constant_pool_reference in preparation statements.

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

	PR middle-end/21460
	* except.c (sjlj_emit_function_enter): Find the function begin
	note even when it's not in first basic block.

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

	PR c/23161
	PR c/23165
	* c-typeck.c (c_finish_if_stmt): Look into STATEMENT_LISTs to see
	if the if is really empty.

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

	PR c++/23225
	* tree.c (build_pointer_type_for_mode): Robustify.

2005-09-03  Richard Guenther  <rguenther@suse.de>
	    Andrew Pinski  <pinskia@gcc.gnu.org>
	    Serge Belyshev  <belyshev@depni.sinp.msu.ru>

	PR tree-optimization/23326
	* tree-ssa-forwprop.c (substitute_single_use_vars): Only
	do transformation if valid.

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

	PR rtl-optimization/23454
	* reorg.c (relax_delay_slots): Only call invert_jump if any_condjump_p
	is true.

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

	PR c++/23167
	* gimplify.c (gimplify_expr): Handle TREE_ADDRESSABLE types when
	generating synthetic loads from volatile lvalues.

2005-09-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/15366
	* common.opt: Add -finline-functions-called-once.
	* doc/invoke.texi: Document new option.
	* cgraphunit.c (cgraph_decide_inlining): Honour
	flag_inline_functions_called_once.

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

	PR c/23506
	* c-common.c (c_common_nodes_and_builtins): Increase builtin_types
	array by one element, initialize the BT_LAST element with NULL.

	PR debug/7241
	* dwarf2out.c (base_type_die): Compare char_type_node with
	TYPE_MAIN_VARIANT (type), not type.

	PR rtl-optimization/23478
	* regs.h (reg_info): Add throw_calls_crossed.
	(REG_N_THROWING_CALLS_CROSSED): Define.
	* flow.c (allocate_reg_life_data): Initialize
	REG_N_THROWING_CALLS_CROSSED.
	(propagate_one_insn, attempt_auto_inc): Update
	REG_N_THROWING_CALLS_CROSSED.
	* local-alloc.c (struct qty): Add n_throwing_calls_crossed field.
	(alloc_qty): Initialize it.
	(update_equiv_regs): Clear REG_N_THROWING_CALLS_CROSSED.
	(combine_regs): Combine also n_throwing_calls_crossed fields.
	(find_free_reg): Don't attempt to caller-save pseudos crossing
	calls that might throw.
	* global.c (struct allocno): Add throwing_calls_crossed field.
	(global_alloc): Initialize throwing_calls_crossed.
	(find_reg): Don't attempt to caller-save pseudos crossing calls that
	might throw.

2005-08-31  Richard Henderson  <rth@redhat.com>

	* expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Force subregs
	into a pseudo before applying gen_lowpart.

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

	PR target/23630
	* expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Use gen_lowpart
	whenever the mode sizes match.

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

	PR rtl-optimization/15248
	* reload1.c (reload): Ignore equivalences between pseudos and
	read only memory.

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

	PR bootstrap/21268
	* Makefile.in (ALL_CPPFLAGS): Include $(INCLUDES) at the
	beginning.  Remove $(INCLUDES) from all the rules, if following
	$(ALL_CPPFLAGS) or $(BUILD_CPPFLAGS).

2005-08-28  John David Anglin  <dave.anflin@nrc-cnrc.gc.ca>

	PR libgcj/23508
	* pa/linux-unwind.h (pa32_fallback_frame_state): Use r0 slot in frame
	state for return address column of signal frames.

2005-08-28  Jakub Jelinek  <jakub@redhat.com>

	PR ada/23593
	* builtins.c (get_memory_rtx): Don't strip nops
	in between COMPONENT_REFs.

2005-08-27  David Edelsohn  <edelsohn@gnu.org>

	PR target/23539
	* config/rs6000/rs6000.c (expand_block_clear): Use HImode when
	bytes >= 2 not bytes == 2.
	(expand_block_move): Same.

2005-08-27  Ian Lance Taylor  <ian@airs.com>

	* combine.c (make_extraction): Avoid reference outside object.

2005-08-27  Richard Guenther  <rguenther@suse.de>

	PR target/23575
	* config/i386/sse.md (sse2_movsd): Add missing closing
	braces.

2005-08-27  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/23561
	* builtins.c (get_memory_rtx): Add LEN argument.  If MEM_EXPR is
	a COMPONENT_REF, remove all COMPONENT_REF from MEM_EXPR unless
	at most LEN bytes long memory fits into the field.
	(expand_builtin_memcpy, expand_builtin_mempcpy, expand_movstr,
	expand_builtin_strncpy, expand_builtin_memset, expand_builtin_memcmp,
	expand_builtin_strcmp, expand_builtin_strncmp): Adjust callers.

2005-08-26  Nick Clifton  <nickc@redhat.com>

	* config/v850/v850.c (ep_memory_operand): Return FALSE if
	TARGET_EP is not defined.
	* config/v850/c850.h (TARGET_CPU_CPP_BUILTINS): Define __EP__ if
	TARGET_EP is enabled.
	(OPTIMIZATION_OPTIONS): Do not define MASK_EP when optimizing.
	* config/v850/v850.md (save_all_interrupt): Only use the EP
	register if TARGET_EP is defined.
	(restore_all_interrupt): Likewise.
	* config/v850/lib1funcs.asm: Update functions so that the EP
	register is only used if __EP__ is defined.

2005-08-25  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/23560
	* loop.c (biased_biv_may_wrap_p): New.
	(maybe_eliminate_biv_1): Use it to suppress non-equality
	comparison transformations.  Delete disabled code.

2005-08-25  Richard Earnshaw  <richard.earnshaw@arm.com>

	* arm.c (arm_const_double_inline_cost): Handle any constant by
	using gen_lowpart and gen_highpart_mode.
	(note_invalid_constants): All constants in an RTX with a constraint
	that permits memory are now pushed to the constant pool.
	(output_move_double): Delete code to handle reg to reg and
	constant to reg moves.
	(const_double_needs_minipool, output_mov_immediate): Delete.
	* arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
	CONST_INT and CONST_VECTOR.
	* arm.md (ANY64): New mode macro.
	(arm_movdi): Split reg-reg and const-reg moves.  Simplify constraints.
	(movdf_soft_insn): Split reg-reg and const-reg moves.
	(split patterns for 64-bit constant and register moves): New.
	* cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
	(cirrus_movdf_hard_insn): Likewise.
	* fpa.md (movdf_fpa): Likewise.
	* iwmmxt.md (iwmmxt_arm_movdi): Likewise.
	(movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
	constraints.
	(movv2si_internal_2): Likewise.
	* vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
	(movdf_vfp): Likewise.
	* arm-protos.h (output_mov_immediate): Delete prototype.

2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
	
	PR tree-optimization/23546
	* tree-ssa-loop-im.c (for_each_index): Handle INTEGER_CST
	and REAL_CST nodes.

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

	* config/darwin.c (gen_pic_offset): New.
	(machopic_indirect_data_reference,  machopic_legitimize_pic_address):
	Use it.

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

	* configure.ac (HAVE_LD_NO_DOT_SYMS): Set for powerpc-linux biarch.
	* configure: Regenerate.

2005-08-23  Andrew Pinski  <pinskia@physics.uc.edu>

	PR target/20799
	* config/darwin.c (machopic_select_section): Remove the hack to
	mark "::operator new" and "::operator delete" for coalescing
	even though they are not weak.

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

	PR middle-end/23517
	* fold-const.c (fold_convert): Use VIEW_CONVERT_EXPR to convert
	between vectors.
	* convert.c (convert_to_integer, convert_to_vector): Likewise.

2005-08-23  Jakub Jelinek  <jakub@redhat.com>

	* tree-pass.h (TDF_GRAPH): Define.
	* tree-dump.c (dump_options): Don't set TDF_GRAPH in "all".
	* passes.c (close_dump_file): Set TDF_GRAPH bit.
	(finish_optimization_passes): Only call finish_graph_dump_file
	if TDF_GRAPH is set.
	* tree-optimize.c (execute_one_pass): Don't call
	clean_graph_dump_file here.

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

	PR target/21571
	* config/rs6000/rs6000.c (rs6000_legitimate_small_data_p): Rename
	from legitimate_small_data_p, and make global.  Update use.
	Remove forward declaration.
	* config/rs6000/rs6000-protos.h (rs6000_legitimate_small_data_p):
	Declare.
	* config/rs6000/rs6000.md (movdf_hardfloat32): Allow small data mems.

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

	PR target/23070
	* config/rs6000/rs6000.c (function_arg): For ABI_V4 calls to
	stdarg functions, set/clear the fp marker even when no variable
	args are passed.
	* config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Describe
	-mprototype and -mno-prototype.

2005-08-22  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c/18715
	* c-common.c (c_do_switch_warnings): Look for a node where the enum's
	value is inbetween the range if we did not find an exact match.

2005-08-21  Jakub Jelinek  <jakub@redhat.com>

	* simplify-rtx.c (simplify_immed_subreg) <case CONST_DOUBLE>: Only clear
	up to elem_bitsize bits, not max_bitsize.

2005-08-20  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/20624
	* gimple-low.c (block_may_fallthru): Handle CLEANUP_POINT_EXPR
	by looking past it.

2005-08-19  Diego Novillo  <dnovillo@redhat.com>

	* doc/invoke.texi: Fix documentation for -ftree-dominator-opts.

2005-08-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard with
	HAVE_GAS_MAX_SKIP_P2ALIGN.
	(HAVE_AS_DWARF2_DEBUG_LINE): Remove.

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

	PR c/21562
	* cfgexpand.c (construct_init_block): Deal properly with the case
	of entry edge not pointing to very first basic block.

	* loop-iv.c (iv_number_of_iterations): Match the patch that was
	applied to mainline for the previous checkin.

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

	PR rtl-optimization/21254
	* loop-iv.c (iv_number_of_iterations): Simplify infiniteness
	assumptions for loops that otherwise do not roll.
	(find_simple_exit): Prefer # of iterations that is guaranteed
	not to be infinite.
	* loop-unroll.c (decide_peel_once_rolling,
	decide_peel_completely): Check whether the loop is infinite.

2005-08-16  Ian Lance Taylor  <ian@airs.com>

	PR c++/23337
	* gimplify.c (gimplify_init_ctor_eval): If we see an element of
	vector type, don't try to construct it element by element.  Add an
	assertion that we use a FIELD_DECL when building a COMPONENT_REF.

2005-07-20  Steve Ellcey  <sje@cup.hp.com>

	PR target/21841
	* doc/invoke.texi (-mgnu-ld): Update description.
	(-mhp-ld): Ditto.

2005-08-16  James E Wilson  <wilson@specifix.com>

	PR tree-optimization/21105
	* c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
	TREE_OVERFLOW check.

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

	PR rtl-optimization/23299
	Backport from mainline
	2005-03-16 Dale Johannesen  <dalej@apple.com>
	* rtlanal.c (find_first_parameter_load):  Rewrite to
	return actual first param load or the call if none,
	instead of first in block, when not all loads exist.

2005-08-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/23369
	* fold-const.c (build_range_check): Disable optimization for function
	pointer expressions on targets that require function pointer
	canonicalization.

2005-08-15  Ian Lance Taylor  <ian@airs.com>

	* tree.c (build_string): Mark tree CONSTANT and INVARIANT.

2005-08-14  Andreas Schwab  <schwab@suse.de>

	* doc/md.texi (Machine Constraints): Fix misplaced @end table.

2005-08-12  Richard Earnshaw  <richard.earnshaw@arm.com>

	PR target/23250
	* arm.c (arm_override_options): Use ARM_FLAG_INTERWORK, not
	MASK_INTERWORK.

2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md ("*movdf_31"): Fix copy-and-paste bug in
	previous change.

2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (s390_extract_part, s390_single_part):
	Type cast added.
	(s390_const_ok_for_constraint_p): Added SImode to the N constraint.
	(s390_output_mi_thunk): Don't use lg on 31 bit.
	* config/s390/s390.md ("*movdi_31", "*movdf_31"): Added lmy and stmy.
	("*llgt_sisi" and splitter): Replaced TARGET_64BIT with TARGET_ZARCH.

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

	PR middle-end/23312
	* gimplify.c (gimplify_one_sizepos): Check for INTEGER_TYPE
	before using TYPE_IS_SIZETYPE.

2005-08-11  Richard Earnshaw  <richard.earnshaw@arm.com>

	PR target/23250
	* arm.c (arm_override_options): If the user has selected callee-super-
	interworking, then enable normal interworking.

2005-08-10  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>

	PR 23309
	* config/m32r/m32r.c (m32r_reload_lr): Fix off by one error when
	deciding which instruction sequence to use.

2005-08-09  Bernd Schmidt  <bernd.schmidt@analog.com>

	Mostly from Jie Zhang (jie.zhang@analog.com)
	* config.gcc: Add bfin-uclinux.
	* config/bfin/uclinux.h: New file.
	* config/bfin/bfin-modes.def: Update FSF address.
	* config/bfin/bfin-protos.h: Likewise.
	* config/bfin/bfin.md: Likewise.
	* config/bfin/bfin.opt: Likewise.
	* config/bfin/crti.s: Likewise.
	* config/bfin/crtn.s: Likewise.
	* config/bfin/lib1funcs.asm: Likewise.
	* config/bfin/predicates.md: Likewise.
	* config/bfin/bfin.c: Likewise.
	(bfin_return_in_memory): Update to match Visual DSP compiler.
	* config/bfin/bfin.h: Update FSF address.
	(ASM_OUTPUT_ALIGN): Write alignment in bytes, not log thereof.
	* config/bfin/elf.h (NO_IMPLICIT_EXTERN_C): Define.

2005-08-08  Richard Henderson  <rth@redhat.com>

	PR 22439
	* gimplify.c (gimplify_one_sizepos): Preserve the original type.

2005-08-08  Josh Conner  <jconner@apple.com>

	PR rtl-optimization/23241
	* combine.c (simplify_comparison): Fix error in determining
	whether to lift a subreg from comparison.

2005-08-08  Richard Henderson  <rth@redhat.com>

	PR 21894
	* tree-nested.c (convert_local_reference): Save and restore val_only
	around component_ref and friends.  Clear walk_subtrees by default.

2005-08-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Fix loop upper bound.

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

	PR 21728
	* tree-cfg.c (remove_bb): Transmute DECL_NONLOCAL labels into
	FORCED_LABEL labels.

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

	PR 21529
	* params.def (PARAM_SRA_MAX_STRUCTURE_COUNT): New.
	* params.h (SRA_MAX_STRUCTURE_COUNT): New.
	* tree-sra.c (decide_block_copy): Use it.  Disable element copy
	if we'd have to instantiate too many members.

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

	PR 21291
	* tree-outof-ssa.c (coalesce_asm_operands): New.
	(coalesce_ssa_name): Use it.  Split out ...
	(coalesce_phi_operands, coalesce_result_decls): ... these.

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

	* doc/install.texi (Binaries): Remove broken link to
	Sinix/Reliant Unix binaries.

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

	* pa.c (function_value): Handle small aggregates on 32-bit targets.
	(function_arg): Pass small aggregates in general registers on 32-bit
	targets.
	* som.h (MEMBER_TYPE_FORCES_BLK): Delete define.

2005-08-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR tree-optimization/19899
	* Makefile.in (tree-scalar-evolution.o): Add real.h.
	* tree-scalar-evolution.c: Include real.h.
	(add_to_evolution): Build constant -1 of correct type.

2005-08-03  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Specific): Adjust link to openavr.org.
	(Specific): Remove broken reference to GCC 2.8.1 for OS/2.
	(Binaries): Adjust HP-UX Porting Center link.
	(Binaries): Adjust Free Software Foundation ordering link.

2005-08-02  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (tree_expr_nonnegative_p): frexp(x, &e) is
	positive if its first argument is positive.

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

	PR 23192
	* tree-ssa-alias.c (add_pointed_to_var): If VALUE is of the
	form &(*PTR), take points-to information from PTR.
	Give up by marking PTR as pointing anywhere if VALUE is
	not recognized.

2005-08-01  Ian Lance Taylor  <ian@airs.com>

	* config/host-linux.c (linux_gt_pch_get_address): Add new name
	randomize_va_space for virtual address randomization control.

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

	PR c/22311
	* c-typeck.c (build_binary_op): Use common_type wrapper on
	shortened types.
	(common_type): Update comment.

2005-07-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/21723
	* pa.md: Remove fcpy alternative from movhi and movqi patterns.
	* pa32-regs.h (HARD_REGNO_NREGS): Return two floating point registers
	for complex modes when generating code for PA 1.0.
	(VALID_FP_MODE_P): New macro.
	(HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
	sets for all general and floating point modes.  Align wide floating
	point modes to even register boundaries to comply with architectural
	requirements.
	(CLASS_MAX_NREGS): Update to align with change to HARD_REGNO_NREGS.
	* pa64-regs.h (HARD_REGNO_NREGS): Update comment and formatting.
	(VALID_FP_MODE_P): New macro.
	(HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
	sets for all general and floating point modes.  Align wide floating
	point modes to even register boundaries to comply with architectural
	requirements.

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

	* config/rs6000/sysv4.h (TARGET_ASM_EXCEPTION_SECTION): Delete.

2005-07-28  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/22619
	* cfgcleanup.c (try_forward_edges): Watch out for end of
	insn chain.

2005-07-28  James E Wilson  <wilson@specifixinc.com>

	PR c/23106
	* doc/invoke.texi (Wstrict-aliasing=2): Fix misleading wording.

2005-07-28  Gerald Pfeifer  <gerald@pfeifer.com>
 
 	* doc/install.texi (Configuration): Update Valgrind homepage.

2005-07-28  Richard Henderson  <rth@redhat.com>

	PR middle-end/21362
	* cfgrtl.c (rtl_merge_blocks): Call maybe_remove_eh_handler on
	labels we want to delete.
	(cfg_layout_merge_blocks): Likewise.

2005-07-28  Richard Henderson  <rth@redhat.com>

	PR target/17692
	* config/i386/i386.c (ix86_split_sse_movcc): Emit DELETED note
	when expanding to nothing.

2005-07-28  Steven Bosscher  <stevenb@suse.de>

	PR debug/20161
	* passes.c (rest_of_decl_compilation): If decl is a type and
	we have encountered errors, don't emit debug information.

2005-07-27  Bjoern Haase  <bjoern.m.haase@web.de>

	PR target/19885
	* config/avr/avr.c (TARGET_ASM_ALIGNED_SI_OP): Add.
	(TARGET_ASM_UNALIGNED_HI_OP): Add.
	(TARGET_ASM_UNALIGNED_SI_OP): Add.

2005-07-26  Diego Novillo  <dnovillo@redhat.com>

	PR 22591
	* tree-ssa-alias.c (may_alias_p): Remove shortcut that tests
	whether a pointer of type T * may point to objects of type T *.

2005-07-26  Bernardo Innocenti  <bernie@develer.com>

	Backport from mainline:
	2005-07-12  Peter Barada  <peter@the-baradas.com>
	PR middle-end/16719
	PR middle-end/18421
	* config/m68k/m68k.h (HARD_REGNO_MODE_OK): Disallow bytes
	in address registers.
	* config/m68k/m68k.c (hard_regno_mode_ok): Likewise.
	* config/m68k/m68k.md: Replace 's' with 'i' in 4th
	alternative of addsi3_5200.

2005-07-25  Manfred Hollstein  <mh@suse.com>

	* calls.c (store_one_arg): Fix unsigned comparison warning.

2005-07-25  Jakub Jelinek  <jakub@redhat.com>

	* calls.c (store_one_arg): Check for sibling call MEM arguments
	from already clobbered incoming argument area.

2005-07-23  Mark Mitchell  <mark@codesourcery.com>

	* dwarf2out.c (gen_variable_die): Treat un-emitted COMDAT
	variables as declarations, rather than definitions.

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

	PR debug/21828
	* toplev.c (check_global_declarations): Do not mark undefined
	variables as DECL_IGNORED_P.
	* varasm.c (first_global_object_name): GTY it.
	(weak_global_object_name): Likewise.
	(notice_global_symbol): Use ggc_strdup, not xstrdup, when creating
	a string to go into {weak,first}_global_object_name.

2005-07-21  Uros Bizjak  <uros@kss-loka.si>

	PR target/21149
	* config/i386/i386.md (sse_movhlps): Fix vec_select values.

2005-07-21  Uros Bizjak  <uros@kss-loka.si>

	PR target/22576
	* config/i386/i386.md (cmpxf): Change operand constraints
	to "nonmemory_operand".

2005-07-21  Richard Sandiford  <richard@codesourcery.com>

	PR rtl-optimization/22167
	* gcse.c (hoist_code): Fix hoist_exprs[] check.

2005-07-20  Gerald Pfeifer  <gerald@pfeifer.com>

	* config.gcc: Add support for *-*-freebsd7, *-*-freebsd8,
	and *-*-freebsd9.
	* config/freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): Ditto.
	
2005-07-20  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c: Include "langhooks.h".
	(def_builtin): Go through lang_hooks to call builtin_function.

	* config/bfin/bfin-protos.h (bfin_longcall_p): Declare.
	* config/bfin/predicates.md (symbol_ref_operand): New.
	(call_insn_operand): Delete.  All callers changed to use
	register_no_elim_operand.
	* config/bfin/bfin.c (init_cumulative_args): Initialize the new
	call_cookie field.
	(function_arg): Use it to generate the call's operand 2.
	(bfin_longcall_p): New function.
	(bfin_expand_call): Extra arg "cookie".  All callers and declaration
	changed.  Emit extra USE in the pattern.  Use bfin_longcall_p to
	determine if the address needs to be in a REG.
	(bfin_handle_longcall_attribute): New function.
	(bfin_attribute_table): Add "longcall" and "shortcall".
	* config/bfin/bfin.h (CALL_NORMAL, CALL_LONG, CALL_SHORT): New macros.
	(TARGET_LONG_CALLS, MASK_LONG_CALLS): New macros.
	(TARGET_OPTIONS): Add -mlong-calls, -mno-long-calls.
	(CUMULATIVE_ARGS): New member call_cookie.
	(PREDICATE_CODES): Add symbol_ref_operand.
	* config/bfin/bfin.md (call, call_value, sibcall, sibcall_value): Add
	extra USE to the pattern.
	(call_symbol, sibcall_symbol, call_value_symbol, sibcall_value_symbol):
	New patterns, split off call_insn, sibcall_insn, call_value_insn and
	sibcall_value_insn; now the new patterns handle direct calls and the
	old ones indirect calls.
	* doc/extend.texi: Mention Blackfin in longcall/shortcall docs.
	* doc/invoke.texi (Blackfin Options): Add -mlong-call, -mno-long-call.

2005-07-19  Richard Henderson  <rth@redhat.com>

	PR tree-opt/22278
	* gimplify.c (gimplify_expr): Use main variant type for the temp
	destination for a discarded volatile read.
	* tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't elide
	casts between non-void types that change volatility.

2005-07-19  Steve Ellcey  <sje@cup.hp.com>

	Backport from mainline.
	PR target/21721
	* config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.

2005-07-18  Ian Lance Taylor  <ian@airs.com>

	PR middle-end/22057
	* tree-cfg.c (cleanup_tree_cfg): Only remove forwarder blocks when
	optimizing.

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

	* doc/install.texi (*-*-solaris2*): Document recommended version
	of GNU binutils and mention GNU linker problem on Solaris 10.

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

	PR c/22421
	* c-decl.c (c_build_bitfield_integer_type): New function.
	(finish_struct): Call it.
	* c-pretty-print.c (pp_c_type_specifier): Handle bit-field types.

2005-07-13  Jeff Law  <law@redhat.com>

	* fold-const.c (fold): When comparing two simple ADDR_EXPR
	expressions, test their _DECL operands for pointer equality rather
	than using operand_equal_p.

2005-06-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	PR middle-end/20593
	* varasm.c (compute_reloc_for_constant): Treat VIEW_CONVER_EXPR
	the same as the other cast operands.
	(output_addressed_constants): Likewise.

2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/22105
	* tree-ssa-loop-im.c (for_each_index): Handle COMPLEX_CST.

2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>

	PR bootstrap/21704
	* host-linux.h: Include limits.h.

2005-07-12  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.md (define_attr "type"): Add "sync".
	(define_insn_reservation "alu"): Likewise.
	(csync, ssync): Now of type sync.
	* config/bfin/bfin.h (MASK_CSYNC, TARGET_CSYNC): Removed.
	(MASK_CSYNC_ANOMALY, MASK_SPECLD_ANOMALY, TARGET_CSYNC_ANOMALY,
	TARGET_SPECLD_ANOMALY): New.
	* config/bfin/bfin.c: Include "insn-codes.h".
	(bfin_reorg): Extend to handle the CSYNC anomaly as well.
	* doc/invoke.texi: Document -mcsync-anomaly, -mspecld-anomaly.

	* config/bfin/bfin.md (UNSPEC_VOLATILE_CSYNC, UNSPEC_VOLATILE_SSYNC):
	New constants.
	(csync, ssync): New insn patterns.
	* config/bfin/bfin.c (bfin_init_builtins, bfin_expand_builtin):
	New functions.
	(enum bfin_builtins): New.
	(def_builtin): New macro.
	(TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
	* doc/extend.texi (Blackfin Built-in Functions): New section.

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

	Backport from mainline:
	2005-06-15  Aldy Hernandez  <aldyh@redhat.com>

	* c-common.h (same_scalar_type_ignoring_signedness): Protoize.

	* c-common.c (same_scalar_type_ignoring_signedness): New.

	* c-typeck.c (build_binary_op): Check compatability of vector
	types.  Move error report after switch.
	Do not clobber code[01] on *_DIV_EXPR case.

	* testsuite/gcc.dg/simd-1.c: Update error messages.
	* testsuite/gcc.dg/simd-1b.c: Re-enable tests.  Update error
	messages.
	* testsuite/gcc.dg/simd-2.c: Update error messages.
	* testsuite/gcc.dg/simd-4.c: New.

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

	* config/i386/i386.c (output_set_got): Don't omit OFFSET FLAT:
	in Intel syntax add %reg, OFFSET FLAT:_GLOBAL_OFFSET_TABLE_+(.-.Lx).

	Backport from the mainline:
	2005-06-26  Jakub Jelinek  <jakub@redhat.com>
	PR middle-end/22028
	* gimplify.c (gimplify_type_sizes): Check for type == error_mark_node
	earlier in the function.

	2005-06-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
	PR debug/21946
	* dwarf2out.c (add_loc_descr_op_piece): Move to the
	DWARF2_DEBUGGING_INFO section.

	2005-06-07  Jakub Jelinek  <jakub@redhat.com>
	PR debug/21946
	* dwarf2out.c (add_loc_descr_op_piece): New function.
	(multiple_reg_loc_descriptor, concat_loc_descriptor,
	loc_descriptor): Use it.
	* var-tracking.c: Include regs.h and expr.h.
	(emit_note_insn_var_location): Skip over pieces where offset
	is smaller than previous offset plus previous piece mode size.
	Optimize adjacent hard registers or memory locations.
	* Makefile.in (var-tracking.o): Depend on $(REGS_H) and $(EXPR_H).

	2005-06-06  Jakub Jelinek  <jakub@redhat.com>
	* tree-chrec.c (reset_evolution_in_loop): Use build3 instead of
	build2.

2005-07-08 Geoffrey Keating  <geoffk@apple.com>

	* tree-inline.c (expand_call_inline): Prevent 'may reach end'
	warning in system headers.

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

	Backport from mainline:

	2005-06-09  Aldy Hernandez  <aldyh@redhat.com>
	PR 17961
	* config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Remove.
	* config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Remove vector check.
	* testsuite/gcc.dg/simd-3.c: New.

2005-07-08  David Edelsohn  <edelsohn@gnu.org>

	Backport from mainline:
	2005-06-18  Roger Sayle  <roger@eyesopen.com>
	PR target/22083
	* config/rs6000/aix51.h (TARGET_C99_FUNCTIONS): Remove definition.

2005-07-08  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Specific): Do not specify the concrete
	versions of GCC provided by Cygwin.  Simplify the part on
	building on Cygwin.

2005-07-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR c/21911
	* c-common.c (check_function_sentinel): Pass in named argument
	list, skip over named arguments before looking for a sentinel.
	(check_function_arguments): Pass in named argument list.
	* c-common.h (check_function_arguments): Likewise.
	* c-typeck.c (build_function_call): Likewise.

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

	PR c/22308
	* c-decl.c (finish_struct): Also copy C_TYPE_FIELDS_READONLY,
	C_TYPE_FIELDS_VOLATILE and C_TYPE_VARIABLE_SIZE to type variants.

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

	PR c/22013
	PR c/22098
	* langhooks.h (struct lang_hooks): Add expr_to_decl.
	* langhooks.c (lhd_expr_to_decl): New.
	* langhooks-def.h (lhd_expr_to_decl, LANG_HOOKS_EXPR_TO_DECL):
	New.
	(LANG_HOOKS_INITIALIZER): Update.
	* tree.c (recompute_tree_invarant_for_addr_expr): Call
	expr_to_decl langhook.
	* c-tree.h (c_expr_to_decl): Declare.
	* c-typeck.c (c_expr_to_decl): New.
	(build_unary_op): Do not handle ADDR_EXPR of COMPOUND_LITERAL_EXPR
	specially.
	* c-objc-common.h (LANG_HOOKS_EXPR_TO_DECL): Define.

2005-07-07  Mark Mitchell  <mark@codesourcery.com>

	* version.c (version_string): Set to 4.0.2, in prerelease format.
	* doc/include/gcc-common.texi (version): Set to 4.0.2.
	
2005-07-07  Release Manager

	* GCC 4.0.1 released.

2005-07-01  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (find_equivalent_equality_comparison): Do not
	a eliminate type conversion which feeds an equality comparison
	if the original type or either operand in the comparison is a
	function pointer.

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

	PR target/22260
	* config/sparc/sparc.c (emit_and_preserve): Add 2nd register.
	Preserve the 2nd register too, if present.
	(sparc_output_mi_thunk) <PIC case>: Preserve the PIC register too.
	Adjust call to emit_and_preserve.

2005-06-24  Mark Mitchell  <mark@codesourcery.com>

	PR 22171
	* tree-ssa-operands (get_expr_operands): Check s_ann for NULL
	before use.

2005-06-23  Mark Mitchell  <mark@codesourcery.com>

	Backport:
	2005-06-13  Zdenek Dvorak  <dvorakz@suse.cz>
	PR middle-end/21985
	* fold-const.c (split_address_to_core_and_offset): Always return
	the address of the base object.

	PR 22000
	* tree-ssa-operands.c (get_expr_operands): Check the volatility of
	the FIELD_DECL and set s_ann->has_volatile_ops accordingly.

2005-06-20  Jan Beulich  <jbeulich@novell.com>

	* config/i386/netware-libgcc.def: Update copyright.
	* config/i386/netware-libgcc.exp (__divdc3, __divsc3, __divxc3,
	__muldc3, __mulsc3, __mulxc3, __powidf2, __powisf2, __powixf2): Add.
	* config/i386/netware.c (gen_stdcall_decoration,
	gen_fastcall_decoration): Merge into ...
	(gen_stdcall_or_fastcall_decoration): ... this. Adjust to match
	WinNT's changes.
	(gen_regparm_prefix): Adjust to match i386_nlm_encode_section_info.
	(i386_nlm_encode_section_info): Adjust to match WinNT's changes.
	* config/i386/t-nwld (SHLIB_LINK): Also create libgcc.imp alias of
	libgcc_s.imp. Use 'expr' rather than $(()) shell expressions.
	* gthr-nks.h (__gthread_objc_mutex_allocate): Kill another dubious
	use of NX_MUTEX_RECURSIVE.

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

	PR middle-end/21850
	* tree.c (get_unwidened): Stop at NOP_EXPR/CONVERT_EXPR that convert
	from vector types.

2005-06-14  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/22043
	* gimplify.c (gimplify_init_constructor): If num_type_elements < 0
	for a constant-sized object, set cleared as well.

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

	PR target/20301
	* config/sparc/sol2.h (ASM_GENERATE_INTERNAL_LABEL): Emit
	unsigned index numbers.

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

	PR tree-optimization/21171
	* tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
	record address uses if the reference is volatile.

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

	PR target/21889
	* config/sparc/sol2.h (ASM_OUTPUT_DWARF_DTPREL): Undefine.
	* config/sparc/sol2-gas.h (ASM_OUTPUT_DWARF_DTPREL): Redefine.

2005-06-08  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/19768
	* tree-ssa-dse.c: Revert accidental committed patch.

2005-06-07  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/21528
	* rtlanal.c (reg_overlap_mentioned_p) <MEM>: Handle 'E' formats.

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

	PR tree-optimization/21847
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): With
	-fnon-call-exceptions, also mark statements inherently
	necessary if they may throw.

2005-06-06  Jakub Jelinek  <jakub@redhat.com>

	* intl.h (G_): New macro.
	* rtl-error.c (error_for_asm, warning_for_asm): Use gmsgid
	instead of msgid for argument name.
	* tree-ssa.c (warn_uninit): Likewise.
	* config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
	* config/darwin-c.c (BAD): Likewise.
	* config/c4x/c4x-c.c (BAD): Likewise.
	* c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
	* c-errors.c (pedwarn_c99, pedwarn_c90): Likewise.
	* c-common.c (c_parse_error): Likewise.
	* diagnostic.c (diagnostic_set_info, verbatim, inform, warning,
	pedwarn, error, sorry, fatal_error, internal_error): Likewise.
	(fnotice): Use cmsgid instead of msgid for argument name.
	* gcov.c (fnotice): Likewise.
	* protoize.c (notice): Likewise.
	* final.c (output_operand_lossage): Likewise.
	* gcc.c (fatal, notice): Likewise.
	(error): Use gmsgid instead of msgid for argument name.
	* collect2.c (notice, fatal_perror, fatal): Use cmsgid instead
	of msgid for argument name.
	(error): Use gmsgid instead of msgid for argument name.
	* c-decl.c (locate_old_decl, implicit_decl_warning): Use G_()
	instead of N_().
	* c-typeck.c (readonly_error, convert_for_assignment): Likewise.
	* tree-inline.c (inline_forbidden_p_1): Likewise.
	* ABOUT-GCC-NLS: Require gettext 0.14.5 or later.  Mention the new
	conventions for marking translations.
	* doc/install.texi: Mention gettext 0.14.5 or later requirement.

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

	PR tree-optimization/20742
	* params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
	default value 20.
	* tree-chrec.c: Depend on params.h.  Replace build with buildN,
	and fold build with fold_buildN.
	(chrec_fold_plus_1): Fail with a chrec_don_know when the size of
	the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
	(tree_contains_chrecs): Compute an estimation of the size of the
	given expression.
	* tree-chrec.h (tree_contains_chrecs): Modify its declaration.
	(tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
	* tree-scalar-evolution.c (simple_iv): Ditto.
	* doc/invoke.texi (scev-max-expr-size): Documented.

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

	PR target/21888
	* config/alpha/alpha.c (alpha_align_insns): Don't insert nops
	until we've passed initial ldgp.

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

	* config/rs6000/aix52.h (ASM_CPU_SPEC): Add power5.

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

	PR c/21873
	* c-typeck.c (push_init_level): Don't pop levels without braces if
	implicit == 1.

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

	PR c/21879
	* c-decl.c (start_function): Restore label_context_stack_se and
	label_context_stack_vm  if returning with an error.

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

	* tree.c (build_common_builtin_nodes): Fix the return type on
	__builtin_memcmp.

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

	PR c/21536
	PR c/20760
	* gimplify.c (gimplify_decl_expr): Call gimplify_type_sizes
	on variable sizes types if a decl is a pointer to a VLA.
	(gimplify_type_sizes): Handle POINTER_TYPE and REFERENCE_TYPE.
	Call gimplify_type_sizes on aggregate fields.  Prevent infinite
	recursion.

	* config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss, _mm_set1_ps,
	_mm_set_ps, _mm_setr_ps): Add __extension__.
	* config/i386/emmintrin.h (_mm_set_sd, _mm_set1_pd, _mm_set_pd,
	_mm_setr_pd, _mm_setzero_pd, _mm_set_epi64x, _mm_set_epi64x,
	_mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128):
	Likewise.
	(_mm_clflush): Don't use return in void function.

	* config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128,
	_mm_castps_pd, _mm_castps_si128, _mm_castsi128_ps, _mm_castsi128_pd):
	Use __inline instead of inline.

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

	* configure.ac (HAVE_AS_JSRDIRECT_RELOCS): New.
	* config.in, configure: Rebuild.
	* config/alpha/alpha.c (print_operand): Add 'j'.
	* alpha.md (divmodsi_internal_er_1): Use it.
	(divmoddi_internal_er_1): Likewise.

2005-05-31  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/21817
	* tree-ssa-loop-im.c (for_each_index): Handle VECTOR_CST.

2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/20931
	PR middle-end/20946
	* fold-const.c (fold_checksum_tree): Copy types also if
	TYPE_CONTAINS_PLACEHOLDER_INTERNAL is set.
	Don't call fold_checksum_tree for TREE_LIST's TREE_CHAIN
	first.
	Tail recurse TREE_LIST's TREE_CHAIN.

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

	* doc/install.texi (sparc-sun-solaris2*): Update note
	about Sun bug 4910101.
	(sparc-sun-solaris2.7): Document bootstrap
	failure with Sun WorkShop 6 99/08/18 as.

2005-05-27  Richard Guenther  <rguenth@gcc.gnu.org>

	PR middle-end/21595
	* builtins.c (fold_builtin_constant_p): Handle
	&"string cst"[0] as constant.

2005-05-26  Ulrich Weigand  <uweigand@de.ibm.com>

	Backport from mainline:
	2005-05-26  Ian Lance Taylor  <ian@airs.com>
	* reload1.c (verify_initial_elim_offsets): Add braces to avoid
	having a declaration after a statement.

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

	PR target/21716
	* reg-stack.c (swap_rtx_condition): Don't crash if %ax user was not
	found in the basic block and last insn in the basic block is not
	INSN_P.  Remove explicit unspec numbers that are no longer valid
	from comments.

2005-05-26  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config/rs6000/t-rtems: Remove roe multilib variant.

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

	PR middle-end/21492
	* cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for
	src2 if src2 has been split.

2005-05-25  Ulrich Weigand  <uweigand@de.ibm.com>

	* reload1.c (verify_initial_elim_offsets): Return boolean status
	instead of aborting.
	(reload): Adapt verify_initial_elim_offsets call site.  Restart
	main loop if some initial elimination offsets changed.

2005-05-24  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>

	* config/m32r/m32r.c (m32r_expand_block_move):  Return 0 if
	nothing was done.
	* config/m32r/m32r.md (movmemsi):  If m32r_expand_block_move did
	nothing then FAIL.
	* config/m32r/m32r/m32r-protos.h  (m32r_expand_block_move): Update
	prototype.

2005-05-23  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (s390_optimize_prologue): Don't replace an insn
	saving less registers than the replacement.

2005-05-23  Jan Beulich  <jbeulich@novell.com>

	* gthr-posix.h (__gthread_recursive_mutex_init_function): Add
	missing return statement.

2005-05-21  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/21331
	PR tree-opt/21293
	Backport from the mainline:
	2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
	* tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
	integer_zerop.
	* tree-gimple.c (is_gimple_min_invariant): Consider overflowed
	constants invariant.

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

	PR target/21390
	* config/alpha/alpha.c (alpha_emit_conditional_branch): Move
	TFmode code swapping ...
	(alpha_emit_xfloating_compare): ... here.
	(alpha_emit_setcc): Update to match.
	(alpha_lookup_xfloating_lib_func): Assert TARGET_HAS_XFLOATING_LIBS.

2005-05-19  Jie Zhang  <jie.zhang@analog.com>
	    Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (branch_dest): Add comment why it's
	necessary.
	* config/bfin/bfin.md (attr "length" default): Change the offset of
	forward conditional branch of length 4 from 4096 to 4092.

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

	PR target/21657
	* config/ia64/ia64.c (ia64_expand_tls_address): Remove extra
	memory indirection in local-dynamic case.

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

	PR target/21632
	* config/ia64/ia64.c (ia64_extra_constraint) <'T'>: Use
	small_addr_symbolic_operand.

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

	* config/sparc/sol2.h (TARGET_DEFAULT): Add back MASK_APP_REGS.
	* config/sparc/sol2-64.h (TARGET_DEFAULT): Likewise.
	* config/sparc/sp-elf.h (TARGET_DEFAULT): Delete.
	* doc/invoke.texi (SPARC options): Document that -mapp-regs is
	the default on Solaris too.

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

	PR tree-optimization/21610
	* c-typeck.c (decl_constant_value_for_broken_optimization): If not
	returning DECL, call unshare_expr.

	* varasm.c (struct constant_descriptor_tree): Add hash field.
	(const_desc_hash): Just return hash field.
	(const_desc_eq): If hash values are different, return 0 immediately.
	(output_constant_def): Compute hash field of temporary key, use
	htab_find_slot_with_hash instead of htab_find_slot.  Set hash in
	newly built constant descriptor.
	(lookup_constant_def): Compute hash field of temporary key, use
	htab_find_with_hash instead of htab_find.

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

	PR target/21556
	* config/ia64/ia64.md (load_dtpmod, load_ltoff_dtpmod, load_dtprel,
	load_dtprel64, load_dtprel22, load_dtprel_gd, load_ltoff_dtprel,
	add_dtprel, add_dtprel14, add_dtprel22, load_tprel, load_tprel64,
	load_tprel22, load_tprel_ie, load_ltoff_tprel, add_tprel, add_tprel14,
	add_tprel22): Remove mode from symbolic operand.

2005-05-15  Mark Mitchell  <mark@codesourcery.com>

	Backport:
	2005-05-09  Mark Mitchell  <mark@codesourcery.com>
	PR 18655
	* dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
	before outputting DWARF_FRAME_RETURN_COLUMN.

2005-05-15  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/21551
	* config/ia64/ia64.c (ia64_expand_move): Don't add addend twice.

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

	PR middle-end/21237
	* dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
	to NE_EXPR case.

2005-05-13  Richard Guenther  <rguenth@gcc.gnu.org>

	Revert:
	2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
	* fold-const.c (fold_indirect_ref_1): Avoid removing
	NOP_EXPRs with type qualifiers like const.

2005-05-12  Daniel Berlin  <dberlin@dberlin.org>
	
	Fix PR tree-optimization/21532
	* tree-ssa-pre.c (create_expression_by_pieces): stmt
	needs to go onto the inserted_exprs list.

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

	PR target/21412
	* config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
	(ia64_cannot_force_const_mem): New.
	(tls_symbolic_operand_type): New.
	(ia64_legitimate_constant_p): New.
	(ia64_expand_load_address): Return true on success.  Improve
	checks for when we should not split.
	(ia64_expand_tls_address): New addend operand.  Distribute it
	as appropriate to the tls_kind.  Delay referencing gp.
	(ia64_expand_move): Split symbolic addend as necessary.  Handle
	tls symbols with addends.
	* config/ia64/ia64-protos.h: Update.
	* config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
	p0, f0, f1, and r13.
	(LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
	* config/ia64/ia64.md (UNSPEC_DTPMOD): New.
	(symbolic_operand splitter): Pass everything through
	ia64_expand_load_address and FAIL or DONE as appropriate.
	(load_fptr): Only accept after reload.
	(load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
	load_symptr_low, load_ltoff_dtpmod,
	(load_dtpmod): New.
	(load_dtprel): Only accept tls symbols.
	(load_dtprel64, load_dtprel22): Likewise.
	(load_tprel, load_tprel64, load_tprel22): Likewise.
	(load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
	(add_dtprel): Only accept tls symbols.  Canonicalize PLUS.
	(add_dtprel14, add_dtprel22): Likewise.
	(add_tprel, add_tprel14, add_tprel22): Likewise.
	* config/ia64/predicates.md (small_addr_symbolic_operand): New.
	(any_offset_symbol_operand, aligned_offset_symbol_operand): New.
	(got_symbolic_operand): Check CONST offsets.
	(tls_symbolic_operand, ld_tls_symbolic_operand): New.
	(ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
	(move_operand): Don't handle tls here.  Check CONST offsets.

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

	PR tree-optimization/21085
	* fold-const (fold): Don't change X % -C to X % C if C has
	overflowed.

2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>

	* fold-const.c (fold_indirect_ref_1): Avoid removing
	NOP_EXPRs with type qualifiers like const.

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

	PR c/21502
	* c-decl.c (finish_decl): Propagate the completed array type of
	a global variable into the binding.

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

	* config/sparc/sparc.c (mem_min_alignment): Do not rely
	on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.

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

	PR c/21342
	* c-decl.c (pushdecl): When there is a declaration in the current
	scope and the declarations are external linkage, check for
	compatibility with the type in the external scope and update the
	type in the external scope with the composite type information.
	Do not form a composite type of the new type and the visible type
	if they are incompatible.

2005-05-10  Michael Matz  <matz@suse.de>

	from trunk:
	2005-04-28  James E Wilson  <wilson@specifixinc.com>

	* config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
	(ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.

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

	PR other/21052
	* doc/extend.texi (Type Attributes): Correct example syntax.

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

	PR c/21160
	* doc/invoke.texi (-Wuninitialized): Update documentation.

2005-05-09  Richard Earnshaw  <rearnsha@arm.com>

	PR target/21397
	* arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
	(arm_override_options): Use them instead of manifest constants.  Don't
	allow -march to override the -mtune setting.

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

	* config/ia64/ia64.c (ia64_override_options): Don't set
	ia64_flag_var_tracking and clear flag_var_tracking here...
	(ia64_file_start): ... but here.

2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.c (m68hc11_z_replacement): Use emit_insn_after
	when adding the save Z instruction so that it is part of the good BB.
	(reg_or_some_mem_operand): Do not allow the 68HC12 address indirect
	addressing mode as it is not supported by bset and bclr.
	(m68hc11_gen_movhi): Fix invalid generation of indexed indirect
	addressing with movw.
	(m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
	68HC12.
	* config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
	for 68HC11.
	("*movhi_68hc12"): Handle movhi_const0.
	("*subhi3", "subqi3"): Use general_operand for operand 1.
	("*subhi3_zext"): Likewise.

2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>

	PR target/19051
	* config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for operand
	1 and fix constraints.
	("mulqihi3"): Use general_operand for operand 2.

2005-05-08  Richard Sandiford  <rsandifo@redhat.com>

	PR target/21416
	* config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
	comparisons.
	* config/mips/mips.md (swapped_fcond): New code macro and attribute.
	(sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
	including sunge_<mode> and sungt_<mode>.

2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>

	PR target/16925
	* config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
	64-bit constants on 64-bit hosts.
	(m68hc11_split_logical): Simplify.
	(m68hc11_split_move): Likewise.

2005-05-07  Anthony Green  <green@redhat.com>

	PR bootstrap/21403
	* configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
	x$STMP_FIXPROTO test.
	* configure: Rebuilt.

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

	* config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
	inappropriate feature test macros if flag_iso.

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

	PR target/21412
	* config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
	with constant offsets.

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

	PR rtl-optimization/21330
	* loop-unswitch.c (may_unswitch_on): Set *cinsn only when
	returning non-NULL.
	(unswitch_single_loop): Clear cinsn when retrying.

	PR c++/20961
	* varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
	if both NEWDECL and OLDDECL are already weak.

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

	PR tree-optimization/21380
	* tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
	thread through a block with no preds.

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

	* config.gcc (hppa1.1-*-rtems*): Obsolete.

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

	* config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
	Exclude roe/603e multilib variants.

2005-05-04  Denis Chertykov  <denisc@overta.ru>

	PR target/21284
	* config/avr/avr.c (avr_output_addr_vec_elt): Use special section
	for output.

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

	* doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.

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

	PR middle-end/21265
	* expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
	(clear_storage): Add argument.
	* expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
	Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
	tailcall.
	(emit_block_move): Handle BLOCK_OP_TAILCALL method.
	(clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
	(store_expr, store_constructor): Adjust callers.
	* builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
	to emit_block_move if CALL_EXPR_TAILCALL (exp).
	(expand_builtin_memmove): Add ORIG_EXP argument, copy
	CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
	(expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
	with EXP.  Pass EXP to expand_builtin_memmove.
	(expand_builtin_memset): Add ORIG_EXP argument, pass
	BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
	(expand_builtin_bzero): Replace ARGLIST argument with EXP.
	Pass EXP to expand_builtin_memset.
	(expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
	the new CALL_EXPR.
	(expand_builtin_strncmp): Likewise.
	(expand_builtin_printf): Replace ARGLIST argument with EXP.
	Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
	(expand_builtin_fprintf): Likewise.
	(expand_builtin): Adjust calls to
	expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.

	* config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
	item in V4SF mode.

	PR rtl-optimization/21239
	* combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.

	PR target/21297
	* config/i386/i386.c (legitimize_address): When canonicalizing
	ASHIFT into MULT, multiply by 1 << shift_count instead of
	1 << log2 (shift_count).

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

	PR target/16888
	* config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
	for unavailable registers.

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

	* doc/passes.texi: Document vectorization pass.

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

	PR c/15698
	* c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
	* c-decl.c (current_function_prototype_built_in,
	current_function_prototype_arg_types): New.
	(merge_decls): Keep source location of prototype followed by
	nonprototype declaration.  Update C_DECL_BUILTIN_PROTOTYPE.
	(builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
	(start_function): Always set current_function_prototype_locus,
	current_function_prototype_built_in and
	current_function_prototype_arg_types.  Check for external
	prototype whether or not visible for external function and set
	current_function_prototype_arg_types accordingly.
	(store_parm_decls_oldstyle): Use
	current_function_prototype_arg_types for checking old-style
	definition against prototype.  Give warnings only if
	current_function_prototype_built_in).

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

	PR 19985
	* gcov-io.h: Declare gcov external functions hidden.

2005-05-01  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Specific): Omit dots in the @anchors names
	for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
	Omit underscores for x86_64-*-* and the "all ELF targets" entry.

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

	PR bootstrap/20633
	* config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).

2005-05-01  Michael Matz  <matz@suse.de>

	PR c++/19542
	* c-common.c (c_common_nodes_and_builtins): Create global null_node.
	(warn_strict_null_sentinel): Define.
	(check_function_sentinel): Check for null_node as valid sentinel too.
	* c-common.h (c_tree_index): Added CTI_NULL.
	(null_node) Define global_tree[CTI_NULL].
	(warn_strict_null_sentinel): Declare.
	* c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
	* c.opt: (Wstrict-null-sentinel): New C++ option.
	* doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.

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

	* config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
	thumb mode.
	* config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
	* config/arm/ieee754-sf.S: Ditto.
	* config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
	(FUNC_ALIAS): Use .thumb_set for thumb routines.

2005-04-29  Michael Matz  <matz@suse.de>

	* config/i386/i386.md (movmemsi): Also active when
	TARGET_INLINE_ALL_STRINGOPS.

2005-04-29  Michael Matz  <matz@suse.de>

	PR rtl-optimization/21144
	* postreload.c (reload_cse_move2add): Check for VOIDmode.

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

	PR target/21098
	* config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
	* config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.

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

	* doc/install.texi: Update -enable-languages info.  Correct path to
	html docs.

2005-04-19  Andrew Haley  <aph@redhat.com>
	
	PR java/21022
	* dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
	looking at a field's bitpos.

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

	* config.gcc: Obsolete c4x-* and tic4x-*.

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

	* c-typeck.c (build_compound_expr): Correct logic in last change.

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

	PR c/21159
	* c-typeck.c (build_compound_expr): Don't warn for left-hand side
	being a compound expression whose right-hand side is cast to void.

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

	PR c/21213
	* c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
	transparent union.

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

	PR c/20740
	* c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
	assertion failures, if __gcc_host_wide_int__ is not properly
	defined.
	(init_dynamic_diag_info): Give errors, not assertion failures, if
	location_t, tree or __gcc_host_wide_int__ are not properly
	defined.

2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
	gensupport.c, protoize.c, toplev.c: Replace calls to
	`unlock_stream' with `unlock_std_streams'.

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

	* doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.

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

	PR bootstrap/21215
	* doc/install.texi: Document correct assembler and linker to use
	on i?86-*-solaris2.10.

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

	Fix PR tree-optimization/21173
	
	* tree-ssa-pre.c (create_expression_by_pieces): Call unshare_expr
	on things we pass to force_gimple_operand.  Don't try to special
	case min_invariants.

2005-04-25  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin-modes.def: New file.
	* config/bfin/bfin-protos.h: New file.
	* config/bfin/bfin.c: New file.
	* config/bfin/bfin.h: New file.
	* config/bfin/bfin.md: New file.
	* config/bfin/crti.s: New file.
	* config/bfin/crtn.s: New file.
	* config/bfin/elf.h: New file.
	* config/bfin/lib1funcs.asm: New file.
	* config/bfin/predicates.md: New file.
	* config/bfin/t-bfin: New file.
	* config/bfin/t-bfin-elf: New file.
	* doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
	Document new attributes.
	(interrupt, interrupt_handler, saveall): Update documentation for
	these attributes.
	* doc/install.texi (Specific): Add entry for the Blackfin.
	* doc/invoke.texi (Blackfin Options): New section.
	* doc/md.texi (Blackfin family): New section to document constraints.
	* config.gcc: Add bfin*-* and bfin*-elf configurations.

2005-04-25  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config.gcc (avr-*-*): Remove redundant "case".

2005-04-25  Ralf Corsepius  <ralf.corsepius@rtems.org>

	PR target/17822
	* config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove.

2005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR/17092
	* configure.ac (gcc_UNLOCKED_FUNCS): New.
	(AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
	* system.h (putchar, getc, getchar, clearerr, feof, fileno,
	fflush, fgetc, fgets, ferror, fread): Redefine to the associated
	_unlocked function.
	(fwrite_unlocked): Fix prototype.
	
	* configure, config.in: Regenerate.

	* system.h (fopen, fdopen, freopen): Define these to the unlocked
	libiberty functions.

	* collect2.c (main): Unlock the stdio streams.
	* gcc.c (main): Likewise.
	* gcov-dump.c (main): Likewise.
	* gcov.c (main): Likewise.
	* gen-protos.c (main): Likewise.
	* gensupport.c (init_md_reader_args_cb): Likewise.
	* protoize.c (main): Likewise.
	* toplev.c (general_init): Likewise.

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

	PR rtl-opt/21163
	* simplify-rtx.c (simplify_binary_operation) <IOR>: Check
	for SCALAR_INT_MODE_P instead of not MODE_CC before returning
	constm1_rtx.
	<XOR, AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
	<UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
	<DIV, MOD>: Likewise.

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

	PR middle-end/20991
	* cgraph.h (cgraph_local_info): Add vtable_method field.
	* varasm.c (mark_decl_referenced): If cgraph_global_info_ready
	and node is vtable_method, finalized and not reachable, don't do
	anything.

	Revert:
	2005-04-18  Jakub Jelinek  <jakub@redhat.com>
	* 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-24  Ralf Corsepius  <ralf.corsepius@rtems.org>

	PR target/17824
	* config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove.

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

	PR target/21101
	* config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
	* config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
	Deny modes smaller than 4 bytes.
	* config/i386/i386-protos.h: Update.

2005-04-24  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
	Switch h8300-*-rtems* to ELF.

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

	* simplify-rtx.c (simplify_binary_operation): Fix second instance
	later in the same function.

	PR rtl-opt/21102
	* simplify-rtx.c (simplify_binary_operation): Fix mode check before
	performing some integral scalar simplifications.

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

	PR target/21100
	* config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.

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

	PR target/21099
	* config/i386/i386.c (ix86_split_to_parts): Use proper mode when
	simplifying CONST_VECTOR.

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

	PR c++/20805
	* dwarf2out.c (gen_variable_die): Don't emit a specification if this
	is another declaration.

2005-04-22  Michael Matz  <matz@suse.de>

	PR middle-end/20973
	* reload.c (push_reload, find_dummy_reload): Check for uninitialized
	pseudos.

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

	Backport from mainline.
	* config/rs6000/rs6000.c (rs6000_init_libfuncs): Set TFmode
	optabs to xlq names if TARGET_XL_COMPAT.

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

	PR c/12913
	* c-tree.h (struct c_label_list): Update comment.
	(struct c_label_context): Rename to struct c_label_context_se.
	(label_context_stack): Rename to label_context_stack_se.
	(C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
	c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
	c_end_vm_scope): New.
	(C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
	* c-decl.c (pop_scope): Call c_end_vm_scope.
	(pushdecl): Call c_begin_vm_scope for variably modified
	declarations.
	(define_label): Check for jumping into scope of identifier with
	variably modified type.  Push label on stack for those defined at
	current context of identifiers with variably modified type.
	(start_function): Create stack level for context of identifiers
	with variably modified type.
	(finish_function): Pop stack level for context of identifiers with
	variably modified type.
	* c-typeck.c (label_context_stack): Rename to
	label_context_stack_se.
	(label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
	(c_finish_goto_label): Check for jumping into scope of identifier
	with variably modified type.  Push label on stack for those jumped
	to from current context of identifiers with variably modified
	type.
	(struct c_switch): Add blocked_vm.
	(c_start_case): Initialize blocked_vm.
	(do_case): Check blocked_vm.
	(c_finish_case): Add comment.
	(c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
	variable label_context_stack.

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

	* varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
	(decl).

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

	* doc/invoke.texi (SPARC options): Document that -mapp-regs
	is turned off by default on Solaris.

2005-04-21  Mark Mitchell  <mark@codesourcery.com>

	* version.c (version_string): Restore prerelease information.
	* doc/include/gcc-common.texi (version): Set to 4.0.1.

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  David S. Miller  <davem@davemloft.net>

	PR target/20673
	* config/sparc/sparc.h (sparc_hard_reg_printed): Mark as GTY(()).

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.
