2005-05-19 Release Manager * GCC 3.4.4 released. 2005-05-11 Mark Mitchell Revert: 2005-05-10 H.J. Lu Backport from mainline 2004-02-12 Richard Kenner * function.c (fixup_var_refs): Save volatile_ok and set to 1. * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok. 2005-05-09 Grigory Tolstolytkin Backport from mainline 2004-02-12 Richard Kenner * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill previous MEM_VOLATILE in REF. 2005-05-11 Ben Elliston * dwarf2out.c: Revert my 2005-05-10 patch. 2005-05-10 H.J. Lu Backport from mainline 2004-02-12 Richard Kenner * function.c (fixup_var_refs): Save volatile_ok and set to 1. * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok. 2005-05-10 Jakub Jelinek * config/i386/i386.md (sse_mov?fcc* splitters): Add mode to IF_THEN_ELSE, remove mode from MATCH_OPERATOR. Fix a typo. 2005-05-09 Grigory Tolstolytkin Backport from mainline 2004-02-12 Richard Kenner * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill previous MEM_VOLATILE in REF. 2005-05-10 Ben Elliston PR debug/16676 * dwarf2out.c (dwarf2out_decl): Always set context_die to NULL, even when debug_info_level is DINFO_LEVEL_TERSE. 2005-05-08 Stephane Carrez * 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 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 PR target/21416 * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT comparisons. * config/mips/mips.md (sungt_df, sunge_df, sungt_sf, sunge_sf): New patterns. 2005-05-08 Stephane Carrez 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-06 Bruce Korb Joseph S. Myers * fixinc/inclhack.def: Correct backslashes * fixinc/fixincl.x: regen 2005-05-02 Janis Johnson PR 19985 * gcov-io.h: Declare gcov external functions hidden. 2005-05-01 Gerald Pfeifer * config/freebsd-spec.h (FBSD_CPP_SPEC): Revert last change. 2005-05-01 Gerald Pfeifer Backport from mainline * 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-05-01 Eric Botcazou PR bootstrap/20633 * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch). 2005-05-01 Gerald Pfeifer * doc/install.texi (Specific): Omit dots in the @anchors names for i?86-*-sco3.2v5* and sparc-sun-solaris2.7. Omit underscores for x86_64-*-* and the "all ELF targets" entry. 2005-05-01 Joseph S. Myers PR c/21213 * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of transparent union. 2005-05-01 Joseph S. Myers PR c/20740 * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not aborts, if __gcc_host_wide_int__ is not properly defined. (init_dynamic_diag_info): Give errors, not aborts, if location_t, tree or __gcc_host_wide_int__ are not properly defined. 2005-05-01 Joseph S. Myers PR c/11459 PR c/18502 * gcc.c (cpp_unique_options): Remove %{trigraphs}. (cpp_options, cc1_options): Change %{std*} %{ansi} to %{std*&ansi&trigraphs}. 2005-04-29 Alan Modra 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-25 Ralf Corsepius * config.gcc (avr-*-*): Remove redundant "case". 2005-04-25 Ralf Corsepius PR target/17822 * config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove. 2005-04-25 Ralf Corsepius PR target/17824 * config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove. 2005-04-22 David Edelsohn Backport from mainline. * config/rs6000/rs6000.c (rs6000_init_libfuncs): Set TFmode optabs to xlq names if TARGET_XL_COMPAT. 2005-04-22 Eric Botcazou * doc/invoke.texi (SPARC options): Document that -mapp-regs is turned off by default on Solaris. 2005-04-15 Dave Korn * gcc.c (default_compilers): Clarify obscure error message when reading from standard input. 2005-04-15 Eric Botcazou * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32. 2005-04-11 David Edelsohn Backport from mainline: * config/rs6000/aix52.h (atoll): Declare. 2005-04-08 Ulrich Weigand Backport from mainline: * config/s390/tpf.h (ASM_SPEC): Define. 2005-04-06 Dale Johannesen PR middle-end/19225 * calls.c (expand_call): Flush pending deferrals before throwing call. 2005-04-06 Eric Botcazou 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 James E. Wilson PR target/20670 * unwind-ia64.c (uw_intall_context): Add missing load of r27. 2005-04-04 Eric Botcazou * doc/invoke.texi (SPARC options): Document that -mlittle-endian is not supported on Linux either. 2005-03-25 Gabriel Dos Reis PR c++/18644 * doc/invoke.texi (-Wsynth): Don't document, as it now is void of semantics. 2005-03-31 Alan Modra 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 Alan Modra * 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 Alan Modra * doc/install.texi: Update binutils requirement for powerpc*-linux. 2005-03-25 John David Anglin 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-23 Uros Bizjak * simplify-rtx.c (simplify_unary_operation) : Add missing break in code that deals with logicals on floats. 2005-03-22 Uros Bizjak PR target/14981 Backport from mainline 2004-02-18 Jan Hubicka * simplify-rtx.c (simplify_unary_operation): Deal with logicals on floats. (simplify_binary_operation): Deal with logicals on floats. * i386.md (SSE fabs splitters): Emit new patterns. (SSE cmov splitters): Likewise. (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3 (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use subregs. (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill. (sse_anddf3, sse_nanddf3, sse_xordf3): Kill. 2005-03-20 Marek Michalkiewicz 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-19 Joseph S. Myers * c.opt (ansi, std=iso9899:1990, std=iso9899:1999, std=iso9899:199x): Correct descriptions. 2005-03-19 Andy Hutchinson PR target/18251 * config/avr/avr.md (movstrhi): Rewrite as RTL loop. (*movstrqi_insn): Delete. (*movstrhi): Delete. 2005-03-17 Richard Sandiford 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-17 Alan Modra * config/rs6000/linux-unwind.h: New file backported from gcc-4.0. * config/rs6000/linux.h: #include linux-unwind.h in place of all unwind support in this file. * config/rs6000/linux64.h: Likewise. 2005-03-16 Roger Sayle PR rtl-optimization/17825 Backport from mainline 2004-11-27 Jakub Jelinek * combine.c (subst): Ignore STRICT_LOW_PART no matter if REG_P (new) or not. 2005-03-16 Roger Sayle PR target/18371 Backport from mainline 2004-12-19 Steven Bosscher * config/i386/i386.c (ix86_split_to_parts): Use an array with four elements for decoding a CONST_DOUBLE on 64 bits targets. 2005-03-14 Alan Modra * config.gcc: Remove excess indentation. (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5. 2005-03-13 Marek Michalkiewicz 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-10 Aldy Hernandez * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section. 2005-03-08 James E Wilson Backport from mainline 2004-04-13 James E Wilson PR middle-end/20364 * c-opt.c (c_common_post_options): If this_input_filename is NULL, increment errorcount and return false instead of true. Backport from mainline 2005-02-21 James E Wilson * toplev.c (backend_init): Don't call init_adjust_machine_modes here. (do_compile): Do call it here. 2005-03-07 David Billinghurst * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv. 2005-03-03 Alan Modra 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 PR c++/19916 * varasm.c (initializer_constant_valid_p): Allow conversions between OFFSET_TYPEs. Tidy. 2005-02-28 John David Anglin 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-27 John David Anglin 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 Paolo Carlini * doc/extend.texi (Declaring Attributes of Functions): Clarify that the alternative way doesn't work in GNU C++. 2005-02-25 David Edelsohn Backport from mainline: 2005-02-24 David Edelsohn 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 Jakub Jelinek PR target/19019 * Makefile.in (LIB2FUNCS_SHARED_EXTRA, LIB2ADD_SH): New. (libgcc.mk): Depend on $(LIB2ADD_SH), pass LIB2ADD_SH to mklibgcc. (LIBGCC_DEPS): Add $(LIB2ADD_SH). * mklibgcc.in: Handle LIB2ADD_SH. * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove darwin-ldouble.c. (LIB2FUNCS_STATIC_EXTRA, LIB2FUNCS_SHARED_EXTRA): Set. * config/rs6000/darwin-ldouble.c: Protect .symver asm also with defined IN_LIBGCC2_S. * config/rs6000/darwin-ldouble-shared.c: New file. 2005-02-23 Michael Beach PR target/20159 * config/sparc/t-elf (startup files): Assemble with CPP. 2005-02-17 Gerald Pfeifer * doc/install.texi (Specific): Update link for Darwin-specific tool binary site. 2005-02-16 David Edelsohn PR target/19019 Backport from mainline: 2005-02-16 David Edelsohn * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver. * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same. 2005-02-15 David Edelsohn Alan Modra * 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-14 David Edelsohn * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand. (trunctfdf2_internal1): New. (trunctfdf2_internal2): Renamed from trunctfdf2. 2005-02-13 David Edelsohn * 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-16 Eric Christopher PR preprocessor/19077 * cppmacro.c (cpp_macro_definition): Move handling of whitespace to PREV_WHITE conditional. Remove overloading of len variable. 2005-02-16 Eric Botcazou PR target/19715 * config.gcc (sparc-*-elf*): Include sparc/sol2-gld.h. (sparc-*-rtems*): Likewise. (sparclite-*-elf*): Likewise. (sparc86x-*-elf*): Likewise. (sparc64-*-elf*): Likewise. 2005-02-11 John David Anglin PR middle-end/19697 2005-01-30 Roger Sayle * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer constant as the second operand and a register as the third. 2005-02-11 Jakub Jelinek PR c++/19666 2004-06-08 Andrew Pinski * fold-const.c (fold_convert): Treat OFFSET_TYPE like POINTER_TYPE and INTEGER_TYPE. * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of crtend.o if -pie. Use %{x:a;:b} spec syntax. 2005-02-10 Jakub Jelinek 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-02-08 Alan Modra PR target/19803 * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%. 2005-02-07 Ralf Corsepius * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200. 2005-02-03 Richard Guenther 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-01 Richard Earnshaw 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-01-31 Daniel Jacobowitz 2004-09-22 Mark Mitchell * gcc/dwarf2out.c (scope_die_for): If the containing scope is a TRANSLATION_UNIT_DECL, consider it to be a global. 2005-01-29 Alan Modra * unwind-dw2.c (execute_stack_op): Add missing cases for DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor. 2005-01-28 Stephane Carrez 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-27 Ulrich Weigand PR target/17771 Backport from mainline: * 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-27 Marek Michalkiewicz 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-27 J"orn Rennecke * real.c (do_add): Initialize signalling and canonical members. * real.c (real_from_integer): Zero out destination. 2005-01-26 Ulrich Weigand Backport from mainline: * dbxout.c (dbxout_symbol_location): Resolve constant pool references even for variables with NULL DECL_INITIAL. 2005-01-25 Richard Earnshaw PR target/19393 Backport: 2004-03-30 Nick Clifton * config/arm/arm.md (thumb_jump): Reduce the backward branch range, and increase the forward branch range, to allow for the fact that the PC will be off by 4. 2005-01-24 Richard Henderson Aldy Hernandez * regrename.c (note_sets): Handle subregs. 2005-01-24 Jakub Jelinek * 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-22 Ralf Corsepius 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-19 Jakub Jelinek 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. PR middle-end/19164 * c-typeck.c (digest_init): Only call build_vector if inside_init is a CONSTRUCTOR. 2005-01-18 Eric Botcazou PR debug/16261 Backport from mainline: 2004-01-27 Devang Patel * dwarf2out.c: (remove_child_TAG): New function. (gen_subprogram_die): Do not remove all children dies while reusing declaration die for definition. Instead, selectively remove only formal parameters. 2005-01-18 Eric Botcazou 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-17 John David Anglin * varasm.c (process_pending_assemble_output_defs): Fix previous change. 2005-01-16 John David Anglin 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 Ralf Corsepius * 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-14 David Edelsohn * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert last change. 2005-01-13 David O'Brien Backport from mainline: * config/freebsd-spec.h: Make KSE pthread lib logic the default. 2005-01-13 David Edelsohn * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE definition to 600. 2005-01-13 Ralf Corsepius * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu. 2004-01-12 David Mosberger James E Wilson PR target/18987 * config/ia64/ia64.c (process_set): For alloc insn, only call process_epilogue is !frame_pointer_needed. PR target/13158 * config/ia64/ia64.c (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on sibcall alloc instruction. (process_set): Handle sibcall alloc instruction. 2005-01-10 David Edelsohn PR target/18720 Backport from mainline * 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-08 Jakub Jelinek PR rtl-optimization/19012 * config/i386/i386.md (addqi_1_slp): Set memory attribute. 2005-01-07 Eric Botcazou * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo. * configure: Regenerate. 2005-01-07 Jakub Jelinek * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy TYPE_MODE. 2005-01-06 Richard Sandiford 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-05 Richard Henderson PR rtl-opt/10692 * reload1.c (do_input_reload): Restrict the optimization deleteing a previous output reload to RELOAD_FOR_INPUT. 2005-01-06 Jakub Jelinek Backport from mainline: 2004-03-22 Diego Novillo * c-typeck.c (same_translation_unit_p): Fix pasto. 2005-01-02 Roger Sayle Andrew Pinski James E. Wilson PR rtl-optimization/12092 * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK is zero. 2004-12-30 Roger Sayle PR middle-end/19175 * loop-unroll.c (expand_bct): Pass the code_label to the function do_compare_rtx_and_jump, not the label ref. Clean-up style issues. 2004-12-27 John David Anglin * vax.c (vax_address_cost, vax_rtx_cost): Correct casts. (vax_rtx_cost): Handle small offsets for both PLUS and MINUS. 2004-12-27 Steven Bosscher John David Anglin rtl-optimization/12863 * config/vax/vax.h (CASE_DROPS_THROUGH): Don't define. * config/vax/vax.md (casesi): Emit a test-and-branch to make sure that the case is in range, to make sure the casesi insn is always in range and never falls through. (casesi1): Add comment to explain why casesi never falls through. Remove the unnamed special case casesi pattern. 2004-12-27 John David Anglin PR c++/14607. Backported from main. * configure.ac (HAVE_GAS_NSUBSPA_COMDAT): Add check for .NSUBSPA COMDAT support. * configure. config.in: Rebuilt. * config/pa/pa-protos.h (som_text_section_asm_op, som_readonly_data_section, som_one_only_readonly_data_section, som_one_only_data_section, forget_section): Declare. * pa.c (override_options): Set init_machine_status to pa_init_machine_status. (pa_init_machine_status): New function. (pa_output_function_epilogue): Call forget_section if TARGET_SOM and TARGET_GAS. (pa_asm_output_mi_thunk): Likewise. (som_text_section_asm_op): New function. (pa_select_section): Call som_one_only_readonly_data_section and som_one_only_data_section when appropriate. * pa.h (struct machine_function): Define. (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, SOM_READONLY_DATA_SECTION_FUNCTION, SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New macros. * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete. (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op. (READONLY_DATA_ASM_OP, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. (READONLY_DATA_SECTION): Call som_readonly_data_section when not PIC. (SUPPORTS_SOM_COMDAT): New define. (SUPPORTS_ONE_ONLY): True if SUPPORTS_WEAK or SUPPORTS_SOM_COMDAT. (MAKE_DECL_ONE_ONLY): Rework common support. 2004-12-26 John David Anglin PR target/17643 * pa.c (pa_function_ok_for_sibcall): Sibcalls are not ok when generating code for the portable runtime. 2004-12-25 Alan Modra PR target/19147 * config/rs6000/rs6000.md (andsi3_internal7, andsi3_internal8): Delete. 2004-12-23 Richard Henderson PR c/18282 * c-decl.c (finish_enum): Retain precision acquired from an attribute. 2004-12-23 Alexandre Oliva PR target/16819 * calls.c (load_register_parameters): Don't call use_regs when nregs is zero. 2004-12-22 Richard Henderson PR target/19102 * config/i386/i386.c (x86_inter_unit_moves): Disable. (ix86_hard_regno_mode_ok): Disallow SSE2 and MMX scalar modes in SSE registers when only SSE1 enabled. 2004-12-21 David O'Brien Backport from mainline: * config/freebsd-spec.h: Use KSE pthread lib for -pthread. 2004-12-19 Richard Henderson * config/i386/i386.c (ix86_hard_regno_mode_ok): Always accept all SSE, MMX, 3DNOW modes in SSE registers; always accept all MMX, 3DNOW modes in MMX registers. * config/i386/i386.h (VALID_SSE2_REG_MODE): Don't include VALID_MMX_REG_MODE. * config/i386/i386.md (movv4sf_internal, movv4si_internal, movv2di_internal, movv2si_internal, movv4hi_internal, movv2sf_internal, movv2df_internal, movv8hi_internal, movv16qi_internal, movti_internal): Add leading '*' to name. (movv2di_internal, movv2df_internal, movv8hi_internal, movv16qi_internal, movv2df, movv8hi, movv16qi, movv2di, pushv2di, pushv8hi, pushv16qi): Enable for SSE1. (movv2si_internal, movv4hi_internal): Add SSE alternatives. (movv8qi_internal, movv2sf_internal): Likewise. (movtf): Simplify conditional. (movv2sf, pushv2sf): Enable for MMX. 2004-12-19 Roger Sayle PR middle-end/19068 * expr.c (expand_expr_real_1) : Ensure that target, op0 and op1 are all registers (or constants) before expanding the RTL comparison sequence [to avoid reg_overlap_mentioned (target, op1)]. 2004-12-18 Eric Botcazou PR rtl-optimization/16968 * loop.c (scan_loop): Stop scanning the loop for movable insns as soon as an optimization barrier is encountered. 2004-12-16 H.J. Lu PR other/18508 * config/alpha/t-osf4 (SHLIB_LINK): Use `.backup' as the suffix to back up the existing shared library. * config/arm/t-netbsd (SHLIB_LINK): Likewise. * config/mips/t-iris5-6 (SHLIB_LINK): Likewise. * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise. * config/sh/t-linux (SHLIB_LINK): Likewise. * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise. * config/t-slibgcc-darwin (SHLIB_LINK): Likewise. * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise. * config/t-slibgcc-sld (SHLIB_LINK): Likewise. 2004-12-16 Roger Sayle PR middle-end/18493 * c-typeck.c (c_finish_case): Rechain statements if we didn't encounter any case labels or a default. 2004-12-16 Eric Botcazou PR middle-end/18882 * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment when passed -2 as 'align'. (put_var_into_stack): Use 'bool' as the type for the three local predicates. Adjust calls to put_reg_into_stack. When passed a CONCAT, instruct put_reg_into_stack to use a consecutive stack slot for the second part. (put_reg_into_stack): Remove 'promoted_mode' parameter, add 'consecutive_p' parameter. Turn the three predicates into 'bool' parameters. Retrieve the register mode from 'reg'. When consecutive_p is true, instruct assign_stack_local_1 to use BITS_PER_UNIT alignment. (put_addressof_into_stack): Use 'bool' as the type for the two local predicates. Adjust call to put_reg_into_stack. 2004-12-16 Eric Botcazou PR middle-end/18590 * function.c (fixup_var_refs_insns_with_hash): Do not invoke fixup_var_refs_insn on insns marked as deleted. 2004-12-15 Richard Henderson PR target/19028 * config/i386/i386.md (sse compare splitter): Test for SF and DFmode explicitly instead of using VALID_SSE_REG_MODE. 2004-12-15 Richard Henderson PR target/19005 * config/i386/i386.md (swaphi_1): Swap with swaphi_2, allow with optimize_size. (swapqi_1): Rename from swapqi. Enable only for no partial reg stall and optimize_size. (swapqi_2): New. (swaphi_1, swaphi_2, swapqi_1): Add athlon_decode. (swapsi, swaphi_1, swaphi_2, swapqi_1, swapdi): Remove modrm override. 2004-12-15 H.J. Lu PR target/18153 * configure.ac: Define HAVE_LD_STATIC_DYNAMIC if linker supports -Bstatic/-Bdynamic option. * config.in: Regenerated. * configure: Likewise. * gcc.c (init_spec): Pass -Bstatic/-Bdynamic to ld for static -lunwind if possible. 2004-12-15 Richard Henderson PR target/19010 * config/i386/i386.c (gen_reg_or_parallel): New. (function_arg): Use it. (ix86_hard_regno_mode_ok): Test SSE1 and SSE2 separately, MMX and 3DNOW separately. (ix86_rtx_costs): Simplify FLOAT_EXTEND case. * config/i386/i386.h (VALID_SSE2_REG_MODE): Move SSE2 cases from ... (VALID_SSE_REG_MODE): ... here. * config/i386/i386.md (movv4sf_internal): Validate one MEM. (movv4si_internal): Likewise. (movv2di_internal): Likewise. Enable for SSE2 only. (movv2di): Enable for SSE2 only. (pushv4si): Enable for SSE1. 2004-12-15 Eric Botcazou PR c++/17972 * tree-inline.c (expand_call_inline): Set TREE_SIDE_EFFECTS on the STMT_EXPR wrapping up the inlined body. 2004-12-15 Eric Botcazou PR preprocessor/15167 * cppfiles.c (destroy_cpp_file): New function. (should_stack_file): Make a new file if the compared file is still stacked. 2004-12-15 Eric Botcazou PR other/18665 * libgcc-std.ver (GCC_3.4.4): Inherit from GCC_3.4.2. Export __absvti2, __addvti3, __mulvti3, __negvti2 and __subvti3. * libgcc-darwin.ver (GCC_3.4.4): Inherit from GCC_3.4. Export __absvti2, __addvti3, __mulvti3, __negvti2 and __subvti3. * libgcc2.c (__addvsi3): Rename to __addvSI3. New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. (__addvdi3): Rename to __addvDI3. (__subvsi3): Rename to __subvSI3. Use word type for the result. New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. (__subvdi3): Rename to __subvDI3. (_mulvsi3): Rename to _mulvSI3. New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. (_mulvdi3): Rename to _mulvDI3. (__negvsi2): Rename to __negvSI2. New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. (__negvdi2): Rename to __negvDI2. (__absvsi2): Rename to __absvSI2. New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. (__absvdi2): Rename to __absvDI2. * libgcc2.h (64-bit targets): Define COMPAT_SIMODE_TRAPPING_ARITHMETIC. (__absvSI2, __addvSI3, __subvSI3, __mulvSI3, __negvSI2, __absvDI2, __addvDI3, __subvDI3, __mulvDI3, __negvDI2): Define to the appropriate symbol and declare. (__absvsi2, __addvsi3, __subvsi3, __mulvsi3, __negvsi2): Declare if COMPAT_SIMODE_TRAPPING_ARITHMETIC. 2004-12-14 Steve Ellcey * doc/invoke.texi (IA-64 options): Add existing options that weren't already listed. 2004-12-14 Jakub Jelinek PR middle-end/18951 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2): Avoid using arguments passed to save_expr after that call. 2004-12-13 John David Anglin PR middle-end/18730 * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): When the first/last insn is a sequence, return the first/last insn of the sequence. 2004-12-13 Roger Sayle PR target/18002 PR middle-end/18424 Backport from mainline 2004-03-20 Richard Sandiford * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h. (GTFILES): Add $(srcdir)/dojump.h. (gt-dojump.h): New dependency. * dojump.c (and_reg, and_test, shift_test): New static variables. (prefer_and_bit_test): New function. (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1. 2004-03-21 Andrew Pinski * dojump.c (prefer_and_bit_test): Fix which part of the and_test is replaced. 2004-12-10 Roger Sayle * dojump.c (do_jump): When attempting to reverse the effects of fold_single_bit_test, we need to STRIP_NOPS and narrowing type conversions, and handle BIT_XOR_EXPR that's used to invert the sense of the single bit test. 2004-12-13 Richard Henderson PR target/17990 * config/i386/i386.md (negsf2): Fix condition for using sse. (negdf2, abssf2, absdf2): Likewise. (negsf2_if, abssf2_if): Don't disable if sse enabled. (movv4sf_internal splitter): Postpone til after reload. (movv2di_internal splitter): Likewise. 2004-12-13 Richard Henderson PR middle-end/17930 * toplev.c (rest_of_compilation): Fix computation of preferred_incoming_stack_boundary. 2004-12-12 Richard Henderson PR rtl-opt/17186 * reg-stack.c (move_for_stack_reg): Handle source register not live with a nan. 2004-12-12 Richard Henderson PR target/18932 * config/i386/i386.md (all splits and peepholes): Use flags_reg_operand and compare_operator to propagate the input CC mode to the output. * config/i386/i386.c (compare_operator): New. * config/i386/i386.h (PREDICATE_CODES): Add it. * config/i386/i386-protos.h: Update. 2004-12-09 Richard Henderson PR c/18282 * attribs.c (decl_attributes): Clear DECL_ALIGN when relaying out decl. * c-common.c (handle_mode_attribute): Handle enumeral types. 2004-12-09 Richard Henderson PR target/17025 * config/i386/i386.md (testqi_1_maybe_si, andqi_2_maybe_si): New. (test_qi_1, andqi_2): Do not promote to simode. 2004-12-07 David Mosberger PR target/18443 * config/ia64/ia64.c (ia64_assemble_integer): Add support for emitting unaligned pointer-sized integers. 2004-12-07 Eric Botcazou PR middle-end/17827 * c-semantics.c (expand_unreachable_if_stmt): Invoke expand_cond on the condition. 2004-12-06 Aldy Hernandez * config/rs6000/sysv4.h: Define RELOCATABLE_NEEDS_FIXUP to 1. 2004-12-05 Richard Henderson PR target/18841 * config/alpha/alpha.md (UNSPECV_SETJMPR_ER): New. (builtin_setjmp_receiver_er_sl_1): Use it. (builtin_setjmp_receiver_er_1): Likewise. (builtin_setjmp_receiver_er, exception_receiver_er): Remove. (builtin_setjmp_receiver): Don't split for explicit relocs until after reload. (exception_receiver): Likewise. 2004-12-05 Alan Modra * config/rs6000/rs6000.c (rs6000_assemble_integer): Fix typo. 2004-12-04 Richard Henderson * emit-rtl.c, expr.c, function.c, integrate.c, optabs.c, rtl.h: Revert the patches for PR rtl-opt/15289. 2004-12-03 Eric Botcazou * integrate.c (expand_inline_function): Accept non-CONCAT arguments for CONCAT parameters and invoke read_complex_part on them. 2004-12-02 Richard Henderson * expr.c (write_complex_part): Use simplify_gen_subreg when the submode is at least as large as a word. (read_complex_part): Likewise. 2004-12-02 Roger Sayle PR target/9908 * config/i386/i386.md (*call_value_1, *sibcall_value_1): Correct Intel assembler syntax by using %A1 instead of %*%1. 2004-12-02 Richard Henderson PR rtl-opt/15289 * emit-rtl.c (gen_complex_constant_part): Remove. (gen_realpart, gen_imagpart, subreg_realpart_p): Remove. * expr.c (write_complex_part, read_complex_part): New. (emit_move_via_alt_mode, emit_move_via_integer, emit_move_resolve_push, emit_move_complex_push, emit_move_complex, emit_move_ccmode, emit_move_multi_word): Split out from ... (emit_move_insn_1): ... here. (expand_expr_real) : Use write_complex_part. : Use read_complex_part. : Likewise. * function.c (assign_parms): Hard-code transformations instead of using gen_realpart/gen_imagpart. * integrate.c (initialize_for_inline): Likewise. * optabs.c (expand_unop): Use read_complex_part/write_complex_part. (expand_complex_abs): Likewise. (expand_binop): Likewise. Rearrange to build a CONCAT at the end, rather than creating a complex target at the beginning. * rtl.h (gen_realpart, gen_imagpart, subreg_realpart_p): Remove. (read_complex_part, write_complex_part): Declare. 2004-12-02 Alan Modra * config/rs6000/rs6000.c (rs6000_assemble_integer): Put back the #ifdef RELOCATABLE_NEEDS_FIXUP. 2004-12-01 Nathanael Nerode PR preprocessor/17651 * c-opts.c (sanitize_cpp_opts): Make flag_no_output imply flag_no_line_commands. * c-ppoutput.c (pp_file_change): Remove now-redundant check of flag_no_output. PR preprocessor/17610 * directives.c (do_include_common): Error out if an empty filename is given for #include (or #include_next or #import). PR preprocessor/17610 * testsuite/gcc.dg/cpp/empty-include.c: New testcase. 2004-12-02 Alan Modra PR target/16952 * config/rs6000/rs6000.c (rs6000_assemble_integer): Replace #ifdef RELOCATABLE_NEEDS_FIXUP with if. * config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Define in terms of target_flags_explicit. * config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Ditto for biarch case. Define as 0 for non-biarch. 2004-12-01 Richard Henderson * expr.c (optimize_bitfield_assignment_op): Split out from ... (expand_assignment): ... here. Use handled_component_p to gate get_inner_reference code. Simplify MEM handling. Special case CONCAT destinations. (get_inner_reference): Handle REAL/IMAGPART_EXPR. (handled_component_p): Likewise. 2004-12-01 Alan Modra PR target/12817 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use r0 for vrsave. 2004-11-30 Jakub Jelinek * fold-const.c (extract_muldiv_1) : If ctype is unsigned and type signed, build ABS_EXPR with signed_type (ctype) and only afterwards convert to ctype. 2004-11-29 Richard Henderson PR target/17224 * config/ia64/ia64.c (sdata_symbolic_operand): Deny offsets outside the referenced object. 2004-11-28 Andreas Fischer Alan Modra PR target/16343 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Disallow functions, strings and thread-local vars. 2004-11-27 Alan Modra PR target/12769 * config/rs6000/rs6000.c (init_cumulative_args): Set call_cookie from rs6000_default_long_calls for libcalls. PR target/18686 * config/rs6000/rs6000-c.c (rs6000_pragma_longcall): Use integer_zerop and integer_onep instead of comparing against canonical trees. 2004-11-25 Richard Henderson PR c++/6764 * reload1.c (set_initial_eh_label_offset): New. (set_initial_label_offsets): Use it. 2004-11-26 Alan Modra PR rtl-optimization/16356 * config/rs6000/rs6000.md (floatdisf2_internal2): Rewrite with separate output register and one less jump. Enable for powerpc64. (floatdisf2): Adjust for above. 2004-11-25 Ralf Corsepius * config.gcc (avr-*-rtems*): Fix typo. 2004-11-24 Uros Bizjak PR rtl-optimization/18614 * simplify-rtx.c (simplify_binary_operation): Do not simplify inner elements of constant arguments of VEC_CONCAT insn. 2004-11-23 Eric Botcazou Backport from mainline: 2004-10-18 Eric Botcazou Roger Sayle PR middle-end/17813 * dojump.c (discard_pending_stack_adjust): New function. (clear_pending_stack_adjust): Call it. * expr.h (discard_pending_stack_adjust): Declare it. * explow.c (emit_stack_save): Emit pending stack adjustments before saving the stack pointer. (emit_stack_restore): Discard pending stack adjustments before restoring the stack pointer. 2004-11-23 Ralf Corsepius * config/c4x/t-rtems: New. * config.gcc: Reflect having added c4x/t-rtems. 2004-11-23 Ralf Corsepius * config/arm/t-rtems: New. * config.gcc: Reflect having added arm/t-rtems. 2004-11-23 Ralf Corsepius * config.gcc: Add avr-*-rtems*. * config/avr/t-rtems: New. * config/avr/rtems.h: New. 2004-11-22 John David Anglin PR rtl-optimization/14838 * emit-rtl.c (get_first_nonnote_insn): Don't assume first insn is a note. (get_last_nonnote_insn): Don't assume last insn is a note. 2004-11-21 Roger Sayle * fixinc/inclhack.def (alpha_pthread_init): Fix technical problems with the last check-in caused by CVS variable substitution. * fixinc/fixincl.x: Likewise. * fixinc/tests/base/pthread.h: Likewise. 2004-11-21 Roger Sayle Bruce Korb Synchronize with mainline * fixinc/inclhack.def (alpha_pthread_init): New fix. * fixinc/fixincl.x: Regenerate. * fixinc/tests/base/pthread.h: Update for new test. 2004-11-17 Ramana Radhakrishnan PR target/18263 * config/arc/lib1funcs.asm (___umulsidi3): Change use of cmp to the equivalent on the A4. 2004-11-16 Joseph S. Myers PR c/18498 * c-decl.c (grokdeclarator): Call check_bitfield_type_and_width after processing the declarator. 2004-11-14 Andrew Pinski PR objc/18406 * objc/obj-act.c (encode_type): 96bits doubles are encoded the same way as 64bit and 128bit doubles are. 2004-11-14 Hans-Peter Nilsson PR target/18347 * config/mmix/mmix.c (mmix_function_outgoing_value): Handle TImode. Sorry for other non-complex larger-than-64-bit modes. * config/mmix/mmix.h (MIN_UNITS_PER_WORD): Do not define. (INIT_CUMULATIVE_ARGS): Correct unused macro name FNDECL. 2004-11-13 Eric Botcazou * doc/md.texi (constraints) <% modifier>: Mention that it is useless when the two alternatives are strictly identical. 2004-11-12 Richard Henderson PR 17778 * config/i386/i386.h (TARGET_96_ROUND_53_LONG_DOUBLE): New. * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Remove. (TARGET_96_ROUND_53_LONG_DOUBLE): New. * config/i386/i386-modes.def (XF): Use it. 2004-11-12 Ralf Corsepius * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY): Remove m505/roe multilib variant. 2004-11-12 Eric Botcazou Backport from mainline: 2004-02-25 Richard Henderson * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't use (op0-op1) == 0 if op0 is a pointer. 2004-11-10 Joseph S. Myers PR c/18322 * c-common.c (fname_decl): Don't use line number of decl in diagnostic. 2004-11-10 Eric Botcazou * config/sparc/sparc.c (function_arg_union_value): New 'slotno' argument. Return naked register for unions with zero length. When the union is passed in the 6th slot, build a PARALLEL with only one element. (function_arg): Adjust call to function_arg_union_value. (function_value): Likewise. 2004-11-09 H.J. Lu PR target/18380 * config/ia64/unwind-ia64.h (_Unwind_FindTableEntry): Mark it hidden. * unwind-dw2.c (_Unwind_FindTableEntry): Removed. 2004-11-10 Alan Modra PR target/16480 2004-08-26 Alan Modra * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort on "(mem (symbol_ref ..))" rtl. Look at LO_SUM base regs as well as PLUS base regs. 2004-08-01 Geoffrey Keating * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort if trying to *store* to a non-offsettable address. 2004-07-30 Geoffrey Keating * config/rs6000/rs6000.c (rs6000_split_multireg_move): Cope with non-offsettable addresses being moved into multiple GPRs. 2004-11-07 Richard Sandiford * config/mips/t-iris6 (tp-bit.c): Fix target filename. 2004-11-07 Mark Mitchell * version.c (version_string): Set to 3.4.4. * doc/include/gcc-common.texi (version): Likewise. 2004-11-04 Release Manager * GCC 3.4.3 released. 2004-10-31 Jakub Jelinek PR middle-end/18129 * varasm.c (copy_constant): Don't copy STRING_CSTs if flag_writable_strings. (build_constant_desc): Call copy_constant unconditionally. 2004-10-30 Roger Sayle PR rtl-optimization/17581 * cselib.c (cselib_process_insn): The last instruction of a libcall block, with the REG_RETVAL note, should be considered in the libcall. * gcse.c (do_local_cprop): Allow constants to be propagated outside of libcall blocks. (adjust_libcall_notes): Use simplify_replace_rtx instead of replace_rtx to avoid creating invalid RTL in REG_RETVAL notes. 2004-10-27 Andrew Pinski PR other/18186 * common.opt (--param): Fix spelling of parameter. 2004-10-27 Andreas Krebbel * config/s390/s390.md ("*subdf3_cc"): Replaced plus by minus. 2004-10-26 Richard Sandiford PR bootstrap/15747 * doc/install.texi (mips-sgi-irix5): Document that /bin/sh has been reported to hang during bootstrap and that CONFIG_SHELL=/bin/ksh can be used to work around this. 2004-10-26 Roger Sayle John David Anglin Backport 3.4 regression fix from mainline * cse.c: Change encoding of quantity numbers to avoid undefined pointer arithmetic on qty_table. (REGNO_QTY_VALID_P): A quantity is now valid if it isn't negative. (get_cse_reg_info): Initialize reg_qty to a unique negative value. (new_basic_block): Assign "real" quantity numbers from zero. (delete_reg_equiv): Do nothing if quantity is invalid. Reset the REG_QTY to its unique negative value. (merge_equiv_classes): Calculate need_rehash if quantity is valid. (cse_main): Don't include max_reg when determining max_qty. (cse_basic_block): Avoid subtracting a large offset from qty_table, which causes undefined C99 behaviour. Only allocate needed memory. 2004-10-25 Jakub Jelinek * dwarf2out.c (rtl_for_decl_location): Avoid segfault if DECL_INCOMING_RTL is NULL. 2004-10-21 Eric Christopher * config/rs6000/rs6000.c (setup_incoming_varargs): Align DFmode saves. 2004-10-22 Bernardo Innocenti Backport from the mainline: 2004-10-22 Peter Barada * config/m68k/m68k.h (HARD_REGNO_RENAME_OK): New macro. * config/m68k/m68k.c (m68k_hard regno_rename_ok): Disallow renaming of non-live registers in interrupt functions. * config/m68k/m68k-protos.h (m68k_hard_regno_rename_ok): Add prototype. 2004-10-21 Giovanni Bajo * config/arc/lib1funcs.asm (___umulsidi3): Fix typo. 2004-10-21 Aldy Hernandez PR 18004. * expmed.c (store_bit_field): Pass original 'value' before recursing. 2004-10-21 Ramana Radhakrishnan * config/arc/lib1funcs.asm (___umulsidi3): Correct usage of flags. PR target/17317 * config/arc/arc.h (REGNO_OK_FOR_BASE_P,REGNO_OK_FOR_INDEX_P, REG_OK_FOR_BASE, REG_OK_FOR_INDEX): Consider blink(r31) as a valid base and index register for loads. * config/arc/t-arc: Fix multilib handling. 2004-10-18 H.J. Lu PR bootstrap/17684 * Makefile.in (clean): Remove libgcc_s$(SHLIB_EXT).1.stage?. (stage1-start): Remove and copy libunwind.a and libunwind*$(SHLIB_EXT) instead of libunwind*. (stage2-start): Likewise. (stage3-start): Likewise. (stage4-start): Likewise. (stageprofile-start): Likewise. (stagefeedback-start): Likewise. * config/alpha/t-osf4 (SHLIB_LINK): Use a temporary file for the shared library to be created and don't remove the existing shared library. * config/arm/t-netbsd (SHLIB_LINK): Likewise. * config/mips/t-iris5-6 (SHLIB_LINK): Likewise. * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise. * config/sh/t-linux (SHLIB_LINK): Likewise. * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise. * config/t-slibgcc-darwin (SHLIB_LINK): Likewise. * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise. * config/t-slibgcc-sld (SHLIB_LINK): Likewise. * mklibgcc.in (libgcc-stage-start): Also move "*${objext}s" files. 2004-10-18 Jakub Jelinek * config/i386/i386.md (addqi_1_slp): Test for incdec_operand operand 1 instead of 2 2004-10-17 David O'Brien * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with other FreeBSD platforms. 2004-10-14 Richard Henderson PR debug/14492 * dwarf2out.c (loc_descriptor_from_tree): Handle FIX_*_EXPR. 2004-10-14 Richard Henderson PR c/17023 * c-parse.in (compstmt_primary_start): Check last_tree non-null, not current_function_decl non-null. 2004-10-14 Roger Sayle PR other/17361 * c-opts.c (c_common_init_options): Scan command line options for "-lang-asm" and if found allow any of the C-family front-end options. Likewise, scan all command line options for g77's -traditional-cpp. 2004-10-14 Kaveh R. Ghazi * doc/install.texi (*-*-solaris2*): Update with info about kernel patches to solve spurious testsuite failures. 2004-10-13 Andrew Pinski * dwarf2out.c (rtl_for_decl_location): Do not use MEM_P but use GET_CODE == MEM. 2004-10-13 Richard Henderson PR debug/15860 * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction for DECL_INCOMING_RTL. 2004-10-13 Richard Henderson PR c/17384 * c-common.c (handle_mode_attribute): Disallow mode changes that alter the CODE of the top-level type. * crtstuff.c (__FRAME_END__): Remove mode attribute. Find 32-bit integer from internal limits macros. * config/i386/emmintrin.h (__v2df): Fix base type. * config/i386/xmmintrin.h (__m128, __v4sf): Likewise. 2004-10-13 Richard Henderson PR debug/13841 * function.c (instantiate_decl): Recurse for CONCAT. 2004-10-13 Eric Botcazou PR target/14454 * config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to sparc_can_output_mi_thunk. (sparc_output_mi_thunk): Simplify handling of delta offset. Add handling of vcall offset. (sparc_can_output_mi_thunk): New predicate. * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET. (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete. (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook. * config/sparc/sparc.md (movdi): Remove redundant test. 2004-10-12 Richard Henderson PR rtl-opt/17503 * regclass.c (subregs_of_mode): Turn into an htab. Make static. (som_hash, som_eq): New. (init_subregs_of_mode, record_subregs_of_mode): New. (cannot_change_mode_set_regs): Rewrite for htab implementation. (invalid_mode_change_p): Likewise. * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode. * flow.c (mark_used_regs): Likewise. (life_analysis): Use init_subregs_of_mode. * regs.h (subregs_of_mode): Remove. * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare. 2004-10-10 Roger Sayle PR rtl-optimization/17853 * combine.c (combine_simplify_rtx): Don't attempt any simplifications of vector mode comparison operators. * cse.c (fold_rtx): Likewise. * simplify-rtx.c (simplify_gen_relational): Avoid calling simplify_relational_operation with vector mode comparison operators. (simplify_rtx): Likewise. 2004-10-09 Joseph S. Myers * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16, atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64, strtoufix16, strtoufix32, strtoufix64): Declare. 2004-10-08 Andrew Pinski PR c/16999 * c-ppoutput.c (cb_ident): Don't quote string as it is already quoted. 2004-10-08 Eric Botcazou PR target/17245 * config/sparc/sparc.c (input_operand): Remove redundant code for handling LO_SUM. (legitimate_address_p) : Do not recheck TARGET_V9. : If LO_SUM is offsettable, accept it for TFmode on V9. Otherwise only accept it for TFmode if quad move insns are available. 2004-10-07 Giovanni Bajo PR c++/17115 * tree-inline.c (expand_call_inline): Do not warn for functions marked with attribute noinline. 2004-10-07 Eric Botcazou * doc/install.texi (*-*-solaris2*): Fix marker for URL. 2004-10-07 Richard Sandiford PR target/17770 * config/mips/mips.md (mov_lwl): Remove hazard=none attribute. 2004-10-07 Eric Botcazou PR rtl-optimization/17027 Backport from mainline: * cfglayout.c (fixup_fallthru_exit_predecessor): If the first block falls through to exit, split it. * cfgrtl.c (rtl_split_block): If no insn is specified, split on the first insn in the basic block. 2004-10-06 H.J. Lu * doc/invoke.text (freorder-functions): Add a leading `.' to "text.hot" and "text.unlikely" sections. 2004-10-06 Eric Botcazou PR target/16007 * doc/install.texi (*-*-solaris2*): Mention potential problem with Sun assembler + GNU linker and C++ programs. Document status of binutils 2.15 release. 2004-10-06 Alan Modra PR 16406 * doc/tm.texi (LIBGCC_SPEC): Mention modifications. (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document. 2004-10-03 Alan Modra * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define. (OS_MISSING_POWERPC64): Move, and comment. * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define. (OS_MISSING_POWERPC64): Move, and comment. 2004-10-01 Nick Clifton * config/stormy16/stormy16.c (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Fix typo in macro name, it should be: TARGET_BUILD_BUILTIN_VA_LIST. 2004-09-30 Richard Henderson * config/alpha/qrnnd.asm: Mark for noexecstack. 2004-09-30 Richard Henderson * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG. * doc/tm.texi (DWARF_ZERO_REG): New. * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue, alpha_expand_epilogue): Revert 2003-09-30 change to store zero. * config/alpha/alpha.h (DWARF_ZERO_REG): New. 2004-09-29 David Edelsohn PR target/17493 Backport from mainline 2004-07-16 Segher Boessenkool * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi). 2004-09-28 Giovanni Bajo PR target/14064 Backport from mainline 2004-09-01 James E Wilson * config/avr/avr.c (avr_unique_section): Delete prototype and definition. (TARGET_ASM_UNIQUE_SECTION): Delete. 2004-09-26 Roger Sayle PR other/15526 Backport from mainline 2004-05-20 Falk Hueffner * libgcc2.c (__mulvsi3): Fix overflow test. 2004-09-24 Roger Sayle PR rtl-optimization/9771 * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate conditional compilation in init_reg_sets_1. (init_reg_sets_1): Let global_regs[i] take priority over the frame (but not stack) pointer exceptions to regs_invalidated_by_call. (globalize_reg): Globalizing a fixed register may need to update regs_invalidated_by_call. 2004-09-23 Denis Chertykov PR target/16884 * config/avr/avr.md ("movmemhi"): Substitute match_dup to match_scratch. (*movmemqi_insn): Likewise. (*movmemhi): Likewise. (clrmemhi): Likewise. (*clrmemqi): Likewise. (*clrmemhi): Likewise. 2004-09-23 H.J. Lu PR bootstrap/17369 * Makefile.in (@set_gcc_lib_path@): Added. * configure.ac: Include ../config/gcc-lib-path.m4. Use TL_AC_GNU_MAKE_GCC_LIB_PATH. * configure: Regenerated. 2004-09-23 Joseph S. Myers PR c/16566 * c-typeck.c (build_component_ref): Don't special-case COMPOUND_EXPR. 2004-09-22 Ralf Corsepius PR target/15583 * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add builtin_define ("__USE_INIT_FINI__"). 2004-09-20 Richard Sandiford PR target/17565 * config/mips/mips.md (define_asm_attributes): Set can_delay to no. 2004-09-15 James E Wilson PR target/17455 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false if current_function_decl is a sibcall. 2004-09-15 Alan Modra * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Save location of CR. * config/rs6000/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Ditto. 2004-09-15 Eric Botcazou * doc/install.texi (sparc-sun-solaris2*): Properly format warning. 2004-09-14 Richard Henderson PR rtl-opt/17186 * function.c (expand_function_end): Revert last change. * sibcall.c (call_ends_block_p): Fix thinko finding the last real insn in a block. 2004-09-14 Joseph S. Myers PR c/15498 * doc/invoke.texi (Environment Variables): Correct example locale. 2004-09-14 Daniel Jacobowitz * reload.c (find_reloads): Swap operand_loc pointers for find_dummy_reload if we have swapped two operands. 2004-09-13 Richard Henderson PR inline-asm/6806 * cselib.c (cselib_invalidate_rtx): Export. Remove unused args. (cselib_invalidate_rtx_note_stores): New. (cselib_record_sets, cselib_process_insn): Update to match. * cselib.h (cselib_invalidate_rtx): Declare. * postreload.c (reload_cse_simplify): Invalidate asm clobbers. 2004-09-11 Ramana Radhakrishnan PR target/11476 * gcc/config/arc/arc.c (arc_va_args): Call build1 instead of build for unary tree operators. 2004-09-11 Andrew Pinski PR target/17167 backport from the mainline: 2004-02-28 Andrew Pinski * config/darwin.h (machopic_finish): Output stub even if the symbol is already defined. 2004-02-27 Dale Johannesen * config/darwin.c (machopic_output_possible_stub_label): Remove. config/darwin-protos.h: Ditto. config/darwin.h: Remove call to it. 2004-09-11 David Edelsohn PR target/17277 * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to choose 64-bit version. 2004-09-09 Kaz Kojima PR 15886 Backport from mainline: 2004-06-11 J"orn Rennecke * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx. 2004-09-09 Alan Modra * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of save_size. 2004-09-08 H.J. Lu * configure: Regenerated. 2004-09-08 Richard Henderson PR rtl-opt/17186 * function.c (expand_function_end): Have fall-off-the-end return path jump around return register setup. 2004-09-08 H.J. Lu PR target/14925: Makefile.in (LIB2ADDEHSTATIC): New. (LIB2ADDEHSHARED): New. (LIBUNWIND): New. (LIBUNWINDDEP): New. (SHLIBUNWIND_LINK): New. (SHLIBUNWIND_INSTALL): New. (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND, LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL. (clean): Remove libunwind* (stage1-start): Remove and copy stage1/libunwind*. (stage2-start): Remove and copy stage2/libunwind*. (stage3-start): Remove and copy stage3/libunwind*. (stage4-start): Remove and copy stage4/libunwind*. (stageprofile-start): Remove and copy stageprofile/libunwind*. (stagefeedback-start): Remove and copy stagefeedback/libunwind*. * config.gcc (ia64*-*-linux*): Always add t-libunwind to tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to tmake_file if --with-system-libunwind isn't used. * config/ia64/t-glibc-libunwind: New file. * config/t-libunwind-elf: Likewise. * unwind-compat.c: Likewise. * unwind-compat.h: Likewise. * unwind-dw2-fde-compat.c: Likewise. * config/ia64/t-glibc (LIB2ADDEH): Updated. * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS. * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define aliases if needed. * unwind-dw2-fde-glibc.c: Likewise. * unwind-dw2.c: Likewise. * config/t-libunwind (LIB2ADDEH): Updated. (LIB2ADDEHSTATIC): New. (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS. (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER. * configure.ac: Change --enable-libunwind-exceptions to --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS. * configure: Regenerated. * config.in: Updated. * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or above and mention --with-system-libunwind. (ia64-*-hpux*): Mention --enable-libunwind-exceptions is removed in gcc 3.4.3 and later. * gcc.c (init_spec): Add -lunwind to -lgcc_s if USE_LIBUNWIND_EXCEPTIONS is defined. * mklibgcc.in: Support libunwind. 2004-09-07 Mark Mitchell * version.c (version_string): Restore pre-release marker. * doc/include/gcc-common.texi: Set version to 3.4.3. 2004-09-06 Release Manager * GCC 3.4.2 released. 2004-09-05 Mark Mitchell PR bootstrap/17325 Backport from mainline 2004-06-23 Wu Yongwei * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust. (__gthr_i486_lock_cmp_xchg): New inline assembly function. (__GTHR_W32_InterlockedCompareExchange): New macro to choose a suitable function for interlocked compare-and-exchange. (__gthread_mutex_trylock): Use __GTHR_W32_InterlockedCompareExchange. (__gthread_mutex_init_function, __gthread_mutex_lock, __gthread_mutex_trylock, __gthread_mutex_unlock): Adjust the initial counter value to work correctly under Windows 95. * config/i386/gthr-win32.c: Adjust include order. Define __GTHREAD_I486_INLINE_LOCK_PRIMITIVES before including gthr-win32.h. (__gthr_win32_mutex_init_function, __gthr_win32_mutex_lock, __gthr_win32_mutex_trylock, __gthr_win32_mutex_unlock): Adjust to match inline versions in gthr-win32.h. 2004-04-27 Wu Yongwei * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure. (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust. (__gthread_mutex_init_function): Replace CreateMutex with initialization of custom mutex using CreateSemaphore. (__gthread_mutex_lock): Use InterlockedIncrement. (__gthread_mutex_trylock): Use InterlockedCompareExchange. (__gthread_mutex_unlock): Use InterlockedDecrement and ReleaseSemaphore to unlock * config/i386/gthr-win32.c (__gthread_mutex_init_function, __gthread_mutex_lock, __gthread_mutex_trylock, __gthread_mutex_unlock): Adjust to match inline versions in gthr-win32.h. 2004-09-03 Kaz Kojima PR target/17303 Backport from mainline: 2004-08-31 Kaz Kojima * config/sh/sh.c (output_branch): Check the insn length possibly in the delayed slot. 2004-09-01 Zdenek Dvorak PR rtl-optimization/16408 * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes. 2004-09-01 Richard Henderson * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove. (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline. 2004-09-01 Jakub Jelinek * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup. 2004-09-01 Jakub Jelinek * fold-const.c (operand_equal_p): Require equal sign also for FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR. 2004-08-31 Jeff Law * gcse.c (remove_reachable_equiv_notes): Scan loops where the store expression is killed for REG_EQUAL/REG_EQUIV notes that need to be removed. 2004-08-30 Mark Mitchell Revert: 2004-08-29 Mark Mitchell PR rtl-optimization/16590 * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes. 2004-08-29 Mark Mitchell PR rtl-optimization/16590 * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes. 2004-08-26 Richard Henderson * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float modes. 2004-08-26 Kazuhiro Inaoka PR target/17119. * config/m32r.c (gen_compare): Use reg_or_int16_operand when checking for a valid constant, regardless of sign. 2004-08-25 Richard Henderson PR target/16974 * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting if the constant satisfies add_operand. 2004-08-25 Richard Henderson PR debug/10695 * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New. (alpha_expand_prologue): Handle >32-bit frames. Generate proper unwind info for >16-bit frames. 2004-08-25 Richard Henderson * config/alpha/alpha.c (alpha_cannot_force_const_mem): New. (TARGET_CANNOT_FORCE_CONST_MEM): New. 2004-08-25 Richard Earnshaw PR target/15927 * arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Don't need a secondary reload if CLASS is BASE_REGS. 2004-08-25 Richard Earnshaw * PR target/15948 * arm.md (bicsi3_cbranch): Add alternative to handle tying operands one and two. 2004-08-24 Richard Henderson PR target/16298 * config/i386/i386.c (legitimate_constant_p): Rework to not accept random codes within CONST. 2004-08-24 Paolo Bonzini PR target/17113 * config/i386/i386.md (movv16qi_internal): Fix typo. 2004-08-24 Kazuhiro Inaoka PR target/17093 * config/m32r/m32r.md (movsi_sda): Add SI mode specification to UNSPEC. 2004-08-24 Jonathan Wakely * doc/trouble.texi (C++ misunderstandings): Fix example code. 2004-08-23 Roger Sayle PR rtl-optimization/17078 * c-semantics.c (expand_unreachable_if_stmt): If the end of the specified statement list is reachable, always return a non-NULL pointer. If necessary, return error_mark_node. 2004-08-23 Mark Mitchell PR c/14492 * dwarf2out.c (loc_descriptor_from_tree): Robustify. PR c/16180 * jump.c (duplicate_loop_exit_test): If the location reached by the unconditional jump at the top of the loop is outside the loop, then do not treat it as the exit test. 2004-08-23 Janis Johnson Backports from mainline: 2004-02-11 Ziemowit Laski 2004-02-21 Ziemowit Laski 2004-02-27 Ziemowit Laski 2004-03-04 Ziemowit Laski 2004-03-20 Ziemowit Laski 2004-03-24 Ziemowit Laski 2004-05-11 Fariborz Jahanian 2004-07-23 Janis Johnson 2004-08-12 Janis Johnson 2004-08-12 Ben Elliston 2004-08-16 Janis Johnson * c-common.c (vector_size_helper): Remove; call reconstruct_complex_type() instead. * hooks.c (hook_constcharptr_tree_null): New hook. * hooks.h (hook_constcharptr_tree_null): New prototype. * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook. * target.h (mangle_fundamental_type): New target hook. * tree.c (reconstruct_complex_type): New function (formerly vector_size_helper() in c-common.c). (make_vector): Make externally visible. * tree.h (reconstruct_complex_type, make_vector): Add prototypes. * doc/extend.texi (AltiVec builtins): Document additional differences from the Motorola AltiVec PIM. * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document. * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options. * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it. * config/rs6000/altivec.h: #error out if '-maltivec' not specified. (vector, pixel, bool): #define to __vector, __pixel and __bool. Change vector to __vector (except for the `vector' macro itself). (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific portion of header. (__altivec_link_error_invalid_argument): Remove prototype; will use __builtin_altivec_compiletime_error("vec_*") instead. (vec_*): Fix/complete set of available operation overloads given the existence of distinct 'vector bool ...' and 'vector pixel' types; tighten cv-correctness of pointer arguments; in C, always check for correct argument types before macro expansion. (vec_splat_s8, vec_splat_s16, vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32): Change C++ definitions to accept a 'const int' argument; the prototypes already do. (vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_sld, vec_splat): Add prototypes, marked with always_inline attribute. * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro defining Darwin/PowerPC-specific '-f[no-]altivec' and '-W[no-]altivec-long-deprecated' switches. * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Pre-define '__vector', '__pixel' and '__bool' macros using '__attribute__((altivec(...)))' types. * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node, bool_int_type_node, pixel_type_node, bool_V16QI_type_node, bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node): New type nodes. (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for handling '-W[no-]altivec-long-deprecated'. (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'. (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin, altivec_expand_dst_builtin): Remove casts from integer literals. (altivec_expand_builtin): Likewise; handle expansion of new '__builtin_altivec_compiletime_error' function. (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel' types, and make them distinct from other vector types; register '__builtin_altivec_compiletime_error' function. (print_operand): For 'P', print a full target register name instead of merely its number. (rs6000_attribute_table): Add "altivec" attribute. (rs6000_handle_altivec_attribute): New function. (rs6000_common_init_builtins): Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char, v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char, v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char, v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char, v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to end in ..._int; change them to accept an int instead of a char as the last parameter. (altivec_expand_dst_builtin): Treat expansion as completed even if literal argument is invalid (so that other expansions are not tried in vain). (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point target hook at rs6000_mangle_fundamental_type. (rs6000_mangle_fundamental_type): New function. * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated' maps to). (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward declare. (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration. 2004-08-20 Jakub Jelinek PR target/16195 * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Make r30 fixed if TARGET_TOC && TARGET_MINIMAL_TOC. * config/rs6000/rs6000.c (first_reg_to_save): Pretend call_used_regs[30] is 0 if TARGET_TOC && TARGET_MINIMAL_TOC. (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise. 2004-08-17 Joseph S. Myers * c-decl.c (grokdeclarator): Allow for function definition where innermost declarator has attributes. 2004-08-17 Daniel Bornstein PR target/17019 * arm.md (addsi3_cbranch_scratch): Correct case labels. 2004-08-14 Roger Sayle David Billinghurst PR libgfortran/15930 * fixinc/inclhack.def (irix___generic1, irix___generic2): New. * fixinc/fixincl.x: Regenerate. * fixinc/tests/base/internal/math_core.h: New file 2004-08-14 Roger Sayle Bruce Korb * fixinc/inclhack.def (aix_syswait_2): New fix. * fixinc/fixincl.x: Regenerate. * fixinc/tests/base/sys/wait.h: Update for new test. 2004-08-14 Gerald Pfeifer Dimitri Papadopoulos-Orfanos Dave Korn * doc/install.texi (Building): Avoid duplicate reference to GNU make requirement. (*-*-solaris2*): Do not recommend GNU make any longer. Simplify. 2004-08-13 J"orn Rennecke * sh.md (cbranch define_delay) Use cond_delay_slot for non-anulled condition too. 2004-08-11 Mark Mitchell PR c++/16618 * ginclude/stddef.h (offsetof): Refine C++ definition. 2004-08-12 Alan Modra Merge from mainline. 2004-07-01 Alan Modra * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Rewrite. (function_arg): Use rs6000_arg_size rather than CLASS_MAX_NREGS in calculating gpr size for altivec. Simplify and correct rs6000_mixed_function_arg calls. Call rs6000_mixed_function_arg for ABI_V4 gpr case too. Fix off-by-one error in long double reg test. Generate the correct PARALLEL to handle long double for ABI_AIX 32-bit. Use this for -m32 -mpowerpc64 fpr case too. (function_arg_partial_nregs): Align before calculating regs left. Don't return info on partial fprs when we need info on gprs. Correct long double fpr off-by-one error. 2004-08-11 James E Wilson PR rtl-optimization/16490 * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and global_live_at_end for new basic block if already set for other blocks. 2004-08-07 Roger Sayle PR middle-end/16790 * fold-const.c (expand_muldiv_1) : Disallow local truncations, not just global truncations. 2004-08-07 Alan Modra * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28. 2004-08-04 Zack Weinberg PR 13956 * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New functions, broken out of dbxout_block. (dbxout_block): The block at depth 0 should get LBRAC/RBRAC stabs too, if it contains symbols. Use the begin_label and the Lscope label (emitted by dbxout_function_end) for the range of this block. (dbxout_function_decl): Always call dbxout_function_end. (dbxout_function_end): Return after emitting the "Lscope" symbol under the same conditions that this function formerly wasn't called. Add explanatory comments. 2004-08-03 Yossi Markovich Mostafa Hagog * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern. 2004-07-31 Andrew Pinski PR other/16842 * mkheaders.in (libsubdir): s/gcc-lib/gcc/. 2004-07-28 Aldy Hernandez * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to move_from_CR_eq_bit. Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ. * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to e500_flip_eq_bit. * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to output_e500_flip_eq_bit. * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to output_e500_flip_eq_bit. (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to output_e500_flip_eq_bit. Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit. (print_operand): case D. Get to EQ bit. 2004-07-28 Alan Modra * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards. 2004-07-24 Alexander Kabaev * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing. (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS. 2004-07-26 David Edelsohn PR target/16239 * config/rs6000/rs6000.md (movdi_internal64): Further disparage f->f. 2004-07-26 Richard Sandiford PR rtl-optimization/16643 * cfglayout.h (cfg_layout_initialize): Add a flags parameter. * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg. * basic-block.h (reorder_basic_blocks): Add a flags parameter. * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize. * loop-init.c (loop_optimizer_init): Pass 0 to cfg_layout_initialize. * rtl.h (tracer): Add a flags parameter. * tracer.c (tracer): Pass it to cfg_layout_initialise. * toplev.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks. (rest_of_handle_reorder_blocks): Update calls to tracer and reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate. (rest_of_handle_tracer): Pass 0 to tracer. 2004-07-24 Zack Weinberg * config/ia64/hpux.h: Do not disable TLS. 2004-07-24 Alexander Kabaev Zack Weinberg Jan Hubicka PR middle-end/15345 PR c/16450 * toplev.c (rest_of_handle_inlining): Set DECL_DEFER_OUTPUT on C nested functions as well. * tree-optimize.c (tree_rest_of_compilation): Don't clear decl rtls for deferred nested inlines. 2004-07-17 Eric Botcazou * libgcc2.c (__enable_execute_stack): New symbol. * libgcc-std.ver (GCC_3.4.2): New version. Inherit from GCC_3.4 and declare __enable_execute_stack. * mklibgcc.in (lib2funcs): Add _enable_execute_stack. * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy. * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into ENABLE_EXECUTE_STACK and ANSIfy. * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE. * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into ENABLE_EXECUTE_STACK. * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise. * config/i386/i386.c (x86_initialize_trampoline): Conditionalize on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE. * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into ENABLE_EXECUTE_STACK. * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise. * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise. * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise. * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise. * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE. (sparc64_initialize_trampoline): Likewise. * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro. 2004-07-16 Andris Pavenis PR preprocessor/16366 * internal.h (struct cpp_reader): New field dir_hash. * files.c (make_cpp_dir): Use dir_hash, not file_hash. (_cpp_init_files, _cpp_cleanup_files): Update for new field. 2004-07-15 James E Wilson Backport from mainline: 2004-02-19 Steve Ellcey * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro. * testsuite/gcc.dg/20040219-1.c: New test. 2004-07-15 Aldy Hernandez * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow unconditionally. * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove. 2004-07-14 James E Wilson PR target/16325 * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value and ! TARGET_64BIT, include REG_PARM_STACK_SPACE. 2004-07-14 Eric Botcazou Backport from mainline: 2004-07-13 Eric Botcazou PR target/13926 * config/sparc/sparc-protos.h (output_ubranch): New prototype. * config/sparc/sparc.c (output_ubranch): New function. * config/sparc/sparc.md (jump pattern): Use it. 2004-07-13 Richard Sandiford PR rtl-optimization/16380 * loop.c (check_dbra_loop): Sink comparison instructions if they do something other than set cc0. 2004-07-13 Eric Botcazou PR target/16494 * config/sparc/sparc.c (output_cbranch): Properly guard the code handling far branches with TARGET_V9. * config/sparc/sparc.md (length attribute): Document the side-effect of having a length greater or equal to 3. 2004-07-13 Eric Botcazou Lloyd Parkes PR target/15186 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified. 2004-07-13 Eric Botcazou Martin Sebor PR target/12602 * doc/invoke.texi (SPARC options): Document -threads and -pthreads on Solaris. 2004-07-13 Anthony Heading * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo. * configure: Rebuilt. 2004-07-12 Vladimir Makarov PR target/16445 * config/ia64/ia64.c (bundling): Don't count ignored insns. 2004-07-10 John David Anglin * pa.c (output_indirect_call): Only use %r2 as the link register in indirect calls with the long PA 2.0 pc-relative branch. 2004-07-10 James E Wilson * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp. 2004-07-10 Jakub Jelinek * Backport from mainline: 2004-07-08 Paolo Bonzini Jakub Jelinek * config/i386/i386.c (override_options): Enable SSE prefetches with -mtune, as long as we are compiling for i686 or higher. All i686 processors accept SSE prefetches as NOPS, some i586's don't. 2004-07-07 Jakub Jelinek * config/i386/i386.c (override_options): Don't set x86_prefetch_sse from -mtune= option. 2004-07-10 Jakub Jelinek PR tree-optimization/16372 * fold-const.c (build_range_check): Use TYPE_MODE's precision for enumerals. 2004-07-09 John David Anglin PR target/16459 * pa.c (output_indirect_call): Use %r2 as the link register when calling $$dyncall with a pc-relative branch. 2004-07-08 Gerald Pfeifer * doc/install.texi (Binaries): Mention OpenPKG. 2004-07-09 Eric Botcazou PR target/16416 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro. Override default settings to account for -m32 and -m64. 2004-07-08 Vladimir Makarov PR target/16414 * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison of asm_noperands result. 2004-07-08 Eric Botcazou PR target/16430 * config/sparc/sparc.c (function_value): In 64-bit mode, return the aggregates larger than 16 bytes like unions. 2004-07-08 Eric Botcazou PR target/16199 * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When 'temp' is zero, generate new pseudos as needed and emit the sequence of insns in single-assignment form. Resync comments with code. (sparc_emit_set_const64): Pass zero as 'temp' argument to above function before reload. 2004-07-07 Richard Sandiford PR target/16407 * config/mips/mips-protos.h (mips_declare_common_object): Declare. * config/mips/mips.c (mips_declare_common_object): New function, mostly split out from... (mips_output_aligned_decl_common): ...here. * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of... (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition. * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this rather than ASM_OUTPUT_LOCAL. Call mips_declare_common_object. 2004-07-07 Jason Merrill PR c++/15815 * doc/extend.texi (C++ Interface): Correct information and discourage use. 2004-07-07 Andreas Schwab * config/ia64/ia64.md: Define new attribute "empty". (prologue_use, nop_x, insn_group_barrier): Set it. * config/ia64/ia64.c (ia64_reorg): When looking for trailing call skip over "empty" insns. 2004-07-07 Vladimir Makarov PR target/16130 PR target/16142 PR target/16143 * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm insn. 2004-07-06 Kazuhiro Inaoka PR target/1679. * config/m32r/m32r.c (m32r_function_symbol): New function: Generate a symbol name RTX with the correct m32r specific flags set. (block_move_call): Use new function to generate correct symbol. * config/m32r/m32r-protos.h: Add prototype for new funcion. * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new function. 2004-07-07 Richard Sandiford PR target/16357 * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs to mips_expand_unaligned_load, mips_expand_unaligned_store, and move_by_pieces. 2004-07-07 Richard Sandiford PR target/15869 * config/mips/mips.c (mips_avoid_hazards): Call split_all_insns_noflow. 2004-07-06 Mark Mitchell * doc/include/gcc-common.texi: Increment version number. * version.c (version_string): Likewise. 2004-07-06 Joseph S. Myers * doc/sourcebuild.texi: Use semicolons instead of commas in section title. 2004-07-06 Joseph S. Myers * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi, doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi, doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi, doc/portability.texi, doc/trouble.texi: Avoid some first-person references and patronizing comments. Based on printed manual. * doc/invoke.texi: Don't reference fortran@gnu.org. * doc/trouble.texi (Warning when a non-void function value is ignored): Rewrite. From Russ Allbery and Chris Devers. 2004-07-06 Joseph S. Myers * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi, doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Use terminology "testsuite" and "enumerated". 2004-07-06 Eric Christopher PR rtl-optimization/14700 Backport from mainline: 2004-06-30 Zack Weinberg * combine.c (distribute_notes): Don't look at global_regs for pseudos. 2004-06-24 Eric Christopher * combine.c (distribute_notes): Don't delete sets to global register variables. 2004-07-04 Gerald Pfeifer * doc/contrib.texi (Contributors): Adjust link for GNU Classpath. 2004-07-01 Release Manager * GCC 3.4.1 released. 2004-06-28 Neil Booth PR preprocessor/16192 PR preprocessor/15913 PR preprocessor/15572 * cppexp.c (_cpp_parse_expr): Handle remaining cases where an expression is missing. * cppinit.c (post_options): Traditional cpp doesn't do // comments. * doc/cpp.texi: Don't document what we do for ill-formed expressions. * doc/cppopts.texi: Clarify processing of command-line defines. 2004-06-28 Richard Sandiford PR target/16176 * config/mips/mips.c (mips_expand_unaligned_load): Use a temporary register for the destination of the lwl or ldl. 2004-06-25 Philip Blundell PR wrong-code/15089 * loop.c (scan_loop): Do not move user-specified register assignments. 2004-06-25 Mark Mitchell PR wrong-code/16129 * alias.c (get_alias_set): Adjust setting of DECL_POINTER_ALIAS_SET for pointers to aggregates. 2004-06-25 Richard Sandiford PR target/16144 * config/mips/mips.md (divsf, divdf): Don't FAIL if the first operand is 1.0; force it into a register instead. 2004-06-24 Alan Modra * calls.c (expand_call): Call INIT_CUMULATIVE_ARGS earlier, and pass raw n_named_args to it. 2004-06-22 Richard Henderson PR middle-end/16026 * function.c (assign_parms): Don't abort for overaligned PARALLEL. 2004-06-21 Kelley Cook PR target/15551 * config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE. (allocate_stack_worker): Make unspec_volatile. (allocate_stack_worker_rex64): Likewise. (allocate_stack_worker_postreload): Likewise. (allocate_stack_worker_rex64_postreload): Likewise. 2004-06-21 John David Anglin PR rtl-optimization/14782 * pa.c (emit_move_sequence): Use SFmode for 4-byte modes when doing the address checks for secondary reloads for loads from and stores to floating-point registers. * pa.h (EXTRA_CONSTRAINT, case T): Use SFmode for 4-byte modes in the address check. Move work around for ELF32 targets to GO_IF_LEGITIMATE_ADDRESS. (GO_IF_LEGITIMATE_ADDRESS): Require constant offsets to be correctly aligned for DImode loads and stores. Don't allow long SFmode displacements on ELF32. 2004-06-21 Richard Henderson PR rtl-opt/16114 * cse.c (merge_equiv_classes): Also rehash in response to delete_reg_equiv changes. (rehash_using_reg): Don't exclude REGs from rehashing. 2004-06-21 Richard Sandiford PR rtl-optimization/15159 * tree.c (unsafe_for_reeval): Return 2 for TRY_CATCH_EXPRs. 2004-06-19 Richard Henderson PR target/15941 * function.c (assign_parms): If not padding upward or intentionally forcing upward padding, take offset_rtx into account when determining the alignment for stack_parm. 2004-06-19 Richard Henderson PR target/15550 * ifcvt.c (noce_try_move): Recognize all generated instructions. 2004-06-19 Andrew Pinski PR target/10129 * config/darwin.c (darwin_encode_section_info): When the decl has a DECL_INITIAL, it is only defined also when it is not a common. 2004-06-17 Zack Weinberg Bug 14610 * Makefile.in (min-insn-modes.o): Correct dependencies. * real.c (encode_ieee_extended, decode_ieee_extended): Always produce/consume 12-byte little-endian Intel format. (encode_ieee_extended_128, decode_ieee_extended_128): Delete. (encode_ieee_extended_motorola, decode_ieee_extended_motorola) (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96) (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128): New functions which convert between 12-byte little-endian Intel format and the desired format. (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format) (ieee_extended_intel_96_format, ieee_extended_intel_128_format): Update. 2004-06-16 James E Wilson PR c++/14808 * config/i386/cygwin.h (TARGET_IS_PE_COFF): Delete duplicate macro. 2004-06-16 Bernardo Innocenti Backport from mainline: 2004-06-16 Bernardo Innocenti PR target/13292 * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY on -msoft-float. (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for 68040 and soft-float. * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881 in the TARGET_68040_ONLY case. 2004-06-16 Vladimir Makarov PR target/15653 * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops after shifts before asm. 2004-06-15 Chris Demetriou * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove definition. * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove #undef and #if 0'd definition. 2004-06-15 Kazuhiro Inaoka * config/m32r/m32r.h (RETURN_ADDR_RTX): Define. (INCOMING_RETURN_ADDR_RTX): Define. * config/m32r/m32r-protos.h (m32r_return_addr): Added. * config/m32r/m32r.c (m32r_exppand_prologue): Changed for __builtin_return_address(0). (m32r_return_addr): Added for __builtin_return_address(0). (m32r_reload_lr): Ditto. * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss. 2004-06-15 Giovanni Bajo * gccbug.in: Update optimization -> tree-optimization/rtl-optimization. 2004-06-14 Eric Botcazou * real.c: Fix bit count in head comment. 2004-06-14 Jakub Jelinek PR middle-end/15945 * simplify-rtx.c (simplify_binary_operation): Don't optimize out Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math. 2004-06-14 Jakub Jelinek PR target/15178 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define. 2004-06-14 Alan Modra * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu for power5 and rs64a. Correct condition for default. Correct power3, 620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries. Add -many. 2004-06-13 Alan Modra Apply mainline 2004-01-27 Alan Modra * config/rs6000/rs6000.h: Correct target_flags free bits comment. (PREDICATE_CODES): Remove duplicate. * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define. (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL. (MASK_PROFILE_KERNEL): Adjust define. 2004-06-13 Hans-Peter Nilsson PR rtl-optimization/15296 * reorg.c (fill_simple_delay_slots): Use next_real_insn when getting last consecutive label at a branch. (relax_delay_slots): Similar, near top of loop. 2004-06-12 Andreas Jaeger * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4. * libgcc-darwin.ver: Likewise. 2004-06-11 Bernardo Innocenti PR target/8309 PR target/13312 Backport from mainline: 2004-05-27 Peter Jakubek * reload.c (find_reloads): Force reload for pseudo registers on big endian machines. 2004-06-11 J"orn Rennecke * sh.c (dump_table): New argument start. Changed caller. (fixup_mova): New function. (find_barrier): Use it. (sh_reorg): Likewise. Check for CODE_FOR_casesi_worker_2. If the label a mova refers to is above the mova itself, change the mova into a load. * sh.md (*casesi_worker): Rename to: (casesi_worker_1). (casesi_worker_2): New insn. 2004-06-11 Hartmut Penner Backport from mainline: * config/rs6000/rs6000.c (output_vec_const_move): Find all cases of EASY_VECTOR_15_ADD_SELF. (easy_vector_constant_add_self): Accept all vector constant loadable by vsplt* and vadd*. (easy_vector_same): Use easy_vector_splat_const. (easy_vector_const): Use easy_vector_splat_const. (easy_vector_splat_const): New function. (gen_easy_vector_constant_add_self): New function. * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self): New prototype. * config/rs6000/altivec.md (movv4si splitter): Change to emit move insn with halfed vector constant. (*movv8hi splitter): Likewise. (*movv16qi splitter): Likewise. 2004-06-10 Joseph S. Myers * doc/sourcebuild.texi (Front End): Add details of more installation documentation required. 2004-06-10 Vladimir Makarov PR target/15653 * haifa-sched.c (schedule_block): Finish cycle after issuing asm insn. 2004-06-10 Volker Reichelt PR web/15263 * doc/install.texi: Remove superfluous linebreak. 2004-06-10 Bernardo Innocenti PR target/13803 Backport from mainline: 2004-05-05 Peter Barada * config/m68k/m68k.h(EXTRA_CONSTRAINT): Add 'U' for register offset addressing. * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of movsi, movhi, movqi insn patterns. 2004-06-10 Alan Modra Apply from mainline: 2004-03-12 Jakub Jelinek * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add prototype. * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New. * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define. 2004-06-10 Jakub Jelinek * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a leaf function without unwind info at RP 0. 2004-06-10 Alan Modra PR target/15191 2004-05-15 Alan Modra * config/rs6000/rs6000.c (rs6000_va_arg ): Don't use UNITS_PER_WORD to calculate gpr size. Re-instate code to set reg count to 8 to handle n_reg > 2. 2004-05-10 Alan Modra * config/rs6000/rs6000.c (function_arg_boundary): Always align AltiVec vectors. (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec vectors by refererence. Align the same for TARGET_64BIT to a 16 byte boundary. Remove useless code. Add function comment. (function_arg): Similarly. Move gpr rs6000_mixed_function_arg call to where it belongs. (function_arg_partial_nregs): Return true for all TARGET_32BIT -mabi=no-altivec AltiVec vectors. Fix debug output. (rs6000_va_arg): Adjust for AltiVec change. 2004-05-10 Alan Modra * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4 when size is 8 bytes. (function_arg_advance): Account for stack space used by AltiVec args when -mabi=altivec. Simplify alignment calculations. For ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec. (function_arg): Similarly. (function_arg_pass_by_reference): True for ABI_V4 AltiVec when not AltiVec ABI. (rs6000_va_arg): Correct fp arg test. Adjust for AltiVec change. Correct alignment, and align before testing reg count. Remove TREE_THIS_VOLATILE from reg. Don't emit unused labels. (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and TARGET_FPRS here.. (rs6000_function_value): .. not here before call. 2004-05-07 Alan Modra * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either TARGET_ALTIVEC or TARGET_ALTIVEC_ABI. * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise. (STACK_BOUNDARY): Delete. 2004-06-10 Alan Modra PR target/14960 2004-04-24 Alan Modra * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size to non_fixed_size, and leave out fixed_size from the sum. (generate_set_vrsave): Correct clobbers. (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE. (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI. (rs6000_libcall_value): Likewise. * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise. (FUNCTION_ARG_REGNO_P): Likewise. 2004-06-10 Alan Modra PR target/14567 2004-03-13 Alan Modra * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete. (HARD_REGNO_MODE_OK): Disallow TFmode for fp31. * config/rs6000/rs6000.c (rs6000_arg_size): New function. Update all users of RS6000_ARG_SIZE. (function_arg_advance): Count fregno using mode size. (function_arg): Handle long double split over regs and memory. (function_arg_partial_nregs): Likewise. (rs6000_va_arg): Repackage complex args. 2004-02-23 Fariborz Jahanian * config/rs6000/rs6000.c (function_arg): call to rs6000_mixed_function_arg for DFmode moved to allow normal DFmode incoming register assignment. 2004-06-09 Mark Mitchell Revert: PR c++/15815 2004-06-07 Mark Mitchell * doc/extend.texi: Deprecate #pragma interface and #pragma implementation. 2004-06-08 Zdenek Dvorak PR rtl-optimization/15761 * cfgloopanal.c (count_strange_loop_iterations, count_loop_iterations): Use gen_int_mode instead of GEN_INT. 2004-06-08 Roger Sayle PR c/14649 * c-typeck.c (require_constant_value, require_constant_elements): Move declarations to the top of the file. (build_function_call): If we require a constant value, fold with fold_initializer. If the result is a constant, and the function wasn't called using __builtin_foo, issue a pedantic warning. (build_unary_op): If we require a constant value, fold tree with fold_initializer. (build_binary_op): Use require_constant_value to determine whether to call fold or fold_initializer. 2004-06-08 Richard Henderson PR middle-end/15228 * function.c (assign_parms): Always set_mem_align with the computed FUNCTION_ARG_BOUNDARY. Don't clear stack_parm if !STRICT_ALIGNMENT. 2004-06-08 Vladimir Makarov PR target/15598 * config/ia64/ia64.c (bundling): Add missed TYPE_A. 2004-06-08 Zdenek Dvorak PR rtl-optimization/15717 * config/i386/i386.c (legitimate_constant_p): Do not allow x - symbol_ref. 2004-06-07 James E Wilson PR target/15569 * config/ia64/ia64.md (call_value_nogp): Add constraints for op0. (vall_value_gp): Likewise. 2004-06-07 Dan Kegel PR c++/14808 * config/i386/cygwin.h (TARGET_IS_PE_COFF): New. * config/i386/cygming.h (TARGET_IS_PE_COFF): New. 2004-06-07 Eric Botcazou PR target/15783 * config/sparc/sparc.c (function_arg_union_value): Add 'mode' parameter. Enumerate the registers inside the PARALLEL. (function_arg): Adjust call to function_arg_union_value. (function_value): Likewise. 2004-06-07 John David Anglin * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands when generating PIC code. * pa.md: Disable the peephole2 patterns that generate indexed floating-point stores when indexing is disabled. 2004-06-07 Joseph S. Myers PR c/14765 * c-parse.in (compstmt_primary_start): Set last_expr_type to NULL_TREE. 2004-06-07 Mark Mitchell PR c++/15815 * doc/extend.texi: Deprecate #pragma interface and #pragma implementation. 2004-06-07 Richard Henderson PR rtl-opt/15193 * expmed.c (extract_bit_field): Fix vector_extract return. 2004-06-07 Mark Mitchell PR c++/15337 * c-common.c (c_sizeof_or_alignof_type): Use more detailed error message. 2004-06-06 Stephane Carrez PR target/14542 * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid a live change of a register after peephole replacement. 2004-06-06 Stephane Carrez PR target/14457 * config/m68hc11/m68hc11.c (splitable_operand): New predicate. * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare. * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it. (inhibit_libc): Must define. * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand. ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise. ("xorhi3"): Likewise. 2004-06-05 David S. Miller * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set. * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise. 2004-06-04 Eric Christopher Backport from mainline: 2004-06-02 Eric Christopher * c-typeck.c (common_type): Don't lose type qualifiers when creating new variants. 2004-06-03 Bernardo Innocenti PR target/15782 Backport from mainline: 2004-06-01 Peter Barada Peter Jakubek * config/m68k/m68k.c(m68k_output_mi_thunk): For ColdFire, use %d0 as a scratch to perform an add to memory. 2004-06-01 Paul Eggert PR target/15626 * doc/install.texi (sparc-sun-solaris2*): Document messages issued by the Sun linker in conjunction with the Sun assembler. (sparc-sun-solaris2.7): Update revision info for Sun patch 106950. 2004-06-01 Nicola Pero PR objc/7993 * objc-act.c (is_private): Do not emit the 'instance variable %s is declared private' error. (is_public): Emit the error after calling is_private. (lookup_objc_ivar): If the instance variable is private, return 0 - the instance variable is invisible here. 2004-06-01 Eric Botcazou * doc/invoke.texi (-static-libgcc): Explicitly mention non-GNU linkers. 2004-05-31 Kaz Kojima PR target/13250 Backport from mainline: 2004-05-28 Kaz Kojima * config/sh/sh.md (rotlsi3): Use emit_move_insn. 2004-05-31 H.J. Lu PR middle-end/15666 * cgraph.c (cgraph_remove_node): Don't call htab_clear_slot if we can't find the slot. Abort if we can't find slot and the node isn't for a builtin function. 2004-05-31 Roger Sayle PR middle-end/15069 * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0" into "X < 0" (where C is the signbit) if X's type is a full mode. 2004-05-31 Joseph S. Myers PR c/15749 * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for misuses of structures with flexible array members if in_system_header. 2004-05-31 Eric Botcazou PR target/15693 * config/sparc/sparc.c (compare_operand): New predicate. * config/sparc/sparc.h (PREDICATE_CODES): Add it. * config/sparc/sparc.md (cmpsi expander): Use it. If the first operand is a ZERO_EXTRACT and the second operand is not zero, force the former to a register. (cmpdi expander): Likewise. 2004-05-31 Danny Smith * c-incpath.c (add_path): Canonicalize paths to use '/' if HAVE_DOS_BASED_FILESYSTEM. 2004-05-28 John David Anglin PR bootstrap/14671 * alias.c (init_alias_analysis): Allocate alias_invariant array with ggc_calloc instead of xrealloc. (end_alias_analysis): Don't free alias_invariant. 2004-05-28 DJ Delorie * stor-layout.c (place_field): Revert erroneous commit. 2004-05-28 Nick Clifton Bug 14093 * config/sh/sh-protos.h (sh_promote_prototypes): Declare. * config/sh/sh.c (sh_promote_prototypes): Remove declaration. Delete static from definition. * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call. 2004-05-27 Kaz Kojima Backport from mainline: * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific libgcc-std.ver. * config/sh/libgcc-std.ver: New file. 2004-05-27 Olivier Hainque * expr.c (store_constructor): Restore sanity check on the size of the type before clearing. 2004-05-27 Alan Modra PR target/14478 * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero. 2004-05-26 Aldy Hernandez PR/14924 * config/rs6000/rs6000.c (spe_expand_stv_builtin): New. 2004-05-23 Joseph S. Myers * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi: Update based on printed manual. Enable setting of offsets for FSFPRINT and move it to gcc-common.texi. * doc/gcc.texi: Update FSF printing details. * doc/gccint.texi: Remove FSF printing details. 2004-05-21 Jakub Jelinek * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH, override sparc.h definition. 2004-05-20 Jakub Jelinek * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3. 2004-05-18 John David Anglin PR target/15202 * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount register to general register for DI, SI, HI and QI modes. Remove move to shift amount register in DF mode. 2004-05-18 Ulrich Weigand PR middle-end/15054 * expr.c (expand_expr_real): Do not call preserve_temp_slots on a TARGET_EXPR temp. * function.c (assign_stack_temp_for_type): Set 'keep' flag for TARGET_EXPR temp slots. 2004-05-18 Kaz Kojima PR optimization/15100 Backport from mainline: 2004-05-11 Kaz Kojima * combine.c (distribute_notes): Don't create a dangling REG_LIBCALL/REG_RETVAL note. 2004-05-17 H.J. Lu Backport from mainline PR target/15301 PR target/15302 2004-05-17 Jan Hubicka * i386.c (construct_container): Do not produce BLKmode registers. (classify_argument): Properly compute alignment of complex types. 2004-05-15 Joseph S. Myers * doc/extend.texi: Update WG14 URL. 2004-05-11 Aldy Hernandez * config/rs6000/spe.md (spe_evneg): Rename to negv2si2. * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to negv2si2. 2004-05-10 Kaz Kojima PR target/15130 Backport from mainline: * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype. * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue into account. Compute the correct number of general registers for the return value. Generate a special push/pop sequence when failing to get a temporary register for non SHmedia epilogue. (sh_expand_epilogue): Add an argument to show whether it's for sibcall or not. Set the 3rd argument of output_stack_adjust to -1 if needed. (sh_need_epilogue): Call sh_expand_epilogue with 0. * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue with 1. (epilogue): Call sh_expand_epilogue with 0. 2004-05-09 Aldy Hernandez * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec. 2004-05-08 Eric Botcazou * doc/install.texi (sparc-sun-solaris2*): Document bootstrap problems with earlier versions of the GNU compiler. 2004-05-07 Eric Botcazou PR c++/14962 * c-pragma.c (handle_pragma_redefine_extname): Only change the assembler name of FUNCTION_DECLs and VAR_DECLs. 2004-05-07 Loren James Rittle * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition. * config/arm/freebsd.h: Likewise. * config/ia64/freebsd.h: Likewise. * config/sparc/freebsd.h: Likewise. 2004-05-06 Richard Henderson * stmt.c (parse_output_constraint): Don't warn for read-write memory operand. 2004-05-06 Jan Hubicka PR c/15004 * function.c (do_warn_unused_parameter): Break out form ... (expand_function_end): ... here; warn only when not using cgraphunit. * function.h (do_warn_unused_parameter): Declare. * cgraphunit.c: Include function.h. (cgraph_finalize_function): Do unused parameter warning. * Makefile.in (cgraphunit.o): Depend on function.h 2004-05-05 H.J. Lu PR target/15290 * config/i386/i386.c (ix86_split_to_parts): Use real_to_target instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE. 2004-05-03 Rainer Orth * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6. * fixinc/fixincl.x: Regenerate. 2004-05-02 Josef Zlomek * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug message before redirecting the edge. 2004-05-02 Eric Botcazou PR optimization/15112 * reload1.c (reload): Don't record unchanging memory locations. 2004-04-30 Rainer Orth PR other/1963 * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define. 2004-04-30 David Edelsohn Backport from mainline: 2004-04-19 David Edelsohn * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver fix information. 2004-04-17 Alan Modra PR target/14715 * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree with STARTING_FRAME_OFFSET. 2004-04-07 David Edelsohn * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF to power4 and power5 entries. 2004-04-05 David Edelsohn * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special symbol handling. 2004-03-30 Hartmut Penner PR 11591 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow any offset to argument pointer in no-strict case. 2004-03-25 David Edelsohn * config/rs6000/rs6000.c (rs6000_always_hint): New variable. (rs6000_sched_groups): New variable. (processor_target_table): Add power5. (rs6000_override_options): Set rs6000_sched_insert_nops, rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority from rs6000_sched_groups. (output_cbranch): Use rs6000_always_hint. (rs6000_variable_issue): Use rs6000_sched_groups. (rs6000_adjust_cost): Add CPU_POWER5. (is_microcoded_insn): Use rs6000_sched_groups. (is_dispatch_slot_restricted): Use rs6000_sched_groups. Return 2 for POWER5 cracked instructions. (is_cracked_insn): Use rs6000_sched_groups. (is_branch_slot_insn): Use rs6000_sched_groups. (rs6000_issue_rate): Add CPU_POWER5. (rs6000_sched_finish): Use rs6000_sched_groups. (rs6000_rtx_costs): Add PROCESSOR_POWER5. * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5. (DEFAULT_SCHED_COSTLY_DEP): Delete. (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete. (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete. * config/rs6000/rs6000.md (define_attr "cpu"): Add power5. * config/rs6000/power5.md: New file. * doc/invoke.texi: Add power5 option. 2004-03-17 Fariborz Jahanian * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size for mixed mode. (rs6000_emit_prologue): Ditto. (rs6000_emit_epilogue): Ditto. * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT macro for mixed mode. 2004-03-04 David Edelsohn GP * config/rs6000/rs6000.c (output_function_profiler): Append @plt when compiling PIC. 2004-04-30 Paolo Bonzini * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to vec_sububs. [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, eliminating duplicates. 2004-04-29 Richard Sandiford PR target/15189 * config/mips/mips.md (load_df_low): Use default length. (load_df_high, store_df_high): Likewise. 2004-04-29 Philip Blundell * Merge from trunk: 2004-04-20 Paul Brook * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p. 2004-04-29 Aldy Hernandez PR/12028 * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons of floats on the E500. (branch_positive_comparison_operator): Do not allow NE even on the E500. (ccr_bit): Remove E500 specific code. Remove miscompilation warning for e500. (print_operand): Add 'c' and 'D'. (rs6000_generate_compare): Rewrite to generate correct rtl. (rs6000_emit_sCOND): Handle E500. (output_cbranch): Adjust for changes in rs6000_generate_compare. (output_e500_flip_gt_bit): New. (rs6000_override_options): Error when user wants altivec and e500 instructions. * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant. (move_from_CR_gt_bit): New. (cceq_ior_compare): Name previously unnamed pattern. Disable for E500. (cceq_rev_compare): Name previously unnamed pattern. Allow for E500. * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec. (tstsfeq_gpr): Same. (cmpsfgt_gpr): Same. (tstsfgt_gpr): Same. (cmpsflt_gpr): Same. (tstsflt_gpr): Same. (e500_cceq_ior_compare): New. (e500_flip_gt_bit): New. * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Protoize. 2004-04-28 Ben Elliston * doc/invoke.texi (Objective-C Dialect Options): Don't prefix options with "-" in the option index. (SPARC Options): Likewise. (M32R/D Options): Likewise. 2004-04-28 Joseph S. Myers * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition calling install-info on $(DESTDIR)$(infodir)/dir already being present. 2004-04-28 H.J. Lu PR target/15084 * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode and renamed to movdi_insv_1_rex64. (insv): Support SImode for 32bit and DImode for 64bit. 2004-04-27 John David Anglin PR debug/14829 * dwarf2out.c (reg_number): Rename to dbx_reg_number. Adjust all callers. (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register number for indexing hard_regno_nregs array. 2004-04-27 Bob Wilson * config/xtensa/xtensa.c (call_insn_operand): Check SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P. * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise. * config/xtensa/xtensa.md (call, call_value): Likewise. 2004-04-26 Zack Weinberg * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++. * config/pa/pa-hpux10.h: Likewise. * config/pa/pa-hpux11.h: Likewise. 2004-04-23 Eric Botcazou PR optimization/13985 * cfgloopmanip.c (fix_loop_placements): New prototype. Call fix_bb_placements on the preheader of loops that have been reparented. (remove_path): Adjust call to fix_loop_placements. 2004-04-23 Nick Clifton * Import this patch from mainline: 2004-04-16 Kazuhiro Inaoka * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian bug. (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN, TARGET_DEFAULT): Changed. Ditto. (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT, TARGET_ENDIAN_DEFAULT): Added. Ditto. * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted. (TARGET_ENDIAN_DEFAULT): Added. 2004-04-22 Per Bothner * cppinit.c (cpp_read_main_file): Return NULL rather than false. Fixes PR preprocessor/15067. 2004-04-22 Ulrich Weigand * function.c (thread_prologue_and_epilogue): Move NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes before the epilogue. 2004-04-22 Ulrich Weigand * dbxout.c (dbxout_symbol_location): Do not output references to optimized-out constant pool symbols. 2004-04-22 Ulrich Weigand * expr.c (store_constructor): Use gen_int_mode to correctly sign-extend CONST_INT value. 2004-04-22 Ulrich Weigand * combine.c (if_then_else_cond): Check for NULL return value of simplify_gen_subreg. 2004-04-22 Ulrich Weigand * reload1.c (emit_reload_insns): Set reg_has_output_reload to one after setting reg_last_reload_reg for optional output reloads. 2004-04-22 John David Anglin * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of SAR register. Fix comment. (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register (%cr11). 2004-04-21 Kaz Kojima Backport from mainline: 2004-04-05 Kaz Kojima * config/sh/sh.c (prepare_move_operands): Use emit_call_insn when the TLS address is generated by a function call. * config/sh/sh.md (tls_global_dynamic): Use a call expression. (tls_local_dynamic): Likewise. 2004-04-21 H.J. Lu PR target/14813 Backport from mainline: * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux in .init_array section to ... * config/ia64/crtbegin.asm: Here. * config/ia64/crtend.asm: Mark __do_global_ctors_aux global and hidden if HAVE_INITFINI_ARRAY is defined. 2004-04-21 Richard Henderson PR bootstrap/14671 * alias.c (alias_invariant, alias_invariant_size): Mark GTY. (reg_known_value, reg_known_value_size): Likewise; make static. (reg_known_equiv_p): Make static. (clear_reg_alias_info): Update for new indexing. (get_reg_known_value, set_reg_known_value): New. (get_reg_known_equiv_p, set_reg_known_equiv_p): New. (canon_rtx): Use them. (init_alias_analysis): Likewise. Allocate reg_known_value with gc. Don't play queer offsetting games with reg_known_value and reg_known_equiv_p. (end_alias_analysis): Don't free reg_known_value. * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare. * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove. (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new functions instead. 2004-04-21 John David Anglin * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld. 2004-04-21 Rainer Orth * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO download URL. 2004-04-21 H.J. Lu PR target/14857 Backport from mainline: * config/ia64/ia64.c (ia64_encode_section_info): Don't prod global register variables. 2004-04-21 H.J. Lu * PR target/14723 Backport from mainline: 2004-02-14 Jan Hubicka * config.gcc: Add support for nocona/prescott/pentium-m/pentium3m /pentium4m. * i386.c (override_options): Add support for new CPUs. * i386.h (TARGET_CPU_DEFAULT_NAMES): New names. (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New constants. * invoke.texi: Extend documentation of -mtune/-march for new CPUs. 2004-04-20 Mark Mitchell * version.c (version_string): Mark as prerelease. * doc/include/gcc-common.texi: Bump version number. 2004-04-18 Release Manager * GCC 3.4.0 released. 2004-04-18 Alan Modra PR bootstrap/14992 * configure.ac: Define HAVE_LD_AS_NEEDED only for linux. * configure: Regenerate. * gcc.c (init_gcc_specs): Revert earlier change. 2004-04-18 Mark Mitchell PR other/14918 * doc/invoke.texi (-fprofile-generate): Document requirement to use -fprofile-generate when linking. PR bootstrap/14992 * gcc.c (init_gcc_specs): Only honor HAVE_LD_AS_NEEDED on GNU/Linux. * doc/extend.texi (Strong Using): Warn users against using this feature. 2004-04-17 Richard Sandiford * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK. * configure: Regenerate. 2004-04-17 Rainer Orth * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2 debugging on Solaris 7 and up. 2004-04-16 Rainer Orth * doc/install.texi (Specific, mips-sgi-irix5): Reflect working IRIX 5 port. Remove -save-temps workaround, handled automatically. Require GNU binutils 2.15 for debugging. Remove SGI make warnings since GNU make is now required. (Specific, mips-sgi-irix6): Some markup fixes. Describe MIPSpro C problems and workarounds. Mention working O32 ABI support. Recommend GNU as 2.15 for O32 with debugging. Remove description of fixed structure pass/return bug. 2004-04-16 Rainer Orth * aclocal.m4 (gcc_AC_PROG_GNAT): Check if ${CC} produces object file for Ada compilation. Fix gcc_cv_cc_supports_ada spelling. * configure: Regenerate. 2004-04-14 Zack Weinberg PR 14936 Backport from mainline: 2004-03-12 Matt Austern * varasm.c (make_decl_one_only): Don't use DECL_COMMON if we're compiling for a SUPPORTS_ONE_ONLY target. 2004-04-09 Zack Weinberg * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at mode argument. * config/ia64/ia64.c (ia64_hpux_file_end): Check TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME. 2004-04-08 Mark Mitchell * doc/invoke.texi (Precompiled Headers): Warn about known problems. 2004-04-08 Joel Sherrill PR ada/14538 * ada/5rosinte.adb: Remove fake mprotect() body. * ada/5rosinte.ads: Add SA_SIGINFO. Make pthread_key_t a type which can be set since Finalize_TCB in 7staprop.adb does not go through the Set_Specific interface. * ada/5rtpopsp.adb: Rewrite to use new interface. * ada/init.c: Reorder so the simple single OS conditional __rtems__ is tested before more complex ones which mix UNIX and embedded systems in the conditional. 2004-04-08 Joel Sherrill PR ada/14665 * ada/osint.adb (Find_Program_Name): Rework to properly handle filenames which end in .exe or have versioning suffixes like VMS. 2004-04-08 Joseph S. Myers * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a, rpc_xdr_lvalue_cast_b): New fixes. * fixinc/fixincl.x: Regenerate. * fixinc/tests/base/rpc/xdr.h: Add new tests. 2004-04-06 Mark Mitchell * config/darwin.h (LINK_COMMAND_SPEC): Change c++filt3 to c++filt. 2004-04-05 John David Anglin * doc/install.texi: Update HP-UX 11 installation procedure. 2004-04-05 Jakub Jelinek John David Anglin PR optimization/13424 (hppa), bootstrap/14462, c/14828 * pa.md: Use replace_equiv_address to retain the attributes of the memory operands used in the split and peephole2 patterns for optimizing the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns. 2004-04-05 Alexandre Oliva * cppinit.c (cpp_read_main_file): Return file name obtained by read_original_filename. Missed in 2004-02-04's check in to 3.4 branch by Per Bothner. 2004-04-05 Eric Botcazou * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG unconditionally. (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally. 2004-04-04 Mark Mitchell PR c++/14804 * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to RECORD_TYPEs. 2004-04-02 Jakub Jelinek Eric Botcazou PR optimization/13424, optimization/12419 * explow.c (maybe_set_unchanging): Revert 2003-04-07 patch. Set RTX_UNCHANGING_P even for read-only DECL_EXTERNAL decls. * expr.c (store_constructor): When clearing aggregate because of an incomplete or mostly zero constructor, do the clearing without /u flag and then emit a blockage. 2004-04-01 Alan Modra Jakub Jelinek * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with -lgcc --as-needed -lgcc_s --no-as-needed by default. * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed. * configure: Rebuilt. * config.in: Rebuilt. * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT). (stage2-start, stage3-start, stage4-start): Likewise. (stageprofile-start, stagefeedback-start): Likewise. 2004-04-01 Jakub Jelinek * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0. * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1. * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1. * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1. (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS. * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS. * config.gcc (sparc-*-linux*): Revert 2004-03-23 change. * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise. * config/sparc/t-linux: Removed. 2004-04-01 Jakub Jelinek PR c++/14755 * fold-const.c (fold) : Properly compute newconst in "bitfld++ == const" to "++bitfld == const + incr" transformations. 2004-03-30 Aldy Hernandez PR 14219 * c-typeck.c (build_binary_op): Do not allow comparisons of vectors. 2004-03-26 Ian Lance Taylor PR target/14206 * doc/install.texi (Specific): Document that exec-shield-randomize interferes with precompiled headers. 2004-03-26 Richard Henderson PR 11527 * c-typeck.c (pop_init_level): Emit pending init elements earlier rather than later. 2004-03-25 Jakub Jelinek * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file. * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set. * config/sparc/t-linux: New file. 2004-03-25 Jan Hubicka PR debug/13974 * cfgrtl.c (try_redirect_by_replacing_jump, force_nonfallthru_and_redirect, commit_one_edge_insertion, cfg_layout_merge_blocks): Do not attach any line number information to newly inserted instructions. * emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to emit_insn_*_noloc. (emit_*insn_before, emit_insn*_after): New. (emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite existing locators. * rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare. (emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill. 2004-03-24 Steven Bosscher PR pch/14137 * c-pch.c (struct c_pch_validity): New flags_info field. (FLAG_UNIT_AT_A_TIME_SET): New definition. (pch_init): Write out the flags_info field to the PCH. Set the FLAG_UNIT_AT_A_TIME_SET bit of the field if flag_unit_at_a_time is set. (c_common_valid_pch): Make sure the flag settings used for compiling the PCH are the same as those used in the current compilation. 2004-03-24 Alexandre Oliva PR preprocessor/14438 * cpplib.c (do_pragma): Remove line_change call after pragma handler. 2004-03-23 Ian Lance Taylor * doc/extend.texi (ARM Built-in Functions): Replace with correct declarations. 2004-03-23 Kazu Hirata PR optimization/14669 * fold-const.c (fold): Only unwiden integer comparisons for equality and inequality operators, or when the signedness doesn't change. 2004-03-23 Jason Merrill PR c++/14587 * config/i386/winnt.c (associated_type): Look for attributes on the TYPE_MAIN_VARIANT of *this. 2004-03-21 Mark Mitchell PR c/13129 * c-decl.c (warn_if_shadowing): Don't warn about a new declaration of a file-scope entity. 2004-03-22 Jakub Jelinek PR c/14069 * c-decl.c (finish_struct): Change type of incorrect flexible array field into error_mark_node. 2004-03-22 Ralf Corsepius PR target/14260 * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC. 2004-03-22 Eric Botcazou PR middle-end/14470 * expr.c (mark_queue): New function. (emit_insns_enqueued_after_mark): New function replacing emit_queue. Clear the body of emitted queued insns. (emit_queue): Call emit_insns_enqueued_after_mark. (store_expr): Mark the increment queue on entry. Emit only the incrementations queued when expanding the source. 2004-03-22 Danny Smith * gcov-io.h: Update copyright year. 2004-03-22 Danny Smith PR target/14291 * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for __MINGW32__. 2004-03-21 Roger Sayle PR target/13889 * cse.c (fold_rtx): Avoid substituting constants into unary conversion operations. 2004-03-21 Joseph S. Myers * frontends.texi: Add missing line. 2004-03-21 Zack Weinberg Chris Devers Joseph S. Myers * doc/frontends.texi: Rewrite. * doc/gcc.texi: Update last modification date. 2004-03-20 Ian Lance Taylor PR c/12373 * c-typeck.c (tagged_types_tu_compatible_p): Don't use DECL_ORIGINAL_TYPE if there isn't one. 2004-03-20 Joseph S. Myers PR other/14630 * doc/install.texi: Add info directory category and entry. 2004-03-20 Joseph S. Myers PR c/14635 * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to DEF_GCC_BUILTIN. 2004-03-18 Mark Mitchell * c-common.c (pointer_int_sum): Do not complain about using pointers to pointers-to-members. * c-decl.c (grokdeclarator): Do not complain about redeclaring visible "static" identifiers "extern" in a local scope. * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and post-increments/decrements. 2004-03-17 Jakub Jelinek * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for 32-bit builds when defaulting to 32-bit. 2004-03-17 Richard Sandiford PR target/14599 * config/mips/mips.md (UNSPEC_GP): New constant. * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain an UNSPEC instead of (reg $gp). (mips16_gp_pseudo_reg): Change accordingly. (print_operand): Print $gp directly when handling CONST_GP_P. 2004-03-16 Mark Mitchell PR c++/14481 * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly generated COMPOUND_EXPRs. 2004-03-16 Nathanael Nerode PR bootstrap/12974 * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly. 2004-03-16 Richard Henderson PR middle-end/14535 * except.c (collect_one_action_chain): Create action record for cleanup outer of exception spec. 2004-03-16 Ralf Corsepius PR target/14577 * config.gcc: Switch sh-*-rtems* to ELF. Add sh-*-rtemscoff. 2004-03-15 Richard Henderson PR target/14547 * target.h (struct gcc_target): Move calls substructure before booleans. Add split_complex_arg. * function.c (assign_parms, split_complex_args): Use it. * calls.c (expand_call): Likewise. (split_complex_values): Likewise. Check for splittable types before allocating memory. (split_complex_types): Likewise. * system.h (SPLIT_COMPLEX_ARGS): Poison. * expr.h (SPLIT_COMPLEX_ARGS): Remove. * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New. * config/alpha/alpha.c (alpha_split_complex_arg): New. (TARGET_SPLIT_COMPLEX_ARG): New. * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove. * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New. (rs6000_override_options): Zap it for non-AIX. (rs6000_function_value): Use targetm.calls.split_complex_arg. * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove. * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New. * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove. * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old SPLIT_COMPLEX_ARGS entry. 2004-03-15 Eric Botcazou * config/sparc/sparc.h: Rework comments about the code model in 64-bit environment and the mode 'Pmode'. * doc/invoke.texi (SPARC options): Rework description of the different code models supported in 64-bit environment. 2004-03-14 Joseph S. Myers * doc/contrib.texi, doc/extend.texi, doc/gcov.texi, doc/install.texi, doc/invoke.texi, doc/makefile.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize "gcc", "g++" and "g77" or mark up with appropriate markup. Adjust wording and grammar. 2004-03-13 Eric Botcazou PR c/14114 * c-decl.c (merge_decls): Do not copy the C_DECL_INVISIBLE flag from the new decl to the old decl. (pushdecl): Use lookup_name to search for a previous decl with the same identifier. 2004-03-13 Dara Hazeghi * doc/install.texi: Note status of -fnew-ra. 2004-03-13 Eric Botcazou PR middle-end/14470 * expr.c (store_expr): Call emit_queue before generating the move from the temporary to the original target. Protect the temporary from emit_queue. 2004-03-13 Jakub Jelinek PR target/14533 * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC other than UNSPEC_GOTOFF. 2004-03-13 Dean Ferreyra PR target/14047 * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter. (avr_insert_attributes): Pass "attributes" to avr_progmem_p. * config/avr/avr-protos.h (avr_progmem_p): Change prototype. 2004-03-12 David Edelsohn * doc/install.texi (*-ibm-aix*): Document assembler and achiver fixes required by libstdc++ and update installation instructions for libstdc++.a. Document use of Bash to speed up configuration. 2004-03-12 Eric Botcazou * doc/tm.texi (registers) : Add entry for REGMODE_NATURAL_SIZE. 2004-03-11 Richard Henderson PR target/14539 * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128. 2004-03-12 Alan Modra * real.c (encode_ibm_extended): Do round low word. 2004-03-11 Richard Henderson PR middle-end/14477 * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER. 2004-03-11 Richard Sandiford PR target/14496 * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for TARGET_SINGLE_FLOAT. 2004-03-11 Kelley Cook PR other/14536 * configure: Regenerated with autoconf 2.57. * config.in: Regenerated with autoheader 2.57. 2004-03-11 Alan Modra * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't bump retaddr here. 2004-03-11 Alan Modra * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c. (SHLIB_MAPFILES): Add libgcc-ppc64.ver. (SHLIB_MKMAP_OPTS): Delete. (TARGET_LIBGCC2_CFLAGS): Add -specs. (bispecs): Add rule. * config/rs6000/libgcc-ppc64.ver: New file. * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions. (__floatdidf, __floatdisf): Optimize multiply. (__fixunstfdi): New function. * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for real and imag parts larger than one register. (function_arg): Correct type of reg used when fp arg split partially to stack. * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT and __MACH__ or __powerpc64__. 2004-03-10 Richard Henderson PR c/14517 * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers except for pedantic c90 mode. 2004-03-10 Andrew Haley PR optimization/14381 * function.c (expand_function_end): Emit a blockage insn before the epilogue when -fnon-call-exceptions is used. 2004-03-10 Joel Sherrill PR target/14480 * config.gcc (powerpc*-*-rtems*): Use rs6000/t-rtems. 2004-03-10 Roman Zippel PR bootstrap/12371 * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer. (CALL_USED_REGISTERS): Likewise. (REG_CLASS_CONTENTS): Likewise. (REG_ALLOC_ORDER): New. (REGNO_REG_CLASS): Use regno_reg_class. * config/m68k/m68k.c: Add regno_reg_class array. 2004-03-10 Alan Modra Hartmut Penner * config/rs6000/rs6000.c (invalid_gpr_mem): New function. (base_reg_operand): New function. (legitimate_offset_address_p): Don't test modes in an attempt to distinguish gpr vs fpr mem loads/stores. Don't prohibit offsets invalid for 64-bit gpr loads/stores here. (secondary_reload_class): Add "inp" parameter. Generate a reload for 64-bit gpr loads/stores. * config/rs6000/rs6000.h (SECONDARY_RELOAD_CLASS): Delete. (SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS): Define. (PREDICATE_CODES): Add invalid_gpr_mem and base_reg_operand. (DISPARAGE_RELOAD_CLASS): Define. * config/rs6000/rs6000-protos.h (secondary_reload_class): Update. * config/rs6000/rs6000.md (movdf_hardfloat64): Correct attrs. Add m->b alternative and split. (movdi_internal64): Replace r->m and m->r with r->Y and Y->r. Add m->b alternative and split. * reload.c (find_reloads): Invoke DISPARAGE_RELOAD_CLASS. 2004-03-10 Hans-Peter Nilsson PR other/14474 * doc/md.texi (Pattern Ordering, Dependent Patterns) (Jump Patterns, Looping Patterns): Wrap in separate "@ifset INTERNALS". 2004-03-09 Zack Weinberg * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define. (LIBGCC_SPEC): Update to match. 2004-03-09 Ralf Corsepius * config/h8300/t-rtems (h8300-*-rtems*): New. * config.gcc: Use config/h8300/t-rtems. 2004-03-09 Roger Sayle PR middle-end/14289 * c-typeck.c (c_mark_addressable): A register variable should be considered global if its not automatic, i.e. TREE_PUBLIC, TREE_STATIC or DECL_EXTERNAL. * function.c (put_var_into_stack): Call abort when placing a hard register into the stack, if x_parm_reg_stack_loc is NULL. 2004-03-08 David Edelsohn * collect2.c (main): Only export initfunc and finifunc if LD_INIT_SWITCH not defined. (scan_prog_file): Only export constructors and destructors if LD_INIT_SWITCH not defined. Only export symbols not found in shared objects. 2004-03-09 Alan Modra * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco. * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS. (emit_library_call_value_1): Likewise pass nargs. * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here. * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS. * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args parameter instead of scanning TYPE_ARGS_TYPES to count args. * config/rs6000/rs6000-protos.h (init_cumulative_args): Update prototype. * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg. (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000. (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0. * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to INIT_CUMULATIVE_ARGS. * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update. * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h, config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h, config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h, config/fr30/fr30.h, config/frv/frv.h, config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h, config/i860/i860.h, config/i960/i960.h, config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.c, config/iq2000/iq2000.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h, config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise. 2004-03-09 Alan Modra PR debug/11983 * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to dw_val_class_vec. Replace use throughout file. (dw_float_const): Delete. (dw_vec_const): New. (dw_val_struct_union): Rename val_float to val_vec. Replace use throughout file. (add_AT_vec): Rename from add_AT_float. Add elt_size param. (same_dw_val_p): Adjust vec comparison. Use memcmp. (size_of_die): Adjust dw_val_class_vec sizing. (output_die): Output dw_val_class_vec. (insert_int, extract_int, insert_float): New functions. (add_const_value_attribute): Use insert_float for CONST_DOUBLE. Handle CONST_VECTOR. (add_location_or_const_value_attribute): Handle CONST_VECTOR. 2004-03-08 Joel Sherrill PR target/14480 * config/rs6000/t-rtems: Add missing file on branch. 2004-03-08 Roger Sayle * fold-const.c (fold) : Rewrite optimization to transform "foo++ == const" into "++foo == const+incr". 2004-03-08 Ulrich Weigand * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber. ("*extendqisi2_short_displ"): Likewise. 2004-03-08 Eric Botcazou * expr.c (highest_pow2_factor_for_type): Rename into highest_pow2_factor_for_target. Use DECL_ALIGN instead of TYPE_ALIGN when the target is a COMPONENT_REF. (expand_assignment): Ajust call to highest_pow2_factor_for_type. 2004-03-08 Alan Modra * config/rs6000/rs6000.c: Formatting fix. (legitimate_offset_address_p): Correct offset range check. * config/rs6000/rs6000.c (rs6000_override_options): Don't override -msoft-float by -mcpu. Consolidate similar code for MASK_MULTIPLE and MASK_STRING. 2004-03-07 Aldy Hernandez * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power for little endian. ("ashrdi3_no_power"): Disable for little endian. (ashrdi3): Same. 2004-03-07 Aldy Hernandez * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and AltiVec abi cannot co-exist. * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same. 2004-03-07 Hans-Peter Nilsson PR target/14471 * configure.ac (Target-specific assembler checks) : New case, checking for -no-mul-bug-abort option. * configure, config.in: Regenerate. * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround and -mno-mul-bug-workaround. * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart") ("mulsidi3", "umulsidi3"): Prefix output template with "%!". ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"): Ditto. Make attribute "slottable" dependent on TARGET_MUL_BUG. * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make sure mulu.d is not last on cache-line. * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION. (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros. (TARGET_SWITCHES): New options -mmul-bug-workaround and -mno-mul-bug-workaround. (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG. (PRINT_OPERAND_PUNCT_VALID_P): Include '!'. * config/cris/cris.c (cris_operand_extend_operator): Clarify relation to MULT in head comment. (cris_op_str): Abort for MULT. (cris_print_operand) : New case. 2004-03-07 Stephane Carrez * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12. ("*lshrsi3"): Also accept an immediate for 68HC12. ("*ashrsi3_const"): Likewise. ("*ashrsi3"): Likewise. ("*ashlsi3_const"): Likewise. ("*ashlsi3"): Likewise. ("cmphi_1_hc12"): Compare two hard register by pushing them and comparing with a pop; don't use a split for that. ("cmphi split"): Disable compare split for 68HC12. * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate the status operands if they have side effects. 2004-03-07 Richard Sandiford * config/mips/mips.c (mips_in_small_data_p): Return false if TARGET_ABICALLS. 2004-03-06 Stephane Carrez * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push the stack register. (expand_prologue): Don't make an interrupt or a trap handler a far symbol. (m68hc11_initial_elimination_offset): Likewise. 2004-03-06 Richard Henderson * config/alpha/alpha.c (alpha_in_small_data_p): False for functions. 2004-03-06 Richard Henderson * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New. (TARGET_LONG_DOUBLE_128): New. (TARGET_SWITCHES): Add long-double-{128,64}. (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128. (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128. (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New. (WIDEST_HARDWARE_FP_SIZE): New. (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__. * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128 if TARGET_VAX_FLOAT. * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove. (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128. 2004-03-06 Ulrich Weigand * config/s390/s390.md ("load_multiple", "*load_multiple_di", "*load_multiple_si"): Allow only if reload_completed. ("store_multiple", "*store_multiple_di", "*store_multiple_si"): Likewise. 2004-03-06 Eric Botcazou PR c/14465 PR c/14114 * c-decl (pushdecl): Revert previous change. 2004-03-06 John David Anglin * pa.md (icacheflush): Reorder operands to make match_scratch operand last. * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument from calls to gen_icacheflush. 2004-03-06 Eric Botcazou PR target/14343 * config/i386/i386.md (movv2di_internal): Conditionalize on TARGET_SSE, not TARGET_SSE2. 2004-03-06 Eric Botcazou PR c/14114 * c-decl (pushdecl): Do not record a previous, not-in-scope, external decl for restoration. 2004-03-05 Waldek Hebisch PR middle-end/14203 * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P instead of testing whether DECL_RTL is not NULL. 2004-03-05 Andreas Krebbel * rtl.h (mem_expr_equal_p): Function prototype added. * cfgcleanup.c (merge_memattrs): New function. (flow_find_cross_jump): Call merge_memattrs for matching insns. * emit-rtl.c (mem_expr_equal_p): New function. 2004-03-05 Bob Wilson * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args. (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32). Adjust __va_ndx by 2 words when referencing an argument on the stack. (xtensa_va_arg): Handle 16-byte aligned args. Adjust __va_ndx by 2 words when an arg on the stack is first seen. 2004-03-05 Nathan Sidwell PR driver/13577 * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o options. 2004-03-04 Bob Wilson * config/xtensa/xtensa.c (xtensa_return_in_msb): New function. (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb. 2004-03-04 Alan Modra * real.c (encode_ibm_extended): Don't bother rounding low double. * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX when fmt->pnan < fmt->p. 2004-03-04 Alan Modra PR target/14406 * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn. (abstf2, abstf2_internal): New define_expand. 2004-03-04 Eric Botcazou PR optimization/14235 * expr.c (convert_move): Copy the source to a new pseudo when converting from a sub-word source to a larger-than-word register which conflicts with the source. 2004-03-03 Zack Weinberg PR 13728 * c-decl.c (diagnose_mismatched_decls): Issue an error for two parameters with the same name, unless one is a forward decl. Do not issue a redundant-redeclaration warning for forward decls of parameters. 2004-03-03 Stephane Carrez * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb because it breaks the 32-bit shift patterns that rely on a match_dup. (print_operand): Don't print a * before the base address. 2003-03-03 Richard Henderson PR opt/13862 * cselib.c (cselib_record_sets): Don't record multiple sets in asm insns. 2004-03-03 Nicolas Pitre * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of small negative values. 2004-03-02 Kazu Hirata * config/h8300/lib1funcs.asm (___fixunssfsi): Change the threshold to 0x4f. Revert: 2004-02-27 Kazu Hirata * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300 as well. * config/h8300/lib1funcs.asm (___fixunssfsi): Remove. * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm. 2004-03-02 Richard Henderson PR middle-end/11767 * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P. * optabs.c (prepare_cmp_insn): Force trapping memories to registers before the compare, if flag_non_call_exceptions. 2004-03-02 Richard Henderson PR middle-end/14327 * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before emitting the label, not after. 2004-03-02 David O'Brien * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add. * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define %(fbsd_dynamic_linker), (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with config/i386/freebsd.h * config/arm/freebsd.h: Ditto. * config/i386/freebsd.h: Ditto. * config/i386/freebsd64.h: Ditto. * config/ia64/freebsd.h: Ditto. * config/rs6000/sysv4.h: Ditto. * config/sparc/freebsd.h: Ditto. 2004-03-02 Stephane Carrez * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable. (m68hc11_mov_addr_mode): Likewise. (m68hc11_override_options): Initialize them based on target. (register_indirect_p): Allow a MEM for indirect addressing modes and use flags to control what is allowed. (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for supported addressing modes. (m68hc11_register_indirect_p): Use m68hc11_addr_mode. (go_if_legitimate_address_internal): Likewise. (m68hc11_indirect_p): Likewise and check the mode. (print_operand): Allow a (MEM (MEM)) and generate indirect addressing. 2004-03-02 Stephane Carrez * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize sequences of moves. (add peepholes): New peepholes to optimize sequences adding small constants. (bset peepholes): New peepholes to transform an OR in a bset form (bclr peepholes): Likewise for bclr form. (cmp peepholes): New peepholes to avoid register copies when comparing. 2004-03-02 Stephane Carrez * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split to separate push from moves. ("*pushdf_internal"): Likewise. ("*pushsf_internal"): Likewise. ("*pushsi_internal"): Likewise. ("movdi_internal"): Use define_insn_and_split; non push operand. ("movdf_internal"): Likewise. ("movsf_internal"): Likewise. ("movsi_internal"): Likewise. ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise. ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise. 2004-03-02 Stephane Carrez * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split. ("cmphi_z_used", "cmpqi_z_used"): Likewise. ("movstrictsi", "movstricthi", "movstrictqi"): Likewise. ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise. ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise. ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise. ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise. ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise. ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise. ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise. ("*lshrdi3_const32", "*lshrdi_const1"): Likewise. 2004-03-02 Stephane Carrez * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define. (SOFT_XY_REGNUM): Define. (cmp split): Use the above instead of hard coded numbers. (8-bit op split): No need to check the mode; allow Q_REG. (ashift split): Adjust the first operand if it uses the SP and we are pushing the shifted value. (plus shift split): Fix when a source is in register D+X. ("doloop_end"): Pass dummy arguments to gen_rtx_NE. 2004-03-02 Stephane Carrez * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when comparing with Z register. 2004-03-02 Loren James Rittle * gcc/doc/install.texi (*-*-freebsd*): Update target information. 2004-03-01 Mark Mitchell PR bootstrap/14356 * gcc.c (process_command): Remove const-qualification from argv. (main): Likewise. 2004-03-01 Mircea Namolaru * cfgloop.h (get_var_set_from_bct, is_bct_cond): Declaration of new functions. * cfgloopanal.c: Include loop.h. (get_var_set_from_bct): New function. (is_bct_cond): New function. (blocks_single_set_registers): Handle branch and count jumps. (count_loop_iterations): Likewise. (simple_increment): Likewise * doloop.c (doloop_condition_get): Export. * loop-init.c (fixup_loop_exit_succesor): New function. (loop_optimizer_finalize): Handle loops ending with branch and count jumps. * loop-unroll.c: Include toplev.h (discard_increment): New function. (expand_bct): New function. (peel_loop_completely): Handle the removal of branch and count jumps. (unroll_loop_constant_iterations): Likewise. (unroll_loop_runtime_iterations): Likewise * loop.h (doloop_condition_get): Declare. 2004-02-29 Mark Mitchell PR debug/14328 * dwarf2out.c (gen_enumeration_type_die): Output all enumeration constants as signed values. 2004-02-29 Mark Mitchell PR middle-end/13448 * c-tree.h (readonly_warning): Rename to ... (readonly_error): ... this. * c-typeck.c (build_unary_op): Adjust accordingly. (readonly_warning): Rename to ... (readonly_error): ... this and issue errors, not warnings. (build_modify_expr): Call readonly_error, not readonly_warning. (c_expand_asm_operands): Likewise. * tree-inline.c (optimize_inline_calls): Do not inline functions after errors have occurred. 2004-02-29 Kazu Hirata * doc/cppopts.texi: Fix a typo. 2004-02-28 John David Anglin * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg. 2004-02-27 Ian Lance Taylor PR optimization/7871 * flow.c (mark_set_1): Don't add LOG_LINKS for global registers from or to call insns. 2004-02-27 Eric Botcazou PR optimization/7871 * flow.c (propagate_one_insn): Interpret calls as setting global registers, not merely clobbering them. 2004-02-27 Kazu Hirata * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300 as well. * config/h8300/lib1funcs.asm (___fixunssfsi): Remove. * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm. 2004-02-27 Daniel Jacobowitz * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode size for minipool references. 2004-02-27 Eric Botcazou Roger Sayle * fold-const.c (fold): Revert 2004-02-25 change. Use the original operands to build a tree with swapped operands. * expr.c (expand_expr_real) : Consistently use the 'unsignedp' predicate to specify the signedness. 2004-02-26 Aldy Hernandez * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and fix_truncsfsi2. * config/rs6000/spe.md: Delete spe_efsctuiz. Add spe_fixuns_truncsfsi2. Add spe_fix_truncsfsi2. 2004-02-26 Bob Wilson * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__. 2004-02-25 James E Wilson * gcc-simple.c (rtl_zone, tree_zone, garbage_zone, ggc_alloc_typed, ggc_alloc_zone): New. (ggc_pch_count_object, gcc_pch_alloc_object, ggc_pch_write_object): Add bool is_string parameter. 2004-02-26 Alan Modra * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not beginning of block. Do not delete CC setter unless HAVE_cc0. 2004-02-25 Kelley Cook * doc/contrib.texi: Add an entry for myself. 2004-02-25 Kelley Cook * config.gcc: Add comment describing extra_gcc_objs. i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs. * configure.ac (extra_gcc_objs): New substitution variable. (host_extra_gcc_objs): Don't substitute. * configure: Regenerate. * Makefile.in: Use extra_gcc_objs. 2004-02-25 Eric Botcazou * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like comparisons with regard to signedness. 2004-02-25 Jakub Jelinek * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of fopen. * libgcov.c: Include sys/stat.h. * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define. * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define. * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define. * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define. 2004-02-25 Richard Earnshaw * arm.c (arm_legitimate_index_p): For QImode the range of an offset is -4095...+4095 inclusive. 2004-02-25 Eric Botcazou * doc/install.texi (sparc-sun-solaris2* specific notes): Document the bootstrap failure with Sun CC 5.4 and 5.5. 2004-02-24 Kazu Hirata * cse.c (cse_change_cc_mode_insns): Stop at any instruction which modifies NEWREG. (cse_condition_code_reg): Update the mode of CC_REG in CC_SRC_INSN on our own. 2004-02-24 Michael Matz * config/i386/i386.c (ix86_comp_type_attributes): Check for regparm attributes. 2004-02-24 Aldy Hernandez * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete. (spe_fixuns_truncsfsi2): Delete. * config/rs6000/rs6000.md (fix_truncsfsi2): Delete. (fixuns_truncsfsi2): Delete. 2004-02-24 Josef Zlomek PR/14240 * rtlanal.c (replace_label): Fix replacing labels in constant pool. 2004-02-24 Bob Wilson * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update. (init_cumulative_args): Likewise. (a7_overlap_mentioned_p): Delete prototype. * config/xtensa/xtensa.c (struct machine_function): Replace incoming_a7_copied field with need_a7_copy and vararg_a7 flags. Add set_frame_ptr_insn field. (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7. (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check if the operand is an argument in a7. If so, copy a7 to a new pseudo at the function entry and replace the operand with the pseudo. (init_cumulative_args): Remove unused arguments. Add new "incoming" argument and record this flag in CUMULATIVE_ARGS. (function_arg): Remove result_mode and special-case code to handle arguments in a7. Instead, set need_a7_copy flag when there is an incoming argument in a7. (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn and use the value recorded in cfun->machine->set_frame_ptr_insn. (xtensa_builtin_saveregs): Check for negative gp_left value. Set need_a7_copy and vararg_a7 flags. Use move_block_from_reg instead of special-case code. (a7_overlap_mentioned_p): Delete. * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag. (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless arguments to init_cumulative_args and pass "incoming" flag instead. (BLOCK_REG_PADDING): Delete. * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary checks for reload_in_progress and reload_completed. Update calls to xtensa_copy_incoming_a7. (ashlsi3): Rename existing insn to ashlsi3_internal. Add expander to call xtensa_copy_incoming_a7. 2004-02-24 Richard Earnshaw * invoke.texi (ARM Options): Mark -mapcs-26 and -mno-alignment-traps as deprecated. Remove already deprecated synonyms. * arm.c (arm_override_options): Generate an inform message if the user tries to invoke the compiler in apcs-26 mode. * arm.h (TARGET_SWITCHES): Remove help comments from deprecated switches. Delete deprecated synonyms for -malignment-traps. (TARGET_DEFAULT): Default to alignment traps. * arm/coff.h (TARGET_DEFAULT): Default to alignment traps. * arm/elf.h arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h: Likewise. * arm/unknown-elf.h arm/wince-pe.h: Likewise. 2004-02-23 H.J. Lu * config/i386/i386.h: Deprecate -mpni/-mno-pni. 2004-02-23 Kelley Cook * config/i386/i386.c: Rename pni to sse3. * config/i386/i386.h: Likewise. * config/i386/i386.md: Likewise. * config/i386/pmmintrin.h: Likewise. * doc/extend.texi: Likewise. * doc/invoke.texi: Likewise. 2004-02-23 Andrew Pinski * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define. * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define. 2004-02-23 Eric Botcazou Falk Hueffner PR c/14188 * builtins.c (expand_builtin_va_arg): Emit an informative message if a trap is generated. * c-typeck.c (build_function_call): Likewise. 2004-02-22 Christopher Faylor * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify extra host object file when targetting cygwin rather than generic object files. 2004-02-22 Matthias Klose Taken from mainline: 2004-02-12 Geoffrey Keating * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and $(GCOV_INSTALL_NAME) to install manpages. Remove generic rule for installing .1 manpages. Add rules for installing cpp and gcov manpages under their installed names. 2004-02-22 Hans-Peter Nilsson PR target/14209 * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak constraints to not match postincrement. Adjust the predicate to exclude a volatile memory reference. ("*andsi_clear"): Tweak constraints to not match postincrement. Adjust the predicate to exclude a volatile memory reference. ("*andhi_clear"): Ditto. Rename from "*andhi_clear_signed". ("*andhi_clear_unsigned"): Remove, non-matching pattern. 2004-02-21 Christopher Faylor * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host object file when targetting cygwin. * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is overridden by top-level Makefile. 2004-02-21 Alan Modra * combine.c (can_combine_p): Don't ignore SETs marked with REG_EH_REGION notes. 2004-02-21 Jan Hubicka * params.def (max-peeled-insns, max-completely-peeled-insns, max-once-peeled-insns): Set to 400. 2004-02-20 Falk Hueffner PR target/14201 * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand numbers. 2004-02-20 Mohan Embar Tom Tromey * doc/install.texi: Moved --disable-libgcj and --with-system-zlib documentation to new section for Java-specific options. Added explicit Cross-Compiler-Specific Options subheading. Added section for Java-specific options. 2004-02-20 James E Wilson * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg. 2004-02-20 Josef Zlomek * tree-inline.c (copy_body_r): Do not replace ret_label. 2004-02-20 Kazu Hirata * gcc.c (process_command): Allow translation of the copyright symbol but not the rest of the copyright message. * gcov.c (print_version): Likewise. Allow translation of the message about warranty. 2004-02-19 Aldy Hernandez * config/rs6000/spe.md (spe_fixunssfsi2): Rename to spe_fixuns_truncsfsi2. * config/rs6000/rs6000.md (fixunssfsi2): Rename to fixuns_truncsfsi2. 2004-02-19 Richard Sandiford Maciej W. Rozycki * config/mips/mips.c (mips_address_insns): Treat BLKmode specially. * config/mips/mips.md: Expand comment above unaligned loads and stores. 2004-02-20 Alan Modra * function.c (assign_parms): Correct leakage of mainline code in last commit. Also leakage from INIT_CUMULATIVE_ARGS patch. 2004-02-19 Zack Weinberg * config/ia64/ia64.c (ia64_function_arg): In big-endian mode, when passing single SFmode quantities in general registers, put them in the high half. (struct extern_func_list, extern_func_head): Mark with GTY(()). (ia64_hpux_add_extern_decl): Save the decl, not the name string. Allocate memory with ggc_alloc. No need to copy anything. (ia64_hpux_file_end): Update to match. 2004-02-19 David Daney PR preprocessor/14198 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add builtin_assert ("machine=mips") 2004-02-19 Ulrich Weigand * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc", "*subsf3_cconly"): Subtraction is not commutative. 2004-02-19 Alan Modra * function.c (assign_parms): When building decl_rtl for SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer. 2004-02-19 Olivier Hainque * expr.c (is_aligning_offset): Check if we are aligning the expressions's address over BIGGEST_ALIGNMENT in bytes, not in bits. 2004-02-19 Jan Hubicka * genextract.c (main): Do not output the memset when not checking. 2004-02-18 Jakub Jelinek * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64 by default. 2004-02-18 Ulrich Weigand * config/s390/s390.md ("divmoddisi3"): Fix incorrect mode. 2004-02-18 John David Anglin * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not generating PIC code. 2004-02-18 Ulrich Weigand * config/s390/s390.c (s390_mainpool_start): Delete the main pool placeholder insn when chunkifying the pool. 2004-02-18 Per Bothner * cpphash.h (struct cpp_buffer): Restore return_at_eof field. This partly reverts my 2003-10-01 change, because we're back to logically including inside the main line. * cpplex.c (_cpp_get_fresh_line): Check return_at_eof field. * cppmacro.c (cpp_scan_nooutput): Set return_at_eof of current buffer. Fixes PR preprocessor/14103. 2004-02-18 Richard Earnshaw PR target/13866 * arm.c (load_multiple_operation): Don't insist that the source reg of a post-increment component is the same as the destination. (store_multiple_operation): Likewise. 2004-02-18 Paul Brook * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX 2004-02-18 Mark Mitchell PR c++/11326 * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL fntype. 2004-02-18 Paul Brook PR debug/12934 * dwarf2out.c (loc_descriptor_from_tree): Handle EXPR_WITH_FILE_LOCATION. 2004-02-17 Mark Mitchell PR c++/11326 * c-common.c (flag_abi_version): Remove. * c-common.h (flag_abi_version): Likewise. * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case. * c.opt (fabi-version): Remove. * calls.c (expand_call): Always pass a function type to struct_value_rtx. Use convert_memory_address. * common.opt (fabi-version): Add it. * flags.h (flag_abi_version): Likewise. (abi_version_at_least): New macro. * opts.c (common_handle_option): Add OPT_fabi_version. * toplev.c (flag_abi_version): Define it. * config/ia64/ia64.h (STRUCT_VALUE_REGNUM): Remove. * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): Define it. (ia64_struct_retval_addr_is_first_parm_p): New function. (ia64_output_mi_thunk): Use it. (ia64_struct_value_rtx): New function. 2004-02-18 Alan Modra PR optimization/14119 * combine.c (try_combine): When attemting to fix unrecognized insns, don't delete SETs marked with REG_EH_REGION notes. 2004-02-17 Jan Hubicka PR bootstrap/14180 * cselib.c (remove_useless_values): Do not access released memory. 2004-02-17 Ulrich Weigand * combine.c (simplify_if_then_else): Do not replace (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the modes differ. 2004-02-17 Rainer Orth * config/mips/t-iris6gld: Renamed to ... * config/mips/t-irix-gld: ... this. * config.gcc (mips-sgi-irix6*): Reflect this (mips-sgi-irix5*): Use it with GNU ld. * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed to ... * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this. * config/mips/t-irix-gld: Reflect this. * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise. * config/mips/iris5gld.h: New file. * config.gcc (mips-sgi-irix5*): Use it with GNU ld. Only use collect2 without gas. * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC): Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC. (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this. * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise. * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ... * config/mips/iris5.h: ... here. * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC. (STARTFILE_SPEC, ENDFILE_SPEC): Define. * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify using irix_startfile_spec, irix_endfile_spec. * patches.summary (http): 2004-02-17 Andrew Pinski PR c++/14178 * doc/invoke.texi (fabi-version): The default is 2 now. 2004-02-17 Jonathan Wakely * doc/install.texi: Update description of --gxx-include-dir to give correct default value. (merged from mainline) 2004-02-16 Matthias Klose * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME in terms of SHLIB_SOVERSION. * config/m68k/t-slibgcc-elf-ver: New file. * config/pa/t-slibgcc-elf-ver: New file. * config.gcc (m68k-linux, parisc-linux): Use them when not sjlj exceptions are not configured. 2004-02-16 Eric Botcazou * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()). 2004-02-16 Joseph S. Myers * doc/sourcebuild.texi: Mention backends.html. 2004-02-15 Roger Sayle Backport from mainline: 2004-02-07 Roger Sayle PR middle-end/13696 * fold-const.c (fold_convert): New function to provide type conversion to the middle-end without using convert. (negate_expr, associate_trees, size_diffop, omit_one_operand, operand_equal_for_comparison_p, pedantic_omit_one_operand, invert_truthvalue, optimize_bit_field_compare, range_binop, decode_field_reference, make_range, build_range_check, unextend, fold_truthop, extract_muldiv_1, fold_mathfn_compare, fold_binary_op_with_conditional_arg, fold_inf_compare, fold_single_bit_test, fold, multiple_of_p): Replace all calls to convert with calls to fold_convert. 2004-02-09 Roger Sayle * fold-const.c (fold) : Use the original type conversion tree code rather than call fold_convert, which doesn't specify a default floating point to integer conversion. 2004-02-10 Paolo Bonzini PR c/14092 * fold-const.c (fold) : Convert result of negate_expr back to the original type. 2004-02-15 SUGIOKA Toshinobu Backport from mainline: 2004-02-05 SUGIOKA Toshinobu * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR) to $$(slibdir) in the installation commands. 2004-02-15 Roger Sayle Backport from mainline: 2004-01-20 Roger Sayle * fold-const.c (fold_convert): Rename to fold_convert_const. (fold_convert_const): Change arguments to take a tree_code, a type and the operand/expression to be converted. Return NULL_TREE if no simplification is possible. (fold): Adjust call to fold_convert to match new fold_convert_const. Avoid modifying the tree passed to fold in-place. 2004-02-15 Jan Hubicka * cselib.c (value_pool): New. (new_cselib_val): Use pool. (cselib_init): Initialize value_pool (cselib_finish): Free pool. * cselib.c: Include alloc-pool.h (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill. (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare. (new_elt_list, new_elt_loc_list, unchain_one_elt_list, unchain_one_elt_loc_list_pool, unchain_one_value, new_cselib_val): Simplify using allocpool. (cselib_init): Initialize allocpools. (cselib_finish): Finish allocpools. 2004-02-14 Richard Sandiford Backport from mainline: 2002-04-08 Richard Sandiford * real.c (encode_ibm_extended): Normalize the input value before converting it to a double. Handle the case where a normal value rounds to infinity. 2004-02-14 Olivier Hainque * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT for start_value when it is directly moved into reg, and factorize the retrieval of GET_MODE (reg). 2004-02-13 Rainer Orth * configure.ac: Search for as, ld below libexec/gcc. * configure: Regenerate. 2004-02-13 Jan Hubicka * combine.c (recog_for_combine): Avoid allocating unnecesary RTX. * genrecog.c (find_operand): add extra argument stop. (validate_pattern): Verify that mach_dup is duplicating operand defined lexically earlier. 2004-02-13 Ian Lance Taylor PR other/10584 * c-opts.c (c_common_post_options): Disable function inlining when using -finstrument-functions. * doc/invoke.texi (Code Gen Options): Document this restriction. 2004-02-12 Chris Demetriou * config/mips/mips.md (casesi_internal, casesi_internal_di): Use ".set macro" to avoid warnings about multi-instruction macros, since they're intentional. 2004-02-13 Jan Hubicka * alias.c (find_base_term, get_addr): Do not dereference NULL pointer when all VALUE's locations has been invalidated. (rtx_equal_for_memref_p): Simplify checking of VALUEs. * cselib.c (discard_useless_values): Clear out value pointer pointing to datastructure to be recycled. * gcse.c (bypass_block): Prevent edges to be unified when we are about to emit compenstation code. * gcse.c (bypass_block): Fix a typo in the previous check-in to the file. * alloc-pool.c (align_four): Kill. (create_alloc_pool): Align size to eight. (free_alloc_pool, free_pool): Invalidate deallocated data. 2004-02-12 Richard Sandiford PR bootstrap/13617 * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare. (mips_declare_object): Make variadic. * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use mips_output_aligned_decl_common. * config/mips/mips.c (mips_output_aligned_decl_common): New function. (mips_declare_object): Make variadic. 2004-02-12 Jan Hubicka * tree-optimize.c (tree_rest_of_compilation): Do not release DECL_ARGUMENTS 2004-02-12 Ian Lance Taylor PR inline-asm/6162 * reload.c (find_reloads): Only support one pair of commutative operands. 2004-02-12 Ian Lance Taylor PR target/1532 Backport from mainline: 2004-02-11 Richard Henderson * flow.c (insn_dead_p): A clobber of a dead hard register is a dead insn after reload. 2004-01-24 Ian Lance Taylor * cse.c (cse_cc_succs): Change the mode of the source expression as soon as decide we need a new mode. Don't permit changing modes if we found a match in a successor block. (cse_condition_code_reg): Save original mode of source expression so that we know whether we have to change the mode in other insns. 2004-01-24 Andreas Tobler * cse.c: (cse_cc_succs) Fix comparison warning. 2004-01-23 Ian Lance Taylor * cse.c (cse_change_cc_mode): New static function. (cse_change_cc_mode_insns, cse_cc_succs): Likewise. (cse_condition_code_reg): New function. * rtl.h (cse_condition_code_reg): Declare. * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg. * target.h (struct gcc_target): Add fixed_condition_code_regs and cc_modes_compatible. * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define. (TARGET_CC_MODES_COMPATIBLE): Define. (TARGET_INITIALIZER): Add new initializers. * targhooks.c (default_cc_modes_compatible): New function. * targhooks.c (default_cc_modes_compatible): Declare. * hooks.c (hook_bool_intp_intp_false): New function. * hooks.h (hook_bool_intp_intp_false): Declare. * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define. (TARGET_CC_MODES_COMPATIBLE): Define. (ix86_fixed_condition_code_regs): New static function. (ix86_cc_modes_compatible): Likewise. * doc/tm.texi (Condition Code): Document new hooks. 2004-02-12 Hartmut Penner * config/rs6000/altivec.md (*movv4si_internal): At least one operand must be register_operand. (*movv8hi_internal1): Likewise. (*movv16qi_internal1): Likewise. (*movv4sf_internal1): Likewise. 2004-02-12 Eric Botcazou PR target/14113 Backport from mainline: 2004-02-03 Eric Botcazou * config/sparc/sparc.md (call followed by jump define_peephole's): Delete. 2004-02-12 Hartmut Penner * gcc/config/rs6000/rs6000.c (rs6000_override_options) Set AltiVec ABI and vrsave as default for ppc64 linux. (init_cumulative_args): Post error, if try to return value in AltiVec register without enable AltiVec. (function_arg_advance): Ditto for passing arguments. 2004-02-11 Joseph S. Myers PR c/456 * cppexp.c (num_binary_op): Don't allow comma operators in #if constant expressions at all outside C99 mode if pedantic. 2004-02-10 Aldy Hernandez * config/rs6000/spe.md ("*movv2si_internal"): Check for register operand. (movv4hi_internal): Same. (movv2sf_internal): Same. (movv1di_internal): Same. 2004-02-11 Richard Sandiford * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to a label before updating its usage count. 2004-02-10 Danny Smith PR c/14088 real.c (real_from_string): Look for 'X' as well as 'x' in hexfloat strings. 2004-02-10 Per Bothner * c-opts.c (c_common_post_options): Don't emit working directory in cpp output if -P was specified. 2004-02-10 Jakub Jelinek PR optimization/13424 Backport from mainline: 2004-01-29 Jakub Jelinek * emit-rtl.c (change_address): Use XEXP (memref, 0) instead of addr when creating MEM copy. 2004-01-28 Jakub Jelinek * expr.c (store_constructor): Revert 2003-12-03 change. * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as expected before returning early. Avoid sharing RTL if they need to be changed. * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov handling so that memory attributes are preserved. Don't call ix86_set_move_mem_attrs. (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed. (ix86_expand_clrstr): Rename src argument to dst. Rework rep_stos and strset handling so that memory attributes are preserved. (ix86_expand_strlen): Pass src argument to ix86_expand_strlensi_unroll_1. Rework strlenqi_1 handling so that memory attributes are preserved. (ix86_expand_strlensi_unroll_1): Add src argument. Use change_address instead of gen_rtx_MEM. * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New expanders. (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64, strmovqi, strmovqi_rex64): Remove. (rep_mov*, strmov*): Prefix insn names with *. (strset, strset_singleop, rep_stos): New expanders. (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64, strsetqi, strsetqi_rex64): Remove. (rep_stos*, strset*): Prefix insn names with *. (rep_stosqi_rex64): Likewise. Fix mode of dirflag reg from DImode to SImode. (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes are preserved. (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1): Prefix insn names with *. (cmpstrqi_nz_1, cmpstrqi_1): New expanders. (strlenqi_1, strlenqi_rex_1): Prefix insn names with *. (strlenqi_1): New expander. * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype. 2004-01-24 Jan Hubicka * emit-rtl.c (change_address, adjust_address_1, offset_address, widen_memory_access): Return early when there is nothing to change. 2004-02-10 David Edelsohn * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr. * configure: Regenerate. 2004-02-10 Ulrich Weigand * cfganal.c (flow_call_edges_add): Never split a libcall block. 2004-02-10 Richard Sandiford * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI && TARGET_IRIX. 2004-02-09 Geoffrey Keating PR 12028 * config/rs6000/rs6000.c (ccr_bit): Don't let consistency check failure stop compilation, just print helpful message. 2004-02-09 Fariborz Jahanian * expr.c (emit_group_load): split constant correctly into register components of PARALLEL insn. 2004-02-09 DJ Delorie * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No longer modify standard_exec_prefix, standard_bindir_prefix, or standard_startfile_prefix. 2004-02-09 James E Wilson PR c++/11295 * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call to expand_expr_real call, and pass in alt_rtl as last argument. PR libstdc++/5625 * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New. * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER. * builtins.def (BUILT_IN_EXTEND_POINTER): New. * except.c (expand_builtin_extend_pointer): New. * except.h (expand_builtin_extend_pointer): Declare. 2004-02-09 Rainer Orth * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define. * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef. * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ... * config/mips/iris5.h: ... here. * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove. * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ... * config/mips/iris5.h: ... here. 2004-02-09 Rainer Orth * configure.ac: Remove default executable files before AC_PROG_CC. * configure: Regenerate. 2004-02-09 Kazu Hirata PR target/13721 * config/h8300/h8300.c (byte_reg): Call abort() if asked to print a operand other than a register. 2004-02-09 Nick Clifton * Import these patches from mainline sources: 2004-01-21 Inaoka Kazuhiro * config/m32r/m32r.h (CPP_SPEC): Define. 2004-01-20 Kazuhiro Inaoka * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK not TARGET_M32RX_MASK. 2004-02-09 Eric Botcazou * cpplib.h (cpp_get_line_maps): Un-constify the structure pointed to by the pointer returned by the function. * cpplib.c (cpp_get_line_maps): Likewise. 2004-02-08 Kazu Hirata * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a warning. 2004-02-08 Joseph S. Myers * README.Portability: Change "ISO C89" to "ISO C90". * c-parse.in (primary, initelt): Likewise. 2004-02-07 Zack Weinberg Bug 13856 * c-decl.c (diagnose_mismatched_decls): Only give special treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE is also true. (merge_decls): Don't clear DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE when defining a built-in function. Don't update DECL_ESTIMATED_INSNS. * dwarf2out.c (dwarf2out_decl): Don't ignore built-in FUNCTION_DECLs. * tree.h: Delete DECL_ESTIMATED_INSNS. * tree-inline.c (struct inline_data): Delete inlined_insns field. (expand_call_inline, optimize_inline_calls): Don't update DECL_ESTIMATED_INSNS nor inlined_insns. * cgraphunit.c (cgraph_analyze_function): Don't update DECL_ESTIMATED_INSNS. 2004-02-07 Zack Weinberg * c-common.c (shadow_warning): Delete. * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete. * c-decl.c (warn_if_shadowing): Issue shadow warnings directly. * c-opts.c (c_common_parse_file): Don't call free_parser_stacks. * c-parse.in (free_parser_stacks): Delete. 2004-02-07 Kazu Hirata * c-opts.c, c-ppoutput.c, cppfiles.c, cpphash.h, cppinit.c, cpplib.h, diagnostic.h, fix-header.c, config/fp-bit.c, config/mips/iris5.h, doc/makefile.texi: Update copyright. 2004-02-06 James E Wilson * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for glibc 2.3 or better. 2004-02-06 Ulrich Weigand * loop.c (force_movables): Transitively increase the priorities of all insns forces by an insn, not just the first one. 2004-02-06 Falk Hueffner PR target/12898 * config/alpha/alpha.c (alpha_emit_set_const_1): If no_new_pseudos, use gen_rtx_SET directly for SImode constants which need multiple instructions to emit. 2004-02-06 H.J. Lu * doc/invoke.texi: Remove the pni option from -mfpmath=. 2004-02-05 Kelley Cook * doc/install.texi: Update automake and autoconf version requirements. Note where to find gcj automake version. 2004-02-05 Kelley Cook * Makefile.in (generate-manpages): Move dependencies to ... (man): here. * doc/makefile.texi: Document new targets. * doc/sourcebuild.texi (Make-lang.in): Document new langhooks. 2004-02-05 Kelley Cook PR/13485 Makefile.in (srcextra): Add a level of indirection to ... (gcc.srcextra): ... here. (po-generated): Delete. (po/$(PACKAGE).pot: Use srcextra instead of po-generated. Depend on options.c. (start.encap): Remove superfluous lang.srcextra dependency. objc/Make-lang.in (po-generated): Delete. 2004-02-05 Rainer Orth * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define. 2004-02-05 Andreas Krebbel * config/s390/s390.md ("*tmqidi_ext"): New insn. ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old pre-reload splitters are transformed to post-reload define_insn_and_split patterns. ("*tmqisi_ext"): Renamed old "*tmqi_ext". 2004-02-05 Rainer Orth PR middle-end/13750 Revert: 2004-01-15 Geoffrey Keating PR pch/13361 * c-typeck.c (constructor_asmspec): Delete. (struct initializer_stack): Delete field 'asmspec'. (start_init): Delete saving of asmspec. (finish_init): Don't update constructor_asmspec. * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree. * stmt.c (expand_asm): Duplicate strings from tree. (expand_asm_operands): Likewise. * tree.c (tree_size): Update computation of size of STRING_CST. (make_node): Don't make STRING_CST nodes. (build_string): Allocate string with tree node. * tree.def (STRING_CST): Update comment. * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST. (tree_string): Place contents of string in tree node. * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string from tree. 2004-02-05 Joseph S. Myers * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to msgid. 2004-02-05 Paul Brook Backport from mainline. 2003-11-22 Phil Edwards PR target/12476 * config/arm/arm.c (arm_output_mi_thunk): In Thumb mode, use 'bx' instead of 'b' to avoid branch range restrictions. Output the thunk immediately before the thunked-to function. * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Do not emit .thumb_func if a thunk is being generated. Emit .code 16 along with .thumb_func if a thunk is not being generated. 2003-11-05 Mark Mitchell * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P parameter. Use it instead of current_function_is_thunk. * function.h (struct function): Update documentation for is_thunk. * tree.h (CALL_FROM_THUNK_P): New macro. * config/alpha/alpha.c (alpha_sa_mask): Do not check no_new_pseudos when testing current_function_is_thunk. * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse. 2004-02-05 Joseph S. Myers * sourcebuild.texi (Test Idioms): Update testcase naming conventions. 2004-02-04 Per Bothner Partially revert/redo 2003-10-01 change; fix -fworking-directory. * c-ppoutput.c (pp_dir_change): New function. * c-common.h (pp_dir_change): New declaration. * cpplib.h (struct cpp_options): Remove working_directory field. * cppinit.c (cpp_find_main_file, cpp_push_main_file): Merge back to (cpp_read_main_file): as before 10-01. Call _cpp_stack_file. Don't handle -fworking_directory here, but in c_common_post_options. (read_original_directory): Don't back up when done. Don't clear no-longer used working_directory flag. * cpplib.h: Update declarations to match. * c-lex.c (cb_dir_change): Move to c-opts.c. (init_c_lex): Don't set dir_change callback here, since we want to set it even if flag_preprocess_only. * c-opts.c (cb_dir_change): Function moved from c-lex.c. (c_common_post_options): Set dir_change callback. Call pp_dir_change if approporiate. (finish_options): Don't call cpp_find_main_file here. Hence remove unneeded parameter and result. Do LC_RENAME for . (c_common_post_options): Call cpp_read_main_file here instead. (c_common_init): Update accordingly. (push_command_line_include): Don't cpp_push_main_file. Do LC_RENAME rather than LC_LEASE to get back to main file. Compared to pre-10-01 version, inline cpp_rename_to_main_file. (c_common_parse_file): Call cpp_read_main_file for subsequent main files, but call finish_options for all files. * c-opts.c (sanitize_cpp_opts): Don't set cpp_opts->working_directory. * fix-header.c (read_scan_file): Call cpp_read_main_file instead of cpp_find_main_file + cpp_push_main_file. * c-lex.c (fe_file_change): Don't set main_input_filename here. * opts.c (handle_options): Only set main_input_filename first time. 2004-02-04 Rainer Orth * Makefile.in: Move target, host overrides after per-language fragments. * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear. (GNATLIBCFLAGS): Remove -g. 2004-02-04 Eric Botcazou * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1 for all modes whose size is greater than 8 bytes if ARCH32. (sparc_va_arg): Handle all modes whose size is greater than 8 bytes by reference if ARCH32. 2004-02-04 Ulrich Weigand * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move to before adddi3 insn patterns. ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31", "reload_insi"): Move to before addsi3 insn patterns. 2004-02-04 Kazu Hirata * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't mention deprecated target macros. 2004-02-03 Wolfgang Bangerth * doc/invoke.texi (x86 options): Fix spelling/wording. 2004-02-03 Richard Sandiford * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to put the original string in a comment. * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument. * config/mips/mips.c (mips_output_ascii): Likewise. * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly. 2004-02-03 Mark Mitchell PR c++/13975 * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and TI_PRIVATE. (access_public_node): Redefine. (access_protected_node): Likewise. (access_private_node): Likewise. * tree.c (build_common_tree_nodes): Create access_public_node, access_protected_node, and access_private_node. 2004-02-03 Alan Modra PR target/13914 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap for retaddr_column. 2004-02-03 Kelley Cook * opts.c (OPT_fwritable_strings): Deprecate -fwritable-strings. 2004-02-03 Steven Bosscher * toplev.c: Fix broken checkin of 2003-12-30, again. 2004-02-02 Eric Christopher Zack Weinberg * c-opts.c (c_common_handle_option): Add -finput-charset. * c.opt: Ditto. * cppcharset.c (_cpp_convert_input): New function. (_cpp_default_encoding): Ditto. * cpphash.h: Add prototypes for above. * cppfiles.c (read_file_guts): Use _cpp_convert_input. * cppinit.c (cpp_create_reader): Use _cpp_default_encoding for narrow execution and input character sets. * doc/cppopts.texi: Document -finput-charset. 2004-02-02 Eric Botcazou * doc/invoke.texi (SPARC options): Further improve. 2004-02-02 Eric Botcazou * config/sparc/sparc.c (function_arg_slotno): Align TImode arguments on a 16-byte boundary in the parameter array if ARCH64. Split handling of TFmode. 2004-02-02 Eric Botcazou * doc/invoke.texi (SPARC options): Document that -mflat is deprecated. 2004-02-01 Eric Botcazou * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3. (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3. (ASM_CPU_SPEC): Likewise * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3. (ASM_CPU_SPEC): Remove -mcpu=v8plus. Handle -mcpu=ultrasparc3. 2004-02-01 Jan Hubicka PR c++/12850 * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and initial pointers. * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS for functions that will be only inlined. (cgraph_mark_function_to_output): Likewise. (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear; do not clear function body. * tree-optimize.c (clear_decl_rtl): Use decl_function_context. (tree_rest_of_compilation): Reorganize the logic releasing function body to use callgraph datastructure. 2004-02-01 Richard Sandiford * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s. 2004-01-31 Eric Botcazou * doc/invoke.texi (SPARC options): Restructure and update. 2004-01-31 Kazu Hirata * doc/invoke.texi: Follow spelling conventions. * doc/tm.texi: Likewise. 2004-01-31 Kazu Hirata * doc/install.texi: Fix typos. * doc/invoke.texi: Likewise. 2004-01-31 Ulrich Weigand * config/s390/s390.c (s390_decompose_address): Do not treat virtual registers as pointers. * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode. 2004-01-31 Jan Hubicka Revert the following patch until after AIX linker bug is fixed: PR c++/12850 * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and initial pointers. * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS for functions that will be only inlined. (cgraph_mark_function_to_output): Likewise. (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear; do not clear function body. * tree-optimize.c (clear_decl_rtl): Use decl_function_context. (tree_rest_of_compilation): Reorganize the logic releasing function body to use callgraph datastructure. 2004-01-31 Kazu Hirata alloc-pool.c, alloc-pool.h, c-lex.c, c-pragma.h, tree-optimize.c, config/alpha/alpha.c, config/alpha/alpha.h, config/alpha/alpha.md, config/alpha/vms.h, config/arm/arm.h, config/arm/linux-elf.h, config/avr/avr.c, config/c4x/c4x.c, config/c4x/c4x.md, config/d30v/d30v.h, config/frv/frv-protos.h, config/frv/frv.c, config/frv/frv.h, config/frv/frv.md, config/frv/frvbegin.c, config/frv/frvend.c, config/i386/cygming.h, config/i386/djgpp.h, config/i386/emmintrin.h, config/i386/gthr-win32.c, config/i386/i386-interix.h, config/i386/i386-protos.h, config/i386/i386.c, config/i386/i386.h, config/i386/openbsd.h, config/i386/winnt.c, config/i386/xm-mingw32.h, config/i386/xmmintrin.h, config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.md, config/ip2k/ip2k.c, config/iq2000/iq2000-protos.h, config/iq2000/iq2000.c, config/iq2000/iq2000.md, config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.md, config/m68k/m68k.md, config/m68k/netbsd-elf.h, config/mcore/mcore-elf.h, config/mcore/mcore.c, config/mcore/mcore.h, config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h, config/mips/iris5gas.h, config/mips/iris6.h, config/mips/iris6gas.h, config/mips/linux.h, config/mips/mips.md, config/mips/netbsd.h, config/mips/openbsd.h, config/mips/windiss.h, config/mn10300/mn10300.c, config/mn10300/mn10300.h, config/pdp11/pdp11.c, config/rs6000/aix.h, config/rs6000/altivec.h, config/rs6000/darwin.h, config/rs6000/xcoff.h, config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h, config/s390/s390.md, config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h, config/sparc/sol2.h, config/stormy16/stormy16.h: Update copyright. 2004-01-30 Dara Hazeghi PR bootstrap/9249 * doc/install.texi: document --enable-__cxa_atexit option. * configure.ac: Disable __cxa_atexit if not supported. * configure: Regenerate. 2004-01-30 Herman A.J. ten Brugge PR target/12978 * c4x.md: (movstrqi*) Use match_scratch instead of match_dup. Remove movstrqi_small because it conflicts with movstrqi_large. 2004-01-30 Kelley Cook * Makefile.in (abs_docdir, abs_srcdir): Define. (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir). 2004-01-30 Ulrich Weigand PR optimization/12147 * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with RELOAD_FOR_OPADDR_ADDR. (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register might be reused as RELOAD_FOR_OPADDR_ADDR register. 2004-01-30 Jan Hubicka * reload.c (get_secondary_mem): Fix updating of secondary_memlocs_elim_used. 2004-01-30 Andrew Pinski * toplev.c: Include alloc-pool.h. * Makefile.in (toplev.c): Update dependencies. 2004-01-30 Eric Botcazou * config/sparc/sparc.h: Update copyright. 2004-01-30 Eric Botcazou PR c/12818 * varasm.c (const_hash_1) : Use the address to compute the hash value if flag_writable_strings. (compare_constant) : Compare the addresses if flag_writable_strings. (build_constant_desc): Do not copy the expression for a STRING_CST if flag_writable_strings. 2004-01-30 Jan Hubicka PR c++/12850 * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and initial pointers. * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS for functions that will be only inlined. (cgraph_mark_function_to_output): Likewise. (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear; do not clear function body. * tree-optimize.c (clear_decl_rtl): Use decl_function_context. (tree_rest_of_compilation): Reorganize the logic releasing function body to use callgraph datastructure. * reload.c (secondary_memlocs_elim_used): New static variable. (get_secondary_mem): Update it. (find_reloads): Use it. * alias.c (reg_base_value): Turn into varray. (reg_base_value_size): Kill. (old_reg_base_value): New deletable varray. (alias_invariant_size): New variable. (REG_BASE_VALUE): Update to use varray. (find_base_value): Likewise. (record_set): Likewise. (record_base_value): Likewise. (memrefs_conflict_p): Likewise. (record_set): Likewise (record_base_value): Likewise. (memrefs_conflict_p): Use alias_invariant_size. (init_alias_analysis): Use varray; set alias_invariant_size; rescale other arrays to be sized by maxreg. (end_alias_analysis): Save reg_base_value; clear alias_invariant_size. * basic-block.h (PROP_POSTRELOAD): New macro. (CLEANUP_LOG_LINKS): New. * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to. * toplev.c (rest_of_handle_life): Preserve LOG_LINKS trought cleanup_cfg. * alloc-pool.c: Include hashtab.h (alloc_pool_descriptor): New structure (alloc_pool_hash): New global variable. (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New. (create_alloc_pool): Update statistics. (free_alloc_pool): Likewise. (pool_alloc): Likewise. (output_info): New structure (print_statistics, dump_alloc_pool_statistics): New function. * alloc-pool.h (alloc_pool_def): Turn name to be constant. (dump_alloc_pool_statistics): Declare. * toplev.c (finalize): Dump statistics. * varray.c: Include hashtab.h (varray_descriptor): New structure. (hash_descriptor, eq_descriptor, varray_descriptor, print_statistics): New static functions (varray_init, varray_grow): Update statistics (dump_varray_statistics): New function. * varray.h (dump_varray_statistics): Declare. * toplev.c (finalize): Call it. 2004-01-30 Ulrich Weigand * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for s390*-*-* targets by specifying a 'nop' insn. * configure: Regenerate. 2004-01-30 Eric Botcazou PR target/11475 * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates. 2004-01-29 Bruce Korb * fixinc/inclhack.def(math_exception): bypass only for glibc. (matherr_decl): rename & relocate as exception_structure. This fix must precede the math_exception fix. * fixinc/fixincl.x: regen 2004-01-29 Richard Henderson * c-parse.in (extension): Use itype. (SAVE_EXT_FLAGS): Don't allocate a tree. (RESTORE_EXT_FLAGS): Don't read a tree. 2004-01-29 Giovanni Bajo * c-lex.c (c_lex): Rename to... (c_lex_with_flags): Add new parameter to get CPP flags. (c_lex): Thunk to c_lex_with_flags while keeping the old interface. * c-pragma.h (c_lex_with_flags): Declare. 2004-01-29 Roger Sayle PR java/13824 * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded recursion. 2004-01-28 John David Anglin * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand to register_operand. 2004-01-28 Zack Weinberg * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di) (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and match_operand expressions so that all match_dups appear lexically after their corresponding match_operands. 2004-01-28 Zack Weinberg Jim Wilson * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move): Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a scratch pointer. (ia64_secondary_reload_class): Delete case GR_REGS. * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal): Do not allocate a scratch register. (reload_inti, reload_outti, reload_intf, reload_outtf): Delete. 2004-01-27 Zack Weinberg * ia64.c (ia64_function_arg): When placing HFAs in integer registers, do not special case the mode used for complex types. Do not advance int_regs until the current register is full. 2004-01-28 Jan Hubicka * function.c (allocate_struct_function): Do not initialize expr, emit and varasm. (prepare_function_start): Do it here. * c-parse.in (maybe_type_qual): Do not produce line number notes. 2004-01-28 Richard Sandiford * config/fp-bit.c (pack_d): When using paired doubles to implement a long double, round the high part separately. (unpack_d): Fix the case in which the high part is a power of two and the low part is a nonzero value of the opposite sign. 2004-01-27 Roger Sayle * config/pa/pa.c (emit_move_sequence): Check that operand1 is a CONST_INT before using INTVAL. 2004-01-27 Ulrich Weigand * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN. * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current frame if !TARGET_BACKCHAIN. * config/s390/s390.md ("allocate_stack"): Use pattern only if TARGET_BACKCHAIN. * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default. 2004-01-27 Richard Sandiford PR target/7297 * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp(). 2004-01-27 Bob Wilson * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG on CQImode and CHImode incoming arguments in register a7. (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL. * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define. * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or xtensa_copy_incoming_a7 before reload. 2004-01-27 Ian Lance Taylor * config/arm/arm.c (output_return_instruction): Only restore IP into SP if frame_pointer_needed. 2004-01-27 Eric Botcazou * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1 for SCmode and DCmode if ARCH32. (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32. * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode if ARCH32. (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode if ARCH32. (BASE_OUTGOING_VALUE_REG): Likewise. 2004-01-27 Eric Botcazou PR target/10904 PR target/13058 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New. Forbid mode changes from SImode for lower FP regs if ARCH64. 2004-01-27 Jakub Jelinek * config/i386/i386.c (ix86_constant_alignment): Decrease alignment of long string literals from 32 bytes to sizeof (void *) when !-Os and to 1 with -Os. 2004-01-27 Kaz Kojima PR optimization/13567 * cse.c (cse_basic_block): Call cse_insn with a non-null libcall_insn for the last SET insn of a no-confilict block. 2004-01-26 Kaveh R. Ghazi * system.h (CHAR_BITFIELD): Delete. (BOOL_BITFIELD): New. * c-decl.c (c_scope): Use BOOL_BITFIELD. * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD. 2004-01-26 J"orn Rennecke * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP may or may not return non-NIL. * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code, check CANNOT_CHANGE_MODE_CLASS 2004-01-26 Jeff Law * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry. Add acute accents for Petur Runolfsson's entry. 2004-01-26 Eric Botcazou Backport from mainline: 2004-01-23 Eric Botcazou Olivier Hainque * fold-const.c (fold_binary_op_with_conditional_arg): Only build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR. 2004-01-26 Eric Botcazou PR target/13666 * config/sparc/sparc.c (function_arg_union_value): New function. (function_arg): Use it to deal with unions. (function_value): Likewise. Define 'regbase' only for ARCH64. Replace a conditional statement by a simpler one. 2004-01-26 Richard Sandiford * config/mips/mips.c (mips16_optimize_gp): Delete. (mips_reorg): Don't call it. 2004-01-25 Richard Sandiford * config/mips/mips.c (mips_offset_within_object_p): New function. (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and SYMBOL_CONSTANT_POOL cases. Also use it for SYMBOL_GENERAL if the ABI has 64-bit pointers and the object file only allows 32-bit symbols. 2004-01-25 Eric Botcazou PR bootstrap/13853 * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0. 2004-01-25 Richard Sandiford * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete. (mips_regno_mode_ok_for_base_p): Declare. * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77. (FRAME_POINTER_REGNUM): Renumber to 78. (FIRST_PSEUDO_REGISTER): Update comment accordingly. (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete. (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete. (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p. (REG_MODE_OK_FOR_BASE_P): Likewise. * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change entry for 77 to "$arg" and entry for 78 to "$frame". (mips_regno_to_class): Map 77 and 78 to ALL_REGS. (mips_reg_mode_ok_for_base_p): Remove. (mips_regno_mode_ok_for_base_p): New function, derived from old BASE_REG_P macro. Don't enforce the mips16 stack pointer restrictions unless we're being strict. (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p. 2004-01-24 Kazu Hirata * doc/frontends.texi: Update copyright. * doc/gcov.texi: Likewise. * doc/gty.texi: Likewise. * doc/sourcebuild.texi: Likewise. 2004-01-24 Kazu Hirata * config/h8300/coff.h: Update copyright. * config/h8300/elf.h: Likewise. * config/h8300/h8300-protos.h: Likewise. * config/h8300/h8300.c: Likewise. * config/h8300/h8300.h: Likewise. * config/h8300/h8300.md: Likewise. 2004-01-24 Hartmut Penner PR target/13674 * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage loading into GPR. 2004-01-24 Zdenek Dvorak PR optimization/12440 * loop.c: Include ggc.h. (loop_optimize): Run garbage collector between optimization of loops. * Makefile.in (loop.o): Add GGC_H dependency. 2004-01-24 Jakub Jelinek * simplify-rtx.c (simplify_relational_operation): Don't simplify address == constant into address + -constant == 0. 2004-01-24 Kazu Hirata * gcc.c (process_command): Don't internationalize the Copyright message. * mips-tfile.c (main): Likewise. 2004-01-23 Kazu Hirata * recog.c: Fix a typo in copyright. 2004-01-23 Kazu Hirata * alias.c, basic-block.h, c-common.c, c-common.h, c-cppbuiltin.c, c-pragma.c, c-pretty-print.c, c-semantics.c, calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c, combine.c, cppcharset.c, cpptrad.c, cse.c, cselib.c, cselib.h, defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c, expr.h, fold-const.c, function.h, gcc.c, gcse.c, genattrtab.c, genautomata.c, genconditions.c, genflags.c, gengtype.c, genopinit.c, genrecog.c, gensupport.c, ggc-zone.c, graph.c, haifa-sched.c, integrate.c, langhooks-def.h, langhooks.c, langhooks.h, local-alloc.c, optabs.c, optabs.h, postreload.c, ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c, rtlanal.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h, target.h, targhooks.c, toplev.h, tree-inline.c, unwind-dw2-fde.h, unwind-pe.h, unwind.h, varray.c, varray.h: Update copyright. 2004-01-23 Bob Wilson * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as separate real and imaginary parts. * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define. 2004-01-23 Richard Henderson PR opt/12941 * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value. (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0) if SHIFT_COUNT_TRUNCATED is set. 2004-01-23 Rainer Orth * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ... (alpha___extern_prefix_sys_stat): ... this. Apply to , too. Tweak to match more variations. * fixinc/tests/base/sys/stat.h: Adapt for new hackname. * fixinc/inclhack.def (alpha___extern_prefix, alpha___extern_prefix_standards): New hacks to obey __PRAGMA_EXTERN_PREFIX. * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New test. * fixinc/tests/base/standards.h: Likewise. * fixincl/inclhack.def (alpha_pthread): Tweak to match more variations. New testcase. * fixinc/tests/base/pthread.h: Handle it. * fixinc/fixincl.x: Regenerate. 2004-01-23 Rainer Orth * fixinc/inclhack.def (bad_lval): Renamed to ... (alpha_bad_lval): ... this. Removed file list. Restrict to alpha*-dec-osf*. * fixinc/fixincl.x: Regenerate. * fixinc/tests/base/libgen.h: Remove, moving test ... * fixinc/tests/base/testing.h: ... here, reflecting new name. 2004-01-23 Ian Lance Taylor * doc/invoke.texi (Optimize Options): Note that --param arguments are subject to change without notice. 2004-01-23 Zack Weinberg PR c/13814 * c-decl.c (diagnose_mismatched_decls): Also discard a built-in if we encounter an old-style definition with the same name. 2004-01-23 Jakub Jelinek * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was set to default{32,64}. 2004-01-21 Jakub Jelinek * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR) [!__powerpc64__]: Corrected to handle kernels with changed ucontext. 2003-11-30 Jan Hubicka * i386.c (ix86_emit_restore_regs_using_mov): Deal with large offsets. 2004-01-23 Eric Botcazou * config/sparc/sparc.c (scan_record_type): New function. (function_arg_slotno): Use it to determine which kinds of registers the record can be passed in. 2004-01-22 Rainer Orth * configure.ac (enable_werror): Fixed typo. * configure: Regenerate. 2004-01-22 Rainer Orth * config.gcc (mips-sgi-irix6*o32): Removed. * config/mips/iris6-o32-as.h: Likewise. * config/mips/iris6-o32-gas.h: Likewise. * config/mips/iris6-o32.h: Likewise. 2004-01-22 Bob Wilson * config/xtensa/xtensa.c (function_arg): Generalize logic so that it handles complex and vector modes. 2004-01-22 Daniel Jacobowitz * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1) (genrtl_for_stmt): Remove emit_nop calls. 2004-01-22 John David Anglin PR target/13713 PR target/13324 * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload, movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload, clrstrdi_prereload, clrstrdi_postreload): Fix constraints. 2004-01-22 Daniel Jacobowitz * config/arm/arm.c: Include "debug.h". (thumb_pushpop): Take two new arguments. Add some commentary. Output frame information when pushing. (thumb_exit, thumb_unexpanded_epilogue): Update calls to thumb_pushpop. (thumb_output_function_prologue): Likewise. Accumulate a CFA offset, and pass it to thumb_pushpop. Output CFI information. (thumb_expand_prologue): Add some frame-related markers and notes. 2004-01-22 Ulrich Weigand * config/s390/s390.c (s390_frame_info): Allow large frame sizes for TARGET_64BIT. (s390_arg_frame_offset): Change return type to HOST_WIDE_INT. * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise. 2004-01-22 Kazu Hirata * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the macro need not be defined if jump-tables should contain relative addresses only when -fPIC or -fPIC is in effect. 2004-01-22 Eric Botcazou * config/sparc/sparc.c (function_arg_slotno): Use FLOAT_TYPE_P to detect FP fields in structures. (function_arg_record_value_1): Likewise. (function_arg_record_value_2): Likewise. 2004-01-22 Eric Botcazou PR target/13559 * config/sparc/sparc.c (function_arg_record_value_3): Revert to 'word_mode' once the first slot has been filled. 2004-01-22 Olivier Hainque * config/sparc/sparc.c (function_arg_record_value_1): Fix computation of the number of integer registers required. 2004-01-22 Hartmut Penner * gcc/config/rs6000/rs6000.c (function_arg) Handle vector register special in function without prototype. (function_arg_advance): Vector parameters get always GPRs allocated for the linux64 target. 2004-01-21 Andrew Pinski PR target/13785 * config/rs6000/rs6000.md (call_value): Force operand 1 not operand 0 into a register. 2004-01-21 John David Anglin * pa-protos.h: Update copyright. * pa.h: Likewise. * pa.md: Likewise. * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3, ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time, ultrix_unistd): New hacks. * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK, ULTRIX_CONST2_CHECK): Add checks. * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise. * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise. * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise. * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise. * fixinc/tests/base/locale.h: New file. * fixincl.x: Rebuilt. 2004-01-21 Andreas Jaeger Michael Matz * doc/extend.texi (Extended Asm): Clarify memory clobber. 2004-01-21 Zack Weinberg * c-decl.c (merge_decls): Kill different_binding_level and different_tu arguments; simplify throughout. (duplicate_decls): Likewise. (pushdecl, merge_translation_unit_decls): Update calls to duplicate_decls. 2004-01-20 Kelley Cook PR bootstrap/12730 * configure.ac: Delete definition and subsitution of docdir. Add info, man, srcman and srcinfo to target hooks. Create doc/ directory. * configure: Regenerate. * Makefile.in: Don't substitute docdir and delete all references throughout. (MAKEINFOFLAGS): Define. (stmp-docobjdir): Delete. (INFOFILES, MANFILES): Define. (info): Call lang.info, srcinfo and lang.srcinfo. (generated-manpages): Call lang.man, srcman and lang.srcman. (srcinfo, srcman): New rules to copy back files to source directory. (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule. (install-man): Revamp rule. (clean): Update dvi directory. (distclean): Delete TAGS from front end directorys. (maintainer-clean): Delete all document files in source directory. objc/Make-lang.in (objc.man, objc.info): Dummy entries. (objc.srcman, objc.srcinfo): Likewise. 2004-01-20 Kaveh R. Ghazi * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and $(SYSTEM_H). (print-rtl1.o): Depend on $(SYSTEM_H). 2004-01-20 John David Anglin * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes. * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d): Likewise. Handle frames larger than 0x7fffffff on 64-bit ports. (emit_move_sequence): Check scratch_reg first in various if statements. Extend source simplification to handle all 64-bit CONST_INTs. (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing frame size. (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for frame offset calculations. * pa.h (NEW_HP_ASSEMBLER): Add comment. (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT, LEGITIMATE_64BIT_CONST_INT_P): Define. (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P. Treat any CONST_INT as legitimate during and after reload. (VAL_32_BITS_P, INT_32_BITS): Define. (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets. 2004-01-21 Alan Modra * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define. * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT. * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document. 2004-01-20 Geoffrey Keating * alias.c (new_alias_set): Mark last_alias_set for PCH. (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it for PCH. (get_frame_alias_set): Likewise, except rename it to 'frame_set'. * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH. (get_TOC_alias_set): Mark 'set' for PCH. 2004-01-20 Richard Sandiford * config/mips/mips.c (mips_load_call_address): Make the call insn use $gp if it could be calling a lazy binding stub. 2004-01-20 Denis Chertykov PR bootstrap/13735 * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X register as pointer after reload. 2004-01-20 Eric Botcazou PR target/13557 * config/sparc/sparc.c (function_arg): Reorder the cases. 2004-01-19 Kelley Cook * Makefile.in (target_noncanonical, program_transform_name): Use immediate define instead of deferred. (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME, PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME, GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of deferred backquote. 2004-01-19 Richard Henderson * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN, don't check memory mode. (unaligned_memory_operand): Likewise. (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't abort for op0 not MEM. * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination is not a reg, copy to a scratch first. (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi, unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le, unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG. (reload_inqi, reload_inhi): Fix mode of op0. (reload_inqi_help, reload_inhi_help, reload_outqi_help, reload_outhi_help): Likewise. Use define_insn_and_split. * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN as well as $29 dead. 2004-01-19 Eric Botcazou * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New. Emit "tls_object" for thread-local objects. * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit "#tls" for thread-local sections. * configure.ac (thread-local checks): Specify --fatal-warnings in every binutils-specific checks. For sparc*-*-*, test whether the OS is Solaris and the tools are native and act accordingly. * configure: Rebuild. 2004-01-19 Jeff Law * contrib.texi: Update Paolo Carlini's entry. New entries for Jerry Quinn and Petur Runolfsson. 2004-01-19 Richard Henderson * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs. * alpha.md (UNSPEC_NT_LDA): Remove. (UNSPEC_CVTLQ, cvtlq): New. (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f. (extendsidi2_fix): Remove. (extendsidi2 splitter): Use cvtlq. (extendsidi2 fp peepholes): Remove. (cvtql): Use SFmode instead of SImode. (fix_trunc?fsi): Update to match. (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New. (movsi): Rename from movsi_nofix, remove f alternatives. (movsi_nt_vms): Similarly. (movsi_fix, movsi_nt_vms_fix): Remove. (nt_lda): Remove. * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda. 2004-01-19 Jan Hubicka * cgraph.c (cgraph_remove_node): Fix removal from linked list. * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed list. (cgraph_remove_unreachable_nodes): New function (cgraph_decide_inlining_of_small_function): Fix pasto. (cgraph_decide_inlining_incrementally): Fix pasto. (cgrpah_decide_inlining): Likewise; remove unreachable nodes. 2004-01-18 Roger Sayle * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing live "next" variable, which can lead to an infinite loop. 2004-01-18 Daniel Jacobowitz * final.c (final_scan_insn): Make non-static again. * output.h (final_scan_insn): Re-add prototype. * config/arc/arc.c (arc_output_function_epilogue): Add NULL to final_scan_insn call. * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise. * config/mips/mips.c (mips_output_conditional_branch): Likewise. * config/pa/pa.c (output_lbranch, output_call): Likewise. * config/sh/sh.c (print_slot): Likewise. * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise. (output_sibcall, sparc_flat_function_epilogue): Likewise. 2004-01-18 Jan Hubicka * basic-block.h (try_redirect_by_replacing_jump): Declare. * cfgcleanup.c (try_optimize_cfg): Use it. * cfgrtl.c (try_redirect_by_replacing_jump): Export. (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch): Kill hack. (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump. 2004-01-18 Andrew Pinski * config/rs6000/altivec.h: Wrap C++ functions in extern "C++" block. * config/rs6000/rs6000.c (rs6000_special_round_type_align): Check for NULL in the chain and remove repeated code. 2004-01-18 Jan Hubicka * coverage.c (checksum_string): Rename to ... (coverage_checksum_string): ... this one, Use crc32_string; recognize names containing random number and zero the number out in order to get match. 2004-01-18 Richard Sandiford * config/mips/mips.c (mips_got_alias_set): Mark for PCH. 2004-01-18 Joseph S. Myers * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi, doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi, doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi, doc/trouble.texi: Remove trailing whitespace. 2004-01-18 Richard Sandiford PR target/7618 * config/mips/mips.c: Include cfglayout.h. (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define. (mips_unspec_offset_high): Add temporary register argument. (mips_load_call_address): New function, split out from... (mips_expand_call): ...here. (mips_output_cplocal): New function. (mips_output_function_prologue, mips_output_function_epilogue): Use it. (mips_emit_loadgp): New function, split out from... (mips_expand_prologue): ...here. (mips_output_mi_thunk): New function. 2004-01-17 Roger Sayle * builtins.c (expand_builtin_expect_jump): Fix mistake in my last patch. Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL. 2004-01-17 Andrew Pinski * config/rs6000/rs6000.c (rs6000_special_round_type_align): Return type is unsigned int not int. * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align): Likewise. 2004-01-18 Joseph S. Myers * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use "GNU/Linux" and "Microsoft Windows" terminology. 2004-01-18 Joseph S. Myers * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi, doc/cppopts.texi, doc/extend.texi, doc/install.texi, doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use @smallexample instead of @example. 2004-01-17 Ziemowit Laski * objc/objc-act.c (build_objc_method_call): Use target hooks instead of macros to determine if ..._stret dispatchers should be used (NeXT runtime only). 2004-01-17 Daniel Jacobowitz * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc) (emit_call_insn_before_sameloc, emit_insn_after_sameloc) (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New macros. * reload1.c (emit_reload_insns): Use them. * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc) (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check for NULL PATTERN. 2004-01-17 Daniel Jacobowitz * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define. (final_scan_insn): Update to take an additional SEEN argument. Emit a line note after the prologue. Make static. (line_note_exists): Remove. (final): Don't initialize line_note_exists. Update call to final_scan_insn. * output.h (final_scan_insn): Remove prologue. * function.c (set_insn_locators): Update comment. (thread_prologue_and_epilogue_insns): Add a comment. 2004-01-17 Joseph S. Myers * doc/invoke.texi, doc/standards.texi: Point to 3.4 version of c99status.html. 2004-01-17 Andrew Pinski PR target/10781 * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align): Prototype. * config/rs6000/rs6000.c (rs6000_special_round_type_align): New function. * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it. * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise. * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise. 2004-01-17 Jan Hubicka * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous commit. * toplev.c (HAVE_conditional_execution): Provide default. (rest_of_handle_reorder_blocks): For conditional_execution target update liveness once after all transformations (rest_of_compilation): Do crossjumping before ce3. 2004-01-17 J. Brobecker * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type(). Remove checks for is_ada() and TREE_UNSIGNED. (subrange_type_die): Emit a byte_size attribute if the subrange type size is different from the base type size. (modified_type_die): Replace call to is_ada_subrange_type() by call to is_subrange_type(). 2004-01-16 Mark Mitchell * configure.ac: Do not do internal checking or -Werror by default. * configure: Regenerated. * doc/include/gcc-common.texi (DEVELOPMENT): @clear it. * version.c (version_string): Mark as prerelease. 2004-01-16 Andrew Pinski * config/sh/sh.c: Include ggc.h. 2004-01-17 Jan Hubicka * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and builtin_expect specially. * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100. (PARAM_LARGE_FUNCTION_INSNS): Set to 3000. * invoke.texi (max-inline-insns-single): Set to 100. (large-function-insns): Set to 3000. 2004-01-16 Jan Hubicka * i386.md (load_tp_di): Fix pasto. PR opt/13608 * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function. * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator, pp_c_character_constant, pp_c_floating_constant, pp_c_additive_expression, pp_c_shift_expression, pp_c_equality_expression, pp_c_and_expression, pp_c_exclusive_or_expression, pp_c_inclusive_or_expression, pp_c_logical_and_expression): Remove inline modifier. * dwarf2out.c (get_AT): Likewise. * et-forest.c (et_splay): Likewise. * ra.h (ra_alloc, ra_calloc): Likewise 2004-01-16 Kazu Hirata * config/frv/frv-protos.h: Fix comment formatting. * config/frv/frv.c: Likewise. * config/frv/frv.h: Likewise. * config/frv/frv.md: Likewise. * config/frv/frvbegin.c: Likewise. * config/frv/frvend.c: Likewise. 2004-01-16 Kazu Hirata * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison. * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention LINKER_DOES_NOT_WORK_WITH_DWARF2. (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove. 2004-01-16 J"orn Rennecke PR 11864 * postreload.c (reload_cse_simplify_operands): Don't remove implicit extension from LOAD_EXTEND_OP. 2004-01-16 Jan Hubicka PR opt/11350 * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal after reload. * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks, rtl_try_redirect_by_replacing_branch): Likewise. 2004-01-15 Geoffrey Keating PR pch/13689 * alias.c (struct alias_set_entry): Mark for GC. (alias_sets): Make static, mark for GC. (record_alias_subset): Use GC to allocate alias structures. * varray.c (element): Make generic varrays GCed. PR pch/13361 * c-typeck.c (constructor_asmspec): Delete. (struct initializer_stack): Delete field 'asmspec'. (start_init): Delete saving of asmspec. (finish_init): Don't update constructor_asmspec. * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree. * stmt.c (expand_asm): Duplicate strings from tree. (expand_asm_operands): Likewise. * tree.c (tree_size): Update computation of size of STRING_CST. (make_node): Don't make STRING_CST nodes. (build_string): Allocate string with tree node. * tree.def (STRING_CST): Update comment. * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST. (tree_string): Place contents of string in tree node. * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string from tree. * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case altivec operands. 2004-01-15 Kazu Hirata * c-common.h: Fix comment formatting. * c-cppbuiltin.c: Likewise. * c-pragma.c: Likewise. * calls.c: Likewise. * collect2.c: Likewise. * cppcharset.c: Likewise. * cpptrad.c: Likewise. * dbxout.c: Likewise. * defaults.h: Likewise. * dwarf2out.c: Likewise. * fold-const.c: Likewise. * genautomata.c: Likewise. * genconditions.c: Likewise. * genflags.c: Likewise. * gengtype.c: Likewise. * integrate.c: Likewise. * loop.c: Likewise. * predict.c: Likewise. * sdbout.c: Likewise. 2004-01-15 Zack Weinberg * config/ia64/ia64.md (*movti_internal): C output template extracted to ia64.c. (*movti_internal_reg): Delete. (reload_inti, reload_outti): Use the correct mode on operand 2 in the first place, don't fix it up in the output template. (movtf, reload_ointf, reload_outtf): New expanders. (*movtf_internal): New define_insn_and_split. * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode; make static; do not hand TFmode CONST_DOUBLEs to split_double. (ia64_split_tmode_move): New function, body mostly pulled from ia64.md:*movti_internal. (ia64_function_arg_words): New function, extracted common logic from ia64_function_arg et seq. (ia64_function_arg_offset): Likewise. Handle correctly the case of a scalar quantity 16 bytes wide with only 8-byte alignment. (ia64_function_arg, ia64_function_arg_partial_nregs) (ia64_function_arg_advance): Use ia64_function_arg_words and ia64_function_arg_offset. (ia64_function_value): TCmode does not go in float regs. (ia64_secondary_reload_class): Also handle TFmode. * config/ia64/ia64-protos.h: Remove prototype for ia64_split_timode; add prototype for ia64_split_tmode_move. 2004-01-15 Kelley Cook * Makefile.in (MAINT): Make it an immediate assignment. 2004-01-15 Kazu Hirata * config/m32r/m32r.md: Remove useless calls to gen_lowpart. 2004-01-15 Kazu Hirata * config/h8300/coff.h: Replace Hitachi with Renesas. * config/h8300/elf.h: Likewise. * config/h8300/h8300-protos.h: Likewise. * config/h8300/h8300.c: Likewise. * config/h8300/h8300.h: Likewise. * config/h8300/h8300.md: Likewise. * config/h8300/lib1funcs.asm: Likewise. 2004-01-15 Andrew Pinski * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF around it. 2004-01-15 Kazu Hirata * config/h8300/h8300.c (h8300_return_in_memory): New. (TARGET_STRUCT_VALUE_RTX): Likewise. (TARGET_RETURN_IN_MEMORY): Likewise. * config/h8300/h8300.h (STRUCT_VALUE): Remove. (RETURN_IN_MEMORY): Likewise. 2004-01-15 Richard Earnshaw PR optimization/13375 * gcse.c (handle_avail_expr): Just return if the source is not a single set. 2004-01-15 Richard Earnshaw Daniel Jacobowitz * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case. (EQUIV): Define. (ARM_FUNC_ALIAS): New macro. * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it. * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it. 2004-01-15 John David Anglin PR optimization/12372 * calls.c (expand_call): Add call_fusage data for stack arguments in constant calls. 2004-01-15 Alan Modra * config/rs6000/rs6000.c (uses_TOC): Correct comment. Make static. (rs6000_elf_declare_function_name): Formatting. * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration. 2004-01-15 Jan Hubicka PR bootstrap/13692 * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in previous patch. 2004-01-15 Richard Henderson * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after integer regs of the same call-savedness. 2004-01-15 Andreas Schwab PR bootstrap/13562 * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc status for NOTB/NOTW/NEGW methods. 2004-01-15 Kazu Hirata * doc/invoke.texi: Update dump file names. Fix a typo. 2004-01-15 Kazu Hirata * builtins.c (expand_builtin_va_end): Don't use EXPAND_BUILTIN_VA_END. * system.h (EXPAND_BUILTIN_VA_END): Poison. * config/d30v/d30v.h: Remove a commented-out definition of EXPAND_BUILTIN_VA_END. * config/stormy16/stormy16.h: Likewise. 2004-01-15 Kazu Hirata * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison. * targhooks.c (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING_REGNUM. 2004-01-15 Kelley Cook PR bootstrap/12744 * configure.in: Revamp enable-generated-files-in-srcdir rule to define GENINSRC and not parsedir. Define srcextra as a langhook. * configure: Regenerate. * Makefile.in: Suppress default .l.c rule. Don't substitute parsedir and delete all references throughout. Conditionally define rule for srcextra dependent on GENINSRC. (stmp-docobjdir): Delete. (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule. (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c, and gengtype-yacc.h back to source directory. (maintainer-clean): Delete all parse files in source directory. (distclean): Delete generated files. * objc/Make-lang.in (objc-parse.o): Use implicit build rule. (objc-parse.c, objc-parse.y): Don't use parsedir. (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source directory if requested. (po-generated): Don't use parsedir. (objc.maintainer-clean): Delete above files from source directory. 2004-01-14 Kazu Hirata * doc/tm.texi (FUNCTION_VALUE): Fix a typo. 2004-01-14 Kazu Hirata * doc/tm.texi: Replace RETURN_IN_MEMORY with TARGET_RETURN_IN_MEMORY. 2004-01-15 Jan Hubicka * builtins.c (std_expand_builtin_va_arg): Align operand when needed. * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic functions accepting SSE arguments (function_arg): Warn only when asked to warn. * i386.h (ix86_args): Add warn_sse/warn_mmx fiels. 2004-01-14 Joseph S. Myers * c-parse.in (stmts_and_decls): Make label at end of compound statement a hard error. 2004-01-14 Jan Hubicka * cgraph.c (create_edge): Use local.redefined_extern_inline. * cgraph.h (cgraph_local_info): Sort fields by size; add redefined_extern_inline (cgraph_global_info): Sort fields by size. (cgraph_node): Likewise. * cgraphunit.c (cgraph_finalize_function): Se local.redefined_extern_inline on redefinition. (cgraph_analyze_function): Use it; fix formating. 2004-01-14 Jan Hubicka PR c++/10776 * sched-deps.c (trye_dependency_cache, anti_dependency_cache, outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of bitmaps (cache_size): New variable (add_dependence): Update use; canonize early memory locations (sched_analyze_1): Likewise. (sched_analyze_2): Likewise. (init_dependency_caches): Initialize bitmaps. (free_dependency_caches): Free bitmaps 2004-01-14 Kazu Hirata * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with targetm.calls.strict_argument_naming(). * target.h: Likewise. 2004-01-14 Richard Henderson PR debug/13231 * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue instructions. 2004-01-14 Richard Henderson PR c++/12491 * except.c (struct eh_region): Add u.fixup.resolved. (resolve_one_fixup_region): Split out from ... (resolve_fixup_regions): ... here. 2004-01-14 Kazu Hirata * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0. 2004-01-14 Kazu Hirata * config/alpha/alpha.h (STRUCT_VALUE): Remove. * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef. (STRUCT_VALUE): Remove. 2003-01-14 Steven Bosscher * system.h: Poison PROMOTED_MODE * integrate.c (expand_inline_function): Don't mention the PROMOTED_MODE. * loop.c (update_giv_derive): Same. * tree.h (DECL_RTL): Same. 2004-01-14 J"orn Rennecke PR target/9365 * sh.c (gen_block_redirect): Add special handling of RETURN. (gen_far_branch) Don't call gen_stuff_delay_slot if there is no far branch target (i.e. it's a return). 2004-01-14 Kazu Hirata * regrename.c (find_oldest_value_reg): Fix a warning. 2004-01-14 Richard Earnshaw PR bootstrap/12527 * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file. Move linux-gas.h and linux-elf.h before aout.h. * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already. * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define. 2004-01-14 Kazu Hirata * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx (CONST_INT, VOIDmode, ...). 2004-01-14 Richard Earnshaw * regrename.c (find_oldest_value_reg): If the replacement uses multiple hard registers, check that all of them are in CLASS. 2004-01-14 Jan Hubicka * alias.c (get_alias_set): Initialize alias set to 0 when subset is impossible. 2004-01-14 Kelley Cook * Makefile.in: Define MAINT from --enable-maintainer-mode. 2004-01-14 Hartmut Penner * gcc/config/rs6000/rs6000.c (rs6000_stack_info) Calculate always vrsave_mask if TARGET_ALTIVEC. (rs6000_emit_prologue): Emit code for vrsave only if TARGET_ALTIVEC_VRSAVE. (rs6000_emit_epilogue): Likewise. 2004-01-14 Eric Botcazou * config/sparc/sparc.md (tie_add32): Fix pasto. (tie_add64): Likewise. 2004-01-14 Zdenek Dvorak * config/i386/i386.md (*addqi_1_slp): Do not access operands[2]. 2004-01-13 Kazu Hirata * config/iq2000/iq2000-protos.h: Fix comment formatting. * config/iq2000/iq2000.c: Likewise. * config/iq2000/iq2000.md: Likewise. 2004-01-14 J. Brobecker * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME. (subrange_type_die): Add handle for nameless subrange types. 2004-01-13 Kazu Hirata * config/h8300/h8300-protos.h: Replace do_movsi with h8300_expand_movsi. * config/h8300/h8300.c (do_movsi): Change to h8300_expand_movsi. * config/h8300/h8300.md (movsi): Replace do_movsi with h8300_expand_movsi. (movsf): Likewise. 2004-01-13 Kazu Hirata * config/h8300/h8300.c (dosize): Change to h8300_emit_stack_adjustment. Update callers. 2004-01-13 Kazu Hirata * config/h8300/h8300.md (movstrictqi): Add an alternative with the source being post_inc. Tighten the predicate for the destination to register_operand. (movstricthi): Likewise. 2004-01-13 Kazu Hirata * system.h (SHARED_BSS_SECTION_ASM_OP): Poison. * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP. * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove. 2004-01-14 Jan Hubicka Partial fix PR c++/12850 * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when at zero nest level. 2004-01-13 Bernardo Innocenti * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr" pseudo-register. 2004-01-13 Devang Patel PR c++/12709 * c-common.c (finish_fname_decls): Use the chain only if the tree is an expr_stmt. 2004-01-13 Vladimir Makarov * rtl.def: Add comment about new option in automata_option. * genautomata.c (PROGRESS_OPTION): New macro. (progress_flag): New global variable. (gen_automata_option): Process `progress'. (transform_insn_regexps, check_unit_distributions_to_automata, make_automaton, NDFA_to_DFA, build_automaton, create_automata, expand_automata, write_automata): Print about the progress only if progress_flag. Remove fflush. (initiate_automaton_gen): Process command line flag `-progress'. * doc/md.texi: Describe the new option. 2004-01-13 Zdenek Dvorak * cfg.c (dump_bb): Dump entry edges. 2004-01-13 Richard Earnshaw * arm.c (thumb_legitimate_address_p): Only allow constant pool references from SImode. * arm.md (thumb_movhi_insn): Don't allow minipool references. 2004-01-13 Kazu Hirata * system.h (TEXT_SECTION): Poison. * varasm.c (text_section): Don't use TEXT_SECTION. * config/sh/sh.c (sh_file_start): Fix a comment typo. * doc/tm.texi (TEXT_SECTION): Remove. 2004-01-13 Ben Elliston * doc/rtl.texi (Vector Operations): Remove defunct vec_const item. 2004-01-12 James E Wilson * unwind-libunwind.c: Delete. 2004-01-12 Zack Weinberg PR 13656 * c-decl.c (diagnose_mismatched_decls): Whenever newtype or oldtype is set, set *newtypep or *oldtypep too. Do not set them at the very end. (validate_proto_after_old_defn): Restructure for comprehensibility; make error messages clearer. 2004-01-12 Zack Weinberg * varray.h (VARRAY_POP): Add checking variant, aborts on underflow. (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked. * varray.c: No need to prototype error. (varray_check_failed): Wrap long string onto two lines. (varray_underflow): New function. 2004-01-13 Steven Bosscher PR c++/13376 * function.h (struct function): Kill `name' field. (current_function_name): Make it an extern function. * function.c (current_function_name): New function. * graph.c: Update all uses of current_function_name. * gcse.c: Likewise. * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c, config/mips/mips.c, config/pdp11/pdp11.c: Likewise. * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P instead of a strcmp with "main". 2004-01-13 Jan Hubicka * c-decl.c (diagnose_mismatched_decls): Fix warning calls. * cgraphunit.c (cgraph_optimize_function): Always do optimize_inline_calls when there is always_inline callee. (cgraph_decide_inlining): Fix formating. * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline functions. (expand_call_inline): Likewise. * toplev.h (sorry): Fix prototype. 2004-01-12 Roger Sayle * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle conditional jumps that drop through to unconditional jumps or the end of the sequence. 2004-01-13 Jan Hubicka * alias.c (new_alias_set): Construct the alias_set varray. (init_alias_once): Don't do it here. 2004-01-12 Marc Espie * system.h: handle YYBYACC like YYBISON. 2004-01-12 Jonathan Merriman PR target/10847 * config.gcc: No longer includes conflicting header sparc/sol2.h when building on sparc64-*-openbsd*. 2004-01-12 Andrew Pinski PR debug/13539 * dbxout.c (dbxout_type): Protected inheritance is not private but protected. 2004-01-12 Richard Sandiford * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch. 2004-01-12 Kazu Hirata PR optimization/12508. * combine.c (try_combine): Remove a dead set in a parallel even if its destination is a subreg. Revert: 2003-06-03 Kazu Hirata * combine.c (simplify_set): Don't move a subreg in SET_SRC to SET_DEST if WORD_REGISTER_OPERATIONS is not defined. 2004-01-12 Geoffrey Keating * real.c: Update copyright date. * emit-rtl.c: Likewise. * rtl.h: Likewise. * dwarf2out.c: Likewise. * config/rs6000/darwin-ldouble.c: Likewise. * config/rs6000/rs6000.md: Likewise. 2004-01-12 David Edelsohn * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX TFmode to SImode libfuncs. 2004-01-12 Roger Sayle PR middle-end/11397 * varasm.c (assemble_alias): Remove weak aliases from weak_decls. 2004-01-12 Jan Hubicka PR opt/12826 * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be stored. PR opt/12863 * cfgcleanup.c (label_is_jump_target_p): Move to... * rtlanal.c (label_is_jump_target_p): ... here. * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Fix redirecting of fallthru edges unified with branch edges. 2004-01-12 Richard Earnshaw * simplify-rtx.c (simplify_immed_subreg): Correctly extract the high word of an integral CONST_DOUBLE. 2004-01-12 Paul Brook * simplify-rtx.c (simplify_plus_minus): Always generate canonical form. 2004-01-12 J"orn Rennecke PR target/13585 * sh-protos.h (check_use_sfunc_addr): Declare. * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions. * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate. 2004-01-12 Jan Hubicka * alias.c: Invlude varray.h (alias_sets): Turn into varray. (get_alias_set_entry): Use VARRAY; mark inline. (mems_in_disjoint_alias_sets_p): Mark inline. (record_alias_subset): Use varray. (init_alias_once): Initialize varray. (new_alias_set): Grow array. * varray.c: Make VARRAY_GENERIC_PTR non GTYized. 2004-01-12 Jan Hubicka Partial fix for PR opt/10776 II * cselib.c: Include params.h (cselib_invalidate_mem): Limit amount of nonconflicting memory locations. * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New. * Makefile.in (cselib.o): Depend on params.h 2004-01-12 Richard Sandiford * combine.c (combine_simplify_rtx): Don't pass VOIDmode to simplify_unary_operation if the operand has a known mode. 2004-01-12 Hartmut Penner PR target/13534 * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New predicate to handle 'ld' conform addresses. * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y' contraint. (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint are memory contraints. * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand): New prototype. * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64): Change 'o' to 'Y' constraint. (*movdf_softfloat64): Ditto. 2004-01-12 Bernardo Innocenti * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the brace-enclosed syntax in all C output statements. 2004-01-12 David Edelsohn PR target/13401 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Objective-C language type value is 14. 2004-01-12 Markus F.X.J. Oberhumer PR c/12148 * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of `int' in a number of places to make sure we always have a SImode and not a HImode. Add a 'L' suffix to a number of constants. 2004-01-11 John David Anglin * pa.c: Don't include obstack.h. * pa.md: Correct constraint in pattern for loading PIC label address. 2004-01-11 Kaz Kojima * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine before defining. 2004-01-11 Steven Bosscher PR fortran/9972 * toplev.c (rest_of_handle_inline): Also consider functions for deferral if the language is GNU F77. 2004-01-11 Zack Weinberg * c-decl.c (diagnose_arglist_conflict): Add missing space to diagnostic messages. 2004-01-11 Jakub Jelinek PR middle-end/13392 * builtins.c (expand_builtin_expect_jump): Handle conditional jumps to drop through label. Don't fall back to SCC even when conditional jump has not been found. 2004-01-11 Jan Hubicka * invoke.texi: Fix syntax error in previous patch. Partial fix for PR opt/10776 * Makefile.in (reload.o): Include param.h * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter. * reload.c: Include params.h. (find_equiv_reg): Work limiting check. * invoke.texi: Document. 2004-01-11 Richard Sandiford * config/mips/mips.c (mips_symbolic_constant_p): Don't allow out-of-bounds accesses to string constants. Simplify mips16 case accordingly. 2004-01-11 Richard Sandiford PR optimization/13469 * toplev.c (rest_of_compilation): Call purge_all_dead_edges after reload_cse_regs (-fnon-call-exceptions only). 2004-01-11 Kazu Hirata * config/mcore/lib1.asm: Fix comment formatting. * config/mcore/mcore-elf.h: Likewise. * config/mcore/mcore.c: Likewise. * config/mcore/mcore.h: Likewise. * config/mcore/mcore.md: Likewise. 2004-01-10 Zack Weinberg * c-decl.c (duplicate_decls): Break apart into... (diagnose_arglist_conflict, validate_proto_after_old_defn) (locate_old_defn, diagnose_mismatched_decls, merge_decls): ... these new functions. Restructure for comprehensibility. Remove various archaic special cases. Always report the location of the previous declaration when a diagnostic is issued. (redeclaration_error_message): Fold into diagnose_mismatched_decls. (match_builtin_function_types): Delete unnecessary forward declaration. 2004-01-10 Zack Weinberg * genautomata.c (make_automaton, NDFA_to_DFA): Print progress bars with '.' characters instead of '*'. (build_automaton): Change notes to match. 2004-01-10 Kazu Hirata * config/m32r/m32r.md: Use define_constants for unspec and unspec_volatile. 2004-01-10 Jan Hubicka PR opt/11635 * expr.c (expand_expr_real): More curefully expand union casts. 2004-01-10 Kazu Hirata * config/m32r/m32r.md (flush_icache): Use 1 for unspec_volatile. 2004-01-10 David Edelsohn James E Wilson PR debug/12860 * dbxout.c (dbxout_symbol): Remove initialization of current_sym_code, current_sym_value, and current_sym_addr. (dbxout_symbol_location): Same. (dbxout_prepare_symbol): Zero current_sym_code, current_sym_value, and current_sym_addr. 2004-01-10 Richard Sandiford * tree.c (get_unwidened): Reorder conditions so that the null pointer check is done first. 2004-01-09 Eric Christopher * toplev.c (rest_of_handle_cfg): Add reg_scan pass if we're running mark_constant_function. 2004-01-09 Jeff Bailey PR target/12561 * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR. 2004-01-09 Andrew Pinski PR debug/11231 * dbxout.c (dbxout_type_fields): Return if any item is error_mark_node or the type is error_mark_node. 2004-01-09 Geoffrey Keating * config/rs6000/darwin-ldouble.c: Add big comment explaining exactly what is expected as a 'long double'. (_xlqadd): When a value to be returned is representable as a 'double', just return it directly, do not construct it using a union. Also, correct final fixup. (_xlqmul): Likewise. (_xlqdiv): Likewise. * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c. * config/rs6000/rs6000.md (fix_trunctfdi2): Delete. 2004-01-09 Richard Henderson * recog.c (constrain_operands): Validate mem operands. 2004-01-09 James E Wilson * gcc.c (init_spec): Remove -lunwind from shared case. * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind. 2004-01-09 Steve Ellcey * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*. * configure: Regenerate 2004-01-09 Joseph S. Myers PR c/11234 * c-typeck.c (build_c_cast): If pedantic, warn for conversions between function and object pointers. (digest_init): When comparing a pointer to function type to the target type, only apply TREE_TYPE once to the pointer to function type. * except.c (for_each_eh_label_1): Treat data as a pointer to a function pointer rather than casting it to a function pointer. (for_each_eh_label): Update caller. * recog.h (struct insn_data): Use a struct or union for output. * genoutput.c (output_insn_data): Update. * final.c (get_insn_template): Update. 2004-01-09 Mark Mitchell * expr.h (expand_expr): Make it a macro, not a function. (expand_expr_real): New function. * expr.c (store_expr): Adjust logic for deciding whether or not to copy the value returned by expand_expr. (expand_expr): Rename to ... (expand_expr_real): ... this. Add alt_rtl parameter. Adjust calls to language hooks. * c-common.h (c_expand_expr): Adjust prototype. * c-common.c (c_expand_expr): Add alt_rtl parameter. * langhooks-def.h (lhd_expand_expr): Change prototype. * langhooks.c (lhd_expand_expr): Add all_rtl parameter. * langhooks.h (lang_hooks): Change type of expand_expr. * stmt.c (stmt_status): Add x_last_expr_alt_rtl. (last_expr_alt_rtl): Likewise. (expand_expr_stmt_value): Set last_expr_alt_rtl. (clear_last_expr): Clear it. (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL. (expand_end_bindings): Save and restor last_expr_alt_rtl. * tree.def (RTL_EXPR): Give it an additional operand. * tree.h (RTL_EXPR_ALT_RTL): New macro. 2004-01-09 Kazuhiro Inaoka * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__. * config/m32r/m32r.c (call26_operand): Allow in PIC mode. 2004-01-09 Kazu Hirata PR target/13380. * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17) or (ne:SI (reg:CC 17) (const_int 0)). Be specific about modes wherever possible. 2004-01-09 Kazu Hirata * config/m32r/m32r.c (m32r_expand_block_move): Call gen_movestrsi_internal with two more arguments. (m32r_output_block_move): Adjust operand numbers. Properly update the source and destination pointers. * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of 'r+'. Change the set detinations to match_operand. 2004-01-09 Kazu Hirata * final.c (FIRST_INSN_ADDRESS): Remove. (shorten_branches): Don't use FIRST_INSN_ADDRESS. * system.h (FIRST_INSN_ADDRESS): Poison. * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS. * config/m32r/m32r-protos.h: Remove the prototype for m32r_first_insn_address. * config/m32r/m32r.c (m32r_first_insn_address): Remove. * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise. * doc/md.texi (FIRST_INSN_ADDRESS): Likewise. 2004-01-09 J. Brobecker * dwarf2out.c (gen_enumeration_type_die): Return the DIE that we just created. (is_ada_subrange_type): DIEs for enumeration subtypes should be emitted as subrange types too. (subrange_type_die): Add handling of enumeration subtypes. 2004-01-08 Richard Henderson PR opt/12441 Revert: Sat Mar 30 14:08:55 CET 2002 Jan Hubicka * i386.c (aligned_operand): Be prepared for SUBREGed registers. (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG. (ix86_address_cost): Be prepared for SUBREGed registers. (legitimate_address_p): Accept SUBREGed registers. 2004-01-08 Kelley Cook * Makefile.in: Rename configure.in to configure.ac * doc/sourcebuild.texi: Likewise. * configure: Regenerate. * config.in: Regenerate. 2004-01-08 Stuart Hastings * config/i386/i386.md: Typos in MMX/SSE immediate shifts. 2004-01-08 Jan Hubicka * cgraphunit.c (cgraph_decide_inlining): Fix typo. 2004-01-08 Geoffrey Keating * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset. (UNSPEC_FIX_TRUNC_TF): New constant. (movtf_internal): Make splitter active only when insn is active. (extenddftf2): Rewrite to properly load zero into low part. (extenddftf2_internal): New. (extendsftf2): Rewrite. (truncdftf2): Correct length. (floatditf2): Delete. (fix_trunc_helper): New. (fix_trunctfdi2): Use fix_trunc_helper. (fix_trunctfsi2): Likewise.fix_trunc (fix_trunctfsi2_internal): New. * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum addresses are legitimate on Darwin even when flag_pic. (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create non-offsettable addresses for loads of TFmode constants. 2004-01-08 Kazuhiro Inaoka * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit variables in the appropriate bss section. 2004-01-09 Alan Modra * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure target_flags has MASK_POWERPC64 when -m64. * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64 to 620, 630, power3, power4 and rs64a entries. * config/rs6000/rs6000.h (MASK_64BIT): Expand comment. 2004-01-08 Richard Sandiford * simplify-rtx.c (simplify_immed_subreg): Fix construction of floating-point constants. 2004-01-08 J. Brobecker * dwarf2out.c (subrange_type_die): Add context_die parameter. Create the subrange_type DIE using the given context DIE. (modified_type_die): Update call to subrange_type_die. 2004-01-08 Zack Weinberg * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h: Add multiple-include guard. 2004-01-08 Hartmut Penner * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept all vector constant loadable by vsplt*. (output_vec_const_move): Likewise. 2004-01-07 Joseph S. Myers PR c/6024 * c-typeck.c (comptypes): Only treat enumerated types in the same translation unit as compatible with each other when they are the same type. * doc/extend.texi: Update. 2004-01-07 Joseph S. Myers PR c/12165 * c-decl.c (grokdeclarator): Take type qualifiers of typedefed array type from the array element type. 2004-01-07 Alan Modra * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function. * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare. * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define. (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment. * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define. 2004-01-06 Eric Christopher * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default. (DWARF2_DEBUGGING_INFO): Define. (PREFERRED_DEBUGGING_TYPE): Set to dwarf2. * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove. * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0 for irix as. (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as. * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove. * config/mips/iris5gas.h: Ditto. (DBX_DEBUGGING_INFO): Remove. (DWARF2_DEBUGGING_INFO): Ditto. (MIPS_DEBUGGING_INFO): Ditto. (PREFERRED_DEBUGGING_TYPE): Ditto. * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove. (PREFERRED_DEBUGGING_TYPE): Ditto. (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto. * config/mips/elf64.h: Ditto. 2004-01-06 Jan Hubicka * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate. (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use. 2004-01-06 Geoffrey Keating * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c. (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128. * config/rs6000/darwin-ldouble.c: New. * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg for constants. (constant_subword): Delete. * rtl.h (constant_subword): Delete prototype. (immed_double_const): Is not in varasm.c. * simplify-rtx.c (simplify_immed_subreg): New. (simplify_subreg): Use simplify_immed_subreg. * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather than trying to generate RTL directly. (fix_trunctfsi2): Use expand_fix rather than trying to generate RTL directly. * dwarf2out.c (add_const_value_attribute): Remove incorrect comment. 2004-01-06 David Edelsohn * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each function into a separate macro. (read_only_data_section): Add void argument. (private_data_section): Same. (read_only_private_data_section): Same. (toc_section): Same. 2004-01-06 Jan Hubicka * invoke.texi: Remove typo in last change. PR target/10301 * config.gcc: Accept opteron and athlon-64 as variants of k8. * i386.c (override_options): Likewise. * invoke.texi (i386 -mtune): Expand documentation. 2004-01-06 Kazu Hirata * alias.c: Fix comment typos. * builtins.c: Likewise. * cfg.c: Likewise. * df.c: Likewise. * dominance.c: Likewise. * dwarf2out.c: Likewise. * emit-rtl.c: Likewise. * expr.c: Likewise. * final.c: Likewise. * fold-const.c: Likewise. * gcse.c: Likewise. * genattrtab.c: Likewise. * genrecog.c: Likewise. * gensupport.c: Likewise. * ggc-zone.c: Likewise. * integrate.c: Likewise. * local-alloc.c: Likewise. * loop.c: Likewise. * recog.c: Likewise. * regmove.c: Likewise. * reg-stack.c: Likewise. * reorg.c: Likewise. * rtlanal.c: Likewise. * rtl.h: Likewise. * sched-ebb.c: Likewise. * simplify-rtx.c: Likewise. * toplev.c: Likewise. * varasm.c: Likewise. 2004-01-06 Kazu Hirata * doc/install.texi: Fix typos. * doc/invoke.texi: Likewise. * doc/md.texi: Likewise. 2004-01-06 Kazuhiro Inaoka * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed 2004-01-06 Jan Hubicka * i386.c (init_cumulative_args): Add handling of MMX_REGPARM. (function_arg_advance): Do not pass aggregates in SSE; deal handling of MMX_REGPARM. (function_arg): Add new warnings about ABI changes; fix SSE_REGPARM; add MMX_REGPARM. * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields. (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI. (MMX_REGPARM_MAX): Similarly for -mmmx. 2004-01-05 Kazu Hirata * config/sh/linux.h: Fix comment formatting. * config/sh/netbsd-elf.h: Likewise. * config/sh/sh.c: Likewise. * config/sh/sh.h: Likewise. * config/sh/vxworks.h: Likewise. 2004-01-05 Kazu Hirata * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison. * toplev.c (output_file_directive): Don't use ASM_OUTPUT_MAIN_SOURCE_FILENAME. 2004-01-05 Steven Bosscher * toplev.c: Fix broken checkin of 2003-12-30. 2004-01-05 Daniel Berlin * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS (USING_MMAP): We don't support non-mmap. (struct alloc_chunk): Steal 1 bit from typecode, use it to mark large objects. (struct page_entry): Remove bytes_free. (struct page_table_chain): Remove. (struct globals): Remove page_table member. (loookup_page_table_entry): Function deleted. (set_page_table_entry): Ditto. (ggc_allocated_p): No longer need page table lookups. (ggc_marked_p): Ditto. (alloc_small_page): Don't care about bytes_free anymore. (alloc_large_page): Round up size. (ggc_alloc_zone_1): Mark large objects as such, and calculate their size the new way. Remove page table lookups and setting. (ggc_get_size): Calculate large object size the new way. (sweep_pages): Redo to account for fact that we no longer have bytes_free. (ggc_collect): No longer need to reincrement bytes_free. (ggc_pch_alloc_object): Handle new large objects properly. (ggc_pch_read): Put PCH stuff into it's own uncollected zone. 2004-01-05 Kazu Hirata * doc/invoke.texi: Remove a page break. 2004-01-05 Kazu Hirata * config/avr/avr.c (avr_output_function_prologue): Remove an extra pair of curly braces. 2004-01-05 Kazu Hirata * config/mn10300/mn10300.c: Fix comment formatting. * config/mn10300/mn10300.h: Likewise. 2004-01-05 Richard Kenner * tree.h: Update documentation on nothrow_flag. * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for types. 2004-01-05 Kazu Hirata * doc/invoke.texi: Remove traces of dead ports. 2004-01-05 Richard Sandiford * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs option. 2004-01-05 Richard Sandiford PR target/12945 * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for counter labels. * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete. (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating string constants if TARGET_MIPS16. Use SYMBOL_REF_DECL to check the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P. (mips_symbol_insns): Don't trust the local/global classification. (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol. (override_options): Make -mabicalls -fno-unit-at-a-time imply -mno-explicit-relocs. (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish between local and global symbols. 2004-01-05 Richard Sandiford * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare. (mips_preferred_reload_class): Declare. * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function. (EXTRA_CONSTRAINT): Update accordingly. (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class. * config/mips/mips.c (mips_dangerous_for_la25_p): New function. (mips_preferred_reload_class): New function. Prefer LEA_REGS if mips_dangerous_for_la25_p. (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS if mips_dangerous_for_la25_p. 2004-01-05 Bernardo Innocenti * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison warning. 2004-01-04 Nathanael Nerode * configure.ac: Use AC_PROG_CPP_WERROR. * configure: Regenerate. 2004-01-04 Zack Weinberg * .cvsignore: Add autom4te.cache. 2004-01-04 Richard Sandiford * doc/invoke.texi: Revamp documentation of MIPS options. Remove -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile, -m4650, -mfix7000 and -(m)no-crt0. Put endianness options first, then architecture options, then ABI options. General rewording. 2004-01-04 Joseph S. Myers PR c/3414 * doc/extend.texi: Clarify definition of malloc attribute. 2004-01-04 Jan Hubicka * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency. * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed * cgraph.h (cgraph_edge): Replace inline_call by inline_failed (cgraph_inline_p): Add extra argument reason. * cgraphunit.c: Minor formating fixes. cgraph_first_inlined_callee): New functions. (record_call_1): Record builtins too. (cgraph_analyze_function): Update inline_failed messages. (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into, cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed. (cgraph_check_inline_limits): Likewise; Add argument reason. (cgraph_set_inline_failed): New static function. (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set reasons. (cgraph_inline_p): Add new argument reason. * tree-inline.c (expand_call_inline): Update warning. 2004-01-03 Nathanael Nerode * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM with modern equivalents. * configure: Regenerate. * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE. * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove. * configure: Regenerate. * doc/install.texi: Note that 'gcc' is now a 2.57 directory. * configure.in: Rename to configure.ac. * configure.ac: Renamed from configure.in; make minimum necessary changes for autoconf 2.5x. * aclocal.m4: Make minimum necessary changes for autoconf 2.5x. * configure: Regenerate with autoconf 2.57. 2004-01-03 Kazu Hirata * config/mips/linux.h: Fix comment formatting. * config/mips/mips.c: Likewise. * config/mips/mips.h: Likewise. * config/mips/mips.md: Likewise. * config/mips/netbsd.h: Likewise. * config/mips/windiss.h: Likewise. 2004-01-02 Richard Henderson * config/i386/i386.md (fp constant pool splitter): Reorg suppression for sse and 387; add suppression for mmx. 2004-01-02 Andrew Pinski * loop.c (loop_optimize): Free all loops_info's mems. * c-typeck.c (finish_init): Free spelling_base before setting it again. * cfgloop.c (flow_loops_find): Always free the sbitmap headers. * predict.c (estimate_probability): Free bbs after being done with it. 2004-01-02 Kazu Hirata * config/mn10300/mn10300.h (PREDICATE_CODES): Add const_8bit_operand and call_address_operand. 2004-01-02 Jan Hubicka * cgraphunit.c (cgraph_optimize_function): Call optimize_inline_calls when there is nothing to inline but warnings are requested. (cgraph_decide_inlining): Fix memory leak. 2004-01-02 Jan Hubicka * expr.c (store_constructor): Fix pasto in previous patch. 2004-01-02 Kazu Hirata * config/i386/cygming.h: Fix comment formatting. * config/i386/djgpp.h: Likewise. * config/i386/gthr-win32.c: Likewise. * config/i386/i386-interix.h: Likewise. * config/i386/i386.c: Likewise. * config/i386/i386.h: Likewise. * config/i386/openbsd.h: Likewise. * config/i386/winnt.c: Likewise. * config/i386/xm-mingw32.h: Likewise. 2004-01-02 Joseph S. Myers * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update copyright and last modification dates. 2004-01-02 Andreas Jaeger , Gerald Pfeifer * doc/install.texi (Specific): Mention x86_64. 2004-01-01 Hans-Peter Nilsson * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]: Call force_operand on plus_constant result. 2004-01-01 Jan Hubicka * expmed.c (store_bit_field, extract_bit_field): Use new named patterns * expr.c (store_constructor): Use vec_init pattern. * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init. * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init (vec_set_optab, vec_extract_optab, vec_init_optab): New. * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf): New patterns. (sse2_unpc?pd): Fix pattern. (sse2_movlpd): Kill. (sse2_movsd): Deal with movlpd too. * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd. (ix86_expand_vector_init): New. * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions. * md.texi (vec_set, vec_extract): Document 2003-12-31 Jan Hubicka PR opt/13473 * recog.c (validate_replace_rtx_1): Take care for RTL sharing inside ASM input operands PR opt/12617 * toplev.c (dump_file_index): Reorder ce3 and bbro. (dump_file): Likewise. (rest_of_compilation): Likewise. PR debug/13367 * cgraph.c (cgraph_function_possibly_inlined): Even with flag_really_no_inline we inline always_inline functions. * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag for non-always_inline functions when there is flag_really_no_inline. (cgraph_decide_inlining): Limit work done when not inlining. (cgraph_decide_inlining_incrementally): Likewise. (cgraph_optimize_function): Check whether something got inlined. * c-objc-common.c (c_disregard_inline_limits): Do not always inline extern inline functions when not inlining. * opts.c (decode_options): Disable crossjumping at -O1 * invoke.texi (-O1): Document change. See ChangeLog.10 for earlier changes.