Index: ChangeLog =================================================================== RCS file: /usr/download/ncvs/src/contrib/gcc/ChangeLog,v retrieving revision 1.1.1.26 retrieving revision 1.1.1.27 diff -u -r1.1.1.26 -r1.1.1.27 --- ChangeLog 28 Jul 2004 03:11:32 -0000 1.1.1.26 +++ ChangeLog 24 Jan 2005 04:23:43 -0000 1.1.1.27 @@ -1,3 +1,1730 @@ +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.