2008-09-04 Ian Lance Taylor * varasm.c (narrowing_initializer_constant_valid_p): New static function. (initializer_constant_valid_p): Call it. 2008-09-02 Jakub Jelinek PR target/36332 * real.c (real_maxval): Clear a lower bit to make real_maxval match get_max_float for IBM long double format. 2008-09-02 Bob Wilson * config/xtensa/xtensa.md (mulsidi3): Use a temporary register. 2008-09-01 Jakub Jelinek PR middle-end/37248 PR middle-end/36449 * fold-const.c (make_bit_field_ref): Change bitpos and bitsize arguments to HOST_WIDE_INT. (fold_truthop): Change first_bit and end_bit to HOST_WIDE_INT. Revert: 2008-06-11 Richard Guenther PR middle-end/36449 * fold-const.c (fold_truthop): Remove code generating BIT_FIELD_REFs of structure bases. (fold_binary): Likewise. (make_bit_field_ref): Remove. (optimize_bit_field_compare): Remove. (all_ones_mask_p): Remove. 2008-08-31 Jakub Jelinek PR target/37168 * config/rs6000/rs6000-protos.h (const_vector_elt_as_int): Add prototype. * config/rs6000/rs6000.c (const_vector_elt_as_int): No longer static. * config/rs6000/altivec.md (easy_vector_constant_add_self splitter): Also split V4SFmode. * config/rs6000/predicates.md (easy_vector_constant_add_self): Handle vector float modes. 2008-08-29 Jakub Jelinek PR c/37261 * fold-const.c (fold_binary): In (X | C1) & C2 canonicalization compute new & and | in type rather than TREE_TYPE (arg0). 2008-08-28 Ulrich Weigand * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function. (mfc_end_critical_section): Likewise. 2008-08-28 Ulrich Weigand * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate all type qualifiers from element type to vector type. 2008-08-28 Dodji Seketeli PR c++/36741 * tree.c (int_fits_type_p): Don't forget unsigned integers of type sizetype which higher end word equals -1. 2008-08-28 Richard Guenther PR middle-end/36548 PR middle-end/37125 * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only if the multiplication does not overflow. 2008-08-28 Richard Guenther PR middle-end/36817 * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which makes sure to produce a result of the correct type. 2008-08-28 Uros Bizjak PR target/37184 * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode, CCCmode, CCOmode and CCSmode destination modes. PR target/37191 * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers from different units in a single alternative. (*vec_extractv2sf_1): Ditto. (*vec_extractv2si_0): Ditto. (*vec_extractv2si_1): Ditto. * config/i386/sse.md (sse2_storehpd): Ditto. (sse2_storelpd): Ditto. (sse2_loadhpd): Ditto. (sse2_loadlpd): Ditto. PR target/37197 * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints. (popcountsi2): Ditto. (clzdi2_abm): Ditto. (popcountdi2): Ditto. (clzhi2_abm): Ditto. (popcounthi2): Ditto. 2008-08-27 Release Manager * GCC 4.3.2 released. 2008-08-19 Ulrich Weigand * real.h (struct real_format): New member round_towards_zero. * real.c (round_for_format): Respect fmt->round_towards_zero. (ieee_single_format, mips_single_format, motorola_single_format, spu_single_format, ieee_double_format, mips_double_format, motorola_double_format, ieee_extended_motorola_format, ieee_extended_intel_96_format, ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format, ibm_extended_format, mips_extended_format, ieee_quad_format, mips_quad_format, vax_f_format, vax_d_format, vax_g_format): Initialize it. * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise. * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of real_format to choose rounding mode when calling MPFR functions. (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise. (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise. * real.h (real_to_decimal_for_mode): Add prototype. * real.c (real_to_decimal_for_mode): Renames old real_to_decimal. Respect target rounding mode when generating decimal representation. (real_to_decimal): New stub for backwards compatibility. * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use real_to_decimal_for_mode instead of real_to_decimal. * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New. * config/spu/float_disf.c: New file. * config/spu/float_unsdisf.c: New file. * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them. (LIB2FUNCS_EXCLUDE): Define. 2008-08-19 Jakub Jelinek PR debug/37156 * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees. * tree.c (block_nonartificial_location): Likewise. 2008-08-18 Ulrich Weigand * real.c (spu_single_format): New variable. * real.h (spu_single_format): Declare. * config/spu/spu.c (spu_override_options): Install SFmode format. (spu_split_immediate): Use integer mode to operate on pieces of floating-point values in all cases. * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New. ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND. ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE. 2008-08-18 Andreas Tobler * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function. (detect_processor_freebsd): Likewise. (host_detect_local_cpu): Call newly added functions for FreeBSD. 2008-08-18 Andreas Krebbel * reload.c (find_reloads): Force constants into literal pool also if they are wrapped in a SUBREG. 2008-08-17 Christophe Saout Uros Bizjak PR target/37101 * config/i386/sse.md (vec_concatv2di): Remove movlps alternative. (*vec_concatv2di_rex64_sse): Ditto. 2008-08-14 Jakub Jelinek PR middle-end/37103 * fold-const.c (fold_widened_comparison): Do not allow sign changes that change the result even if shorter type is wider than arg1_unw's type. 2008-08-13 Ulrich Weigand * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine __PPU__ when targeting the Cell/B.E. PPU processor. 2008-08-12 Jakub Jelinek PR middle-end/37014 * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR. * dojump.c (do_jump): Likewise. 2008-08-12 Aldy Hernandez PR c/35746 * gimplify.c (gimplify_expr): Do not convert MODIFY_EXPR to GIMPLE_MODIFY_STMT upon GS_ERROR. 2008-08-12 Ulrich Weigand * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA. 2008-08-12 Ulrich Weigand * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define. 2008-08-12 Jakub Jelinek PR c++/36688 * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY on the VAR_DECL instead of TYPE_READONLY on its type. 2008-08-11 Michael Matz PR target/36613 * reload.c (push_reload): Merge in,out,in_reg,out_reg members for reused reload, instead of overwriting them. 2008-08-11 Jakub Jelinek PR rtl-optimization/36998 * dwarf2out.c (compute_barrier_args_size_1, compute_barrier_args_size): Temporarily remove assertions. 2008-08-07 Richard Guenther PR middle-end/37042 * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all pointers can access anything. 2008-08-06 Aldy Hernandez PR middle-end/35432 * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types if want_value. 2008-08-06 Maxim Kuvyrkov Backport from mainline: 2008-08-06 Maxim Kuvyrkov PR target/35659 * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ... * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here. Don't allow predicated instructions for data speculation. * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move declaration. 2008-08-06 Maxim Kuvyrkov Backport from mainline: 2008-08-06 Maxim Kuvyrkov * haifa-sched.c (extend_global): Split to extend_global_data and extend_region_data. Update all uses. (extend_all): Rename to extend_block_data. 2008-08-06 Maxim Kuvyrkov Backport from mainline: 2008-08-06 Maxim Kuvyrkov * sched-rgn.c (new_ready): Check if instruction can be speculatively scheduled before attempting speculation. (debug_rgn_dependencies): Remove wrongful assert. 2008-08-05 Jason Merrill PR c++/37016 * tree-ssa.c (useless_type_conversion_p_1): Call langhook if TYPE_STRUCTURAL_EQUALITY_P is true for both types. 2008-08-05 Ulrich Weigand * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus. Reword some comments throughout the file. (MFC_MIN_DMA_LIST_ELEMENTS): New define. (MFC_MAX_DMA_LIST_ELEMENTS): Likewise. (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of MFC_MIN_DMA_LIST_ELEMENTS. (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of MFC_MAX_DMA_LIST_ELEMENTS. (MFC_START_ENABLE): Remove PPU-only define. (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise. (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise. (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants. (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise. (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise. (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise. (MFC_GETB_CMD, MFC_GETF_CMD): Likewise. (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise. (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise. (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines. (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise. (mfc_sdcrt, mfc_sdcrtst): Likewise. (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise. (spu_read_machine_status): Fix typo. 2008-08-05 Ulrich Weigand * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized SUBREG of multi-word hard register. * config/spu/spu.c (valid_subreg): Likewise. (adjust_operand): Handle SUBREGs of multi-word hard registers. 2008-08-05 Richard Guenther PR middle-end/37026 * gimplify.c (gimplify_init_constructor): Do not call tree_to_gimple_tuple with NULL_TREE. 2008-08-04 Richard Guenther PR middle-end/36691 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly check for no_overflow. 2008-08-01 Jakub Jelinek * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size for labels for which it hasn't been set yet. If it has been set, stop walking insns and continue with next worklist item. (dwarf2out_stack_adjust): Don't call compute_barrier_args_size if the only BARRIER is at the very end of a function. PR tree-optimization/36991 * gimplify.c (gimplify_init_constructor): Call tree_to_gimple_tuple on expr_p before appending it to pre_p. 2008-08-01 Paolo Bonzini Backport from mainline: 2008-04-02 Andy Hutchinson PR rtl-optimization/35542 * fwprop.c (forward_propagate_and_simplify): Replace loc_reg_mentioned_in_p with reg_mentioned_p. 2008-08-01 Paolo Bonzini PR bootstrap/35752 * Makefile.in (objdir): Set it here. * configure.ac: Not here. Find dynamic linker characteristics. * exec-tool.in: Use them. * aclocal.m4: Regenerate. * configure: Regenerate. 2008-08-01 Alexandre Oliva * fwprop.c (PR_HANDLE_MEM): Remove trailing comma in enum. 2008-07-31 Jakub Jelinek PR rtl-optimization/36419 * dwarf2out.c (barrier_args_size): New variable. (compute_barrier_args_size, compute_barrier_args_size_1): New functions. (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size if not called yet in the current function, use barrier_args_size array to find the new args_size value. (dwarf2out_frame_debug): Free and clear barrier_args_size. PR debug/36278 * dwarf2out.c (get_context_die): New function. (force_decl_die, force_type_die): Use it. (dwarf2out_imported_module_or_decl): Likewise. If base_type_die returns NULL, force generation of DW_TAG_typedef and put that into DW_AT_import. PR preprocessor/36649 * c-pch.c (c_common_read_pch): Save and restore line_table->trace_includes across PCH restore. 2008-07-30 Andreas Schwab PR rtl-optimization/36929 * dse.c (replace_inc_dec): Use emit_insn_before instead of add_insn_before and fix argument order. (replace_inc_dec_mem): Handle NULL rtx. 2008-07-30 Olivier Hainque * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini. * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide __dso_handle explicitly here. 2008-07-27 Eric Botcazou PR tree-optimization/36830 * tree-vn.c (expressions_equal_p): Return false if only one operand is null. 2008-07-25 Joseph Myers * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal, movv2si_internal): Add mem = reg alternative. 2008-07-23 Ian Lance Taylor * tree-vrp.c (infer_value_range): Ignore asm statements when looking for memory accesses for -fdelete-null-pointer-checks. 2008-07-19 Ulrich Weigand * config/spu/spu.md ("div3"): Convert into expander, move original insn and splitter contents into ... ("*div3_fast"): ... this new pattern. Enable only if flag_unsafe_math_optimizations. Add dummy scratch register. ("*div3_adjusted"): New insn and splitter. Enable only if !flag_unsafe_math_optimizations. Returns number with next highest magnitude if this is still less or equal to the true quotient in magnitude. 2008-07-19 Jakub Jelinek PR middle-end/36877 * omp-low.c (expand_omp_atomic_fetch_op): Make sure the return value of the builtin is ignored. 2008-07-19 Joseph Myers PR target/36780 PR target/36827 * reload.c (find_reloads_subreg_address): Only reload address if reloaded == 0, not for reloaded != 1. Revert: 2008-07-16 Joseph Myers * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier. (m32c_legitimate_address_p): Handle "++rii" addresses created by m32c_legitimize_reload_address. 2008-07-15 Kaz Kojima * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress. 2008-07-18 Paolo Bonzini PR rtl-optimization/35281 * expr.c (convert_move): Use a new pseudo for the intermediate from_mode->word_mode result. * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New. (propagate_rtx_1): Handle PR_HANDLE_MEM. (propagate_rtx): Pass PR_HANDLE_MEM if appropriate. (varying_mem_p): Move above propagate_rtx. (all_uses_available_at): Do not check MEMs. 2008-07-17 Ulrich Weigand Backport from mainline: 2008-05-27 Trevor Smigiel Sa Liu * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, __modti3, __udivti3, __umodti3 and __udivmodti4. * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files that implement TImode mul and div functions. * config/spu/multi3.c: New. Implement __multi3. * config/spu/divmodti4.c: New. Implement _udivmodti4 and others. 2008-05-08 Sa Liu * config/spu/spu.md: Fixed subti3 pattern. 2008-07-17 Paolo Bonzini PR rtl-optimization/36753 * fwprop.c (use_killed_between): Don't shortcut single-definition global registers. 2008-07-16 Joseph Myers PR target/36827 * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier. (m32c_legitimate_address_p): Handle "++rii" addresses created by m32c_legitimize_reload_address. 2008-07-15 Kaz Kojima Backport from mainline: PR target/36784 2008-03-20 Kaz Kojima * config/sh/sh.c (split_branches): Pass zero to redirect_jump as 'delete_unused' argument. 2008-07-15 Kaz Kojima Backport from mainline: PR target/36782 * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note. 2008-07-15 Bob Wilson * config/xtensa/libgcc-xtensa.ver: New file. * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver. 2008-07-15 Richard Guenther PR middle-end/36369 * c-common.c (strict_aliasing_warning): Do not warn for TYPE_REF_CAN_ALIAS_ALL pointers. (c_common_get_alias_set): may_alias types are not special. * tree.c (build_pointer_type_for_mode): Look up the may_alias attribute and set can_ref_all accordingly. (build_reference_type_for_mode): Likewise. * doc/extend.texi (may_alias): Clarify. 2008-07-15 Kaz Kojima Backport from mainline: PR target/36780 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress. 2008-07-14 Hans-Peter Nilsson PR target/35492. * config/cris/cris.md ("*btst"): Remove last alternative and related part in the condition. 2008-07-13 Richard Guenther PR middle-end/36811 * langhooks.c (lhd_print_error_function): Deal with recursive BLOCK trees. 2008-07-12 Richard Sandiford * doc/md.texi: Document the MIPS "v" constraint. * config/mips/mips.h (reg_class): Revert last change. (REG_CLASS_NAMES): Likewise. (REG_CLASS_CONTENTS): Likewise. * config/mips/mips.c (mips_regno_to_class): Likewise. * config/mips/constraints.md (v): Likewise, but add documentation. Add a comment to say that this constraint should not be used in gcc code. 2008-07-11 Eric Botcazou * tree-ssa-pre.c (create_component_ref_by_pieces) : Deal with operand #2 as well. * tree-ssa-sccvn.c (copy_reference_ops_from_ref) : Likewise. : Likewise. 2008-07-10 Jakub Jelinek PR rtl-optimization/36419 * combine-stack-adj.c (adjust_frame_related_expr): New function. (combine_stack_adjustments_for_block): Call it if needed. Delete correct insn. * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust DW_CFA_GNU_args_size if CSA pass merged some adjustments into prologue sp adjustment. 2008-07-09 Richard Sandiford PR target/35802 * config/mips/mips.h (reg_class): Remove V1_REG. (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly. * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS instead of V1_REGS. (mips_get_tp): New function. (mips_legitimize_tls_address): Use it. * config/mips/constraints.md (v): Delete. * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant. (tls_get_tp_): Allow any GPR destination and clobber $3. After reload, split into a move and ... (*tls_get_tp__split): ...this new instruction. 2008-07-08 Joseph Myers * reload.c (find_reloads_subreg_address): Do not require validity of address in original mode before reloading address. 2008-07-07 Kaz Kojima Backport from mainline: PR target/36736 2008-02-29 Kaz Kojima * config/sh/sh.c (sh_secondary_reload): Handle loading a float constant to fpul. 2008-07-07 Ralf Wildenhues PR target/34780 * unwind-pe.h (size_of_encoded_value): add attribute unused. 2008-07-05 Kaz Kojima Backport from mainline: PR target/36684 * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC. 2008-07-04 Alan Modra PR target/36634 * config/rs6000/rs6000.md (call, call_value): Don't arrange for pic_offset_table_rtx to be marked as used here. (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for TARGET_SECURE_PLT to "use" pic_offset_table_rtx. (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn. (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert !TARGET_SECURE_PLT. 2008-07-03 Eric Botcazou * tree-flow.h (loop_only_exit_p): Declare. * tree-ssa-loop-niter.c (loop_only_exit_p): Make public. * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on the number of iterations if it is constant. Otherwise, if this is the only possible exit of the loop, use the conservative estimate on the number of iterations of the entire loop if available. 2008-07-01 Steve Ellcey Backport from mainline: * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow RFmode constants. 2008-07-01 Kenneth Zadeck PR rtl-optimization/34744 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros. (df_scan_free_internal): Free data structures not allocated in storage pools. (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec. (df_refs_add_to_chains): Use df_scan_free_ref_vec and df_scan_free_mws_vec. * dse.c (dse_step6): Free offset_map_p and offset_map_n unconditionally. * ifcvt.c (cond_move_process_if_block): Free vectors on false return. 2008-07-01 Ira Rosen PR tree-optimization/36648 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide number of prolog iterations by step. Fix the comment. 2008-06-28 Joseph Myers * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode constants for E500 double. 2008-06-28 Ulrich Weigand PR target/34856 * config/spu/spu.c (spu_builtin_splats): Do not generate invalid CONST_VECTOR expressions. (spu_expand_vector_init): Likewise. 2008-06-26 Ulrich Weigand * targhooks.h (struct gcc_target): New member unwind_word_mode. (default_unwind_word_mode): Add prototype. * targhooks.c (default_unwind_word_mode): New function. (default_eh_return_filter_mode): Return targetm.unwind_word_mode () instead of word_mode. * target-def.h (TARGET_UNWIND_WORD_MODE): New macro. (TARGET_INITIALIZER): Use it. * c-common.c (handle_mode_attribute): Support "unwind_word" mode attribute. * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it. * except.c (init_eh): Use targetm.unwind_word_mode () instead of word_mode to access SjLj_Function_Context member "data". (sjlj_emit_dispatch_table): Likewise. Also, perform type conversion from targetm.eh_return_filter_mode () to targetm.unwind_word_mode () if they differ. * builtin-types.def (BT_UNWINDWORD): New primitive type. (BT_FN_UNWINDWORD_PTR): New function type. (BT_FN_WORD_PTR): Remove. * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR. * except.c (expand_builtin_extend_pointer): Convert pointer to targetm.unwind_word_mode () instead of word_mode. * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove. * config/spu/spu.c (spu_eh_return_filter_mode): Remove. (spu_unwind_word_mode): New function. (TARGET_EH_RETURN_FILTER_MODE): Do not define. (TARGET_UNWIND_WORD_MODE): Define. * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI. 2008-06-26 Joseph Myers * c-decl.c (merge_decls): Use !current_function_decl to check for extern declaration of C99 inline function being at file scope. 2008-06-25 Richard Guenther * tree-ssa-structalias.c (fieldoff_compare): Make sure to not overflow the result type. 2008-06-25 Richard Guenther * tree-vn.c (vn_add): Handle TRUTH_*_EXPR. (vn_lookup): Likewise. 2008-06-25 Hans-Peter Nilsson * doc/invoke.texi (Optimize Options) : Add anchor for the type-punning blurb. Cross-reference "Structures unions enumerations and bit-fields implementation". Provide a cast-through-pointer example. Make final sentence self-contained. * doc/implement-c.texi (Structures unions enumerations and bit-fields implementation): Cross-reference the type-punning blurb in the -fstrict-aliasing documentation. 2008-06-24 Jakub Jelinek PR tree-optimization/36504 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip references without base address. 2008-06-24 Uros Bizjak * config/i386/i386.md (fmodxf3): Change sequence of move instructions. (fmod3): Ditto. (remainderxf3): Ditto. (remainder3): Ditto. 2008-06-23 Uros Bizjak PR middle-end/36584 * calls.c (expand_call): Increase alignment for recursive functions. 2008-06-23 Jakub Jelinek PR target/36533 * emit-rtl.c (set_reg_attrs_from_value): Do nothing if REG is a hard register. PR tree-optimization/36508 * tree-ssa-pre.c (compute_antic): Allow num_iterations up to 499, don't check it at all in release compilers. 2008-06-23 Richard Guenther PR tree-optimization/36519 * tree-ssa-alias.c (mem_sym_score): Count call-clobbered unpartitionable SFTs in the usual way. (compute_memory_partitions): Do partition call-clobbered unpartitionable SFTs, but make sure to partition all other SFTs of its parent var into the same partition. 2008-06-19 Uros Bizjak Ian Lance Taylor PR rtl-optimization/35604 * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We only want to change jump destinations, not eventual label comparisons. 2008-06-19 Ralf Wildenhues PR documentation/30739 * doc/install.texi (Prerequisites): Document dependency on awk. 2008-06-18 Ulrich Weigand * config/spu/spu.c (reg_align): Remove. (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM. (spu_split_load): Use regno_aligned_for_load instead of reg_align. (spu_split_store): Likewise. 2008-06-17 Joseph Myers * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined. (encode_decimal64, decode_decimal64, encode_decimal128, decode_decimal128): Reverse order of 32-bit parts of value if host and target endianness differ. 2008-06-16 Ira Rosen PR tree-optimization/36493 * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from the arguments list. Use VECTYPE to create vector pointer. (vectorizable_store): Fail if accesses through a pointer to vectype do not alias the original memory reference operands. Call vect_create_data_ref_ptr without the removed argument. (vectorizable_load): Likewise. (vect_setup_realignment): Call vect_create_data_ref_ptr without the removed argument. 2008-06-15 Anatoly Sokolov PR target/36424 * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define. * config/avr/avr.c (avr_hard_regno_rename_ok): New function. * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 2008-06-15 Andy Hutchinson PR target/36336 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for reg_equiv_constant. 2008-06-13 Jakub Jelinek PR c/36507 * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for nested inline functions. (start_decl, start_function): Don't invert DECL_EXTERNAL for nested inline functions. 2008-06-13 Richard Guenther PR tree-optimization/36498 * tree-flow-inline.h (var_can_have_subvars): Unions cannot have subvars. 2008-06-12 Jakub Jelinek PR middle-end/36506 * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning. 2008-06-12 Richard Guenther Backport from mainline 2008-06-04 Richard Guenther * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle negative or non-representable offsets. 2008-06-12 Jakub Jelinek PR middle-end/36506 * omp-low.c (expand_omp_sections): Handle #pragma omp sections with reductions. 2008-06-11 Tom Tromey * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file debug hook. 2008-06-11 Richard Guenther PR middle-end/35336 * fold-const.c (fold_truthop): Remove code generating BIT_FIELD_REFs of structure bases. (fold_binary): Likewise. (make_bit_field_ref): Remove. (optimize_bit_field_compare): Remove. (all_ones_mask_p): Remove. 2008-06-11 Joseph Myers * config/arm/arm.c (arm_init_neon_builtins): Move initialization with function calls after declarations. Lay out neon_float_type_node before further use. 2008-06-11 Richard Guenther PR tree-optimization/36474 * opts.c (decode_options): Set max-fields-for-field-sensitive parameter to 100 for -O2, -Os and -O3. * params.def (max-fields-for-field-sensitive): Set default to zero. * doc/invoke.texi (max-fields-for-field-sensitive): Document defaults. 2008-06-10 Joseph Myers * config/rs6000/rs6000.c (build_opaque_vector_type): Set TYPE_CANONICAL for copied element type. 2008-06-09 Michael Meissner * config.gcc (i[34567]86-*-*): Put test in quotes to prevent failure on some Bourne shells. (x86_64-*-*): Ditto. 2008-06-07 Sebastian Pop PR tree-optimization/34976 * tree-loop-linear.c (try_interchange_loops): Look at size of caches: don't transform if the smallest stride is larger than the L2 cache, or if the largest stride multiplied by the number of iterations is smaller than the L1 cache. 2008-06-07 Uros Bizjak Backport from mainline: 2008-05-12 Uros Bizjak PR rtl-optimization/36111 * recog.c (validate_replace_rtx_1): Unshare new RTL expression that was created for swappable operands. 2008-06-07 Andy Hutchinson PR target/27386 * config/avr/avr.h: (PUSH_ROUNDING): Remove. PR target/30243 * builtins.c (expand_builtin_signbit): Don't take lowpart when register is already smaller or equal to required mode. PR target/34932 * config/avr/avr.md (*addhi3_zero_extend2): Remove. * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define. 2008-06-06 Richard Guenther PR tree-optimization/36291 * tree-flow. h (struct gimple_df): Remove var_anns member. * tree-flow-inline.h (gimple_var_anns): Remove. (var_ann): Simplify. * tree-dfa.c (create_var_ann): Simplify. (remove_referenced_var): Clear alias info from var_anns of globals. * tree-ssa.c (init_tree_ssa): Do not allocate var_anns. (delete_tree_ssa): Clear alias info from var_anns of globals. Do not free var_anns. (var_ann_eq): Remove. (var_ann_hash): Likewise. 2008-06-06 Richard Guenther PR tree-optimization/34244 * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP. (tree_expr_nonzero_warnv_p): Likewise. * tree-vrp.c (vrp_expr_computes_nonnegative): Call ssa_name_nonnegative_p. (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p. (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero, not tree_expr_nonzero_warnv_p. PR tree-optimization/36262 Revert 2007-11-29 Zdenek Dvorak PR tree-optimization/34244 * tree-vrp.c (adjust_range_with_scev): Clear scev cache. (record_numbers_of_iterations): New function. (execute_vrp): Cache the numbers of iterations of loops. * tree-scalar-evolution.c (scev_reset_except_niters): New function. (scev_reset): Use scev_reset_except_niters. * tree-scalar-evolution.h (scev_reset_except_niters): Declare. 2008-06-06 Joseph Myers * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Only handle SDmode in registers specially if TARGET_HARD_FLOAT && TARGET_FPRS. 2008-06-06 Jakub Jelinek PR rtl-optimization/36419 * except.c (expand_resx_expr): Call do_pending_stack_adjust () before the emitting jump insn. PR target/36362 * gimplify.c (gimplify_expr) : If *expr_p type is not bool, boolify the whole *expr_p and convert to the desired type. * BASE-VER: Set to 4.3.2. * DEV-PHASE: Set to prerelease. 2008-06-06 Release Manager * GCC 4.3.1 released. 2008-06-04 Richard Sandiford * config/mips/mips.c (mips_emit_loadgp): Return early if there is nothing do to, otherwise emit a blockage if !TARGET_EXPLICIT_RELOCS || current_function_profile. * config/mips/mips.md (loadgp_blockage): Use SI rather than DI. 2008-05-29 Eric Botcazou * tree-nested.c (check_for_nested_with_variably_modified): Fix typo. 2008-05-28 Richard Guenther PR tree-optimization/36339 * tree-ssa-alias.c (set_initial_properties): Move pt_anything and subvariable clobbering code out of the loop. 2008-05-28 Richard Guenther PR middle-end/36300 * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS, not TYPE_UNSIGNED. Use TYPE_PRECISION instead of GET_MODE_SIZE. 2008-05-27 Richard Guenther PR tree-optimization/36339 * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything pointers cause all addressable variables to be call clobbered. 2008-05-26 Kai Tietz PR target/36321 * config/i386/i386.md (allocate_stack_worker_64): Make sure argument operand in rax isn't removed. 2008-05-23 Uros Bizjak Gerald Pfeifer * doc/install.texi (Options specification): Document --enable-cld. * doc/invoke.texi (Machine Dependent Options) [i386 and x86-64 Options]: Add -mcld option. (Intel 386 and AMD x86-64 Options): Document -mcld option. 2008-05-22 David Daney * config/mips/mips.md (sync_old_add, sync_new_add, sync_old_, sync_new_, sync_old_nand, sync_new_nand, sync_lock_test_and_set): Add early clobber to operand 0. 2008-05-22 Ira Rosen PR tree-optimization/36293 * tree-vect-transform.c (vect_transform_strided_load): Don't check if the first load must be skipped because of a gap. 2008-05-21 Sebastian Pop Jan Sjodin PR tree-optimization/36181 Backport from mainline: * tree-parloops.c (loop_has_vector_phi_nodes): New. (parallelize_loops): Don't parallelize when the loop has vector phi nodes. 2008-05-21 Uros Bizjak Jakub Jelinek PR target/36079 * configure.ac: Handle --enable-cld. * configure: Regenerated. * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets. * config/i386/i386.h (struct machine_function): Add needs_cld field. (ix86_current_function_needs_cld): New define. * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant. (cld): New isns pattern. (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1, cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag. * config/i386/i386.opt (mcld): New option. * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if TARGET_CLD and ix86_current_function_needs_cld. (override_options): Use -mcld by default for 32-bit code if USE_IX86_CLD. 2008-05-20 Richard Guenther Backport from mainline: 2008-05-15 Richard Guenther PR middle-end/36244 * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY. * tree-flow-inline.h (unmodifiable_var_p): Memory tags never represent unmodifiable vars. PR tree-optimization/34330 * tree-ssa-alias.c (get_smt_for): Only assert that accesses through the pointer will alias the SMT. 2008-05-20 Richard Guenther PR tree-optimization/35204 * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New helper, split out from ... (DFS): ... here. Make the DFS walk non-recursive. 2008-05-20 Joseph Myers * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not $SOURCEDIR/include. 2008-05-19 Adam Nemet PR middle-end/36194 * combine.c (check_conversion): Rename to check_promoted_subreg. Don't call record_truncated_value from here. (record_truncated_value): Turn it into a for_each_rtx callback. (record_truncated_values): New function. (combine_instructions): Call note_uses with record_truncated_values. Change name of check_conversion to check_promoted_subreg. 2008-05-19 Eric Botcazou * tree.c (substitute_in_expr) : Fix thinko. 2008-05-14 Michael Meissner Backport from mainline: PR target/36224 * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned multiply gives the wrong value when doing widening multiplies. (vec_widen_smult_lo_v4si): Ditto. 2008-05-17 Eric Botcazou * fold-const.c (fold_unary) : Fold the cast into a BIT_AND_EXPR only for an INTEGER_TYPE. 2008-05-15 Richard Guenther PR tree-optimization/36245 * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases. 2008-05-15 H.J. Lu Backport from mainline: 2008-05-14 H.J. Lu * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only. 2008-05-14 Ira Rosen PR tree-optimization/36098 * tree-vect-analyze.c (vect_analyze_group_access): Set the gap value for the first load in the group in case of a gap. (vect_build_slp_tree): Check that there are no gaps in loads. 2008-05-13 Anatoly Sokolov * config/avr/avr.h (machine_function): Add 'is_leaf' field. * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'. Use 'machine->is_leaf' instead of 'leaf_func_p'. 2008-05-13 Richard Guenther PR middle-end/36227 * fold-const.c (fold_sign_changed_comparison): Do not allow changes in pointer-ness. 2008-05-12 Hans-Peter Nilsson Backport from mainline: 2008-04-08 Hans-Peter Nilsson * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1 and tem2 if tem1 is not a REG or MULT. 2008-05-11 Danny Smith Backport from mainline: 2008-04-15 Zuxy Meng PR target/35661 * config/i386/winnt.c (i386_pe_section_type_flags): Mark ".text.unlikely" section as executable. 2008-05-11 Uros Bizjak Backport from mainline: 2008-05-09 Uros Bizjak PR tree-optimization/36129 * tree-ssa-ccp.c: Include value-prof.h. (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if built-in function was folded to a constant. * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h 2008-05-09 Richard Guenther PR tree-optimization/36187 * tree-dfa.c (dump_variable): Correct dumping of SFT_BASE_FOR_COMPONENTS_P. * tree-ssa-structalias.c (set_uids_in_ptset): Set SFT_UNPARTITIONABLE_P correctly for the union case. 2008-05-09 Steve Ellcey Backport from mainline: 2008-04-07 Peter Bergner PR middle-end/PR28690 * rtlanal.c: Update copyright years. (commutative_operand_precedence): Give SYMBOL_REF's the same precedence as REG_POINTER and MEM_POINTER operands. * emit-rtl.c (gen_reg_rtx_and_attrs): New function. (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate. * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function. * gcse.c: Update copyright years. (pre_delete): Call gen_reg_rtx_and_attrs. (hoist_code): Likewise. (build_store_vectors): Likewise. (delete_store): Likewise. * loop-invariant.c (move_invariant_reg): Likewise. Update copyright years. 2008-04-08 Peter Bergner Revert PR middle-end/PR28690 * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the same precedence as REG_POINTER and MEM_POINTER operands. 2008-04-09 Peter Bergner PR middle-end/PR28690 * explow.c (break_out_memory_refs): Use simplify_gen_binary rather than gen_rtx_fmt_ee to perform more canonicalizations. 2008-05-09 Steve Ellcey Backport from mainline: 2008-05-08 Steve Ellcey * stmt.c (expand_stack_restore): Change sa mode if needed. 2008-05-08 David Edelsohn PR target/36090 * config/rs6000/rs6000.c (print_operand_address): If the TOC address RHS contains an offset, output it as well. PR target/36182 Revert: 2008-05-08 Paolo Bonzini PR target/36090 * simplify-rtx.c (simplify_plus_minus): Create CONST of similar RTX_CONST_OBJ before CONST_INT. 2008-05-08 H.J. Lu Backport from mainline: 2008-05-06 H.J. Lu PR target/35657 * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ... (contains_aligned_value_p): This. Handle _Decimal128. (ix86_function_arg_boundary): Only align _Decimal128 to its natural boundary and handle it properly. 2008-05-08 Paolo Bonzini PR target/36090 * simplify-rtx.c (simplify_plus_minus): Create CONST of similar RTX_CONST_OBJ before CONST_INT. 2008-05-08 Richard Guenther PR middle-end/36154 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make sure to create a representative for trailing arrays for PTA. 2008-05-08 Richard Guenther PR middle-end/36172 * fold-const.c (operand_equal_p): Two objects which types differ in pointerness are not equal. 2008-05-07 Ian Lance Taylor PR middle-end/36013 * gimplify.c (find_single_pointer_decl_1): Don't look through indirections. (find_single_pointer_decl): Adjust comments. 2008-05-07 Jakub Jelinek PR middle-end/36137 * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR. PR middle-end/36106 * omp-low.c (expand_omp_atomic_pipeline): Load value using the integral type rather than floating point, then VIEW_CONVERT_EXPR to the floating point type. 2008-05-05 Marius Strobl * gthr-posix.h (__gthread_active_p): Use the Solaris implementation for FreeBSD as well. * gthr-posix95.h: Likewise. 2008-05-05 Ira Rosen PR tree-optimization/36119 * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1 in case of SLP. 2008-05-03 Richard Guenther PR middle-end/34973 * opts.c (set_Wstrict_aliasing): Handle the turn-off case. 2008-05-02 Ralf Wildenhues PR bootstrap/35169 * optc-gen.awk: Work around HP-UX/IA awk bug. 2008-05-01 H.J. Lu PR target/36095 * config/i386/i386.c (bdesc_crc32): Remove OPTION_MASK_ISA_64BIT from IX86_BUILTIN_CRC32QI. Add OPTION_MASK_ISA_64BIT to IX86_BUILTIN_CRC32DI. (ix86_init_mmx_sse_builtins): Add OPTION_MASK_ISA_64BIT to IX86_BUILTIN_CRC32DI. * doc/extend.texi: Correct __builtin_ia32_crc32di. 2008-04-30 Ian Lance Taylor Backport from mainline: 2008-04-22 Ian Lance Taylor * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather than size_in_bytes. 2008-04-18 Ian Lance Taylor * fold-const.c (pointer_may_wrap_p): New static function. (fold_comparison): Add another test for pointer overflow. Use pointer_may_wrap_p to disable some false positives. 2008-04-14 Ian Lance Taylor * fold-const.c (fold_overflow_warning): Remove assertion. 2008-04-14 Ian Lance Taylor * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define. * fold-const.c (fold_comparison): If appropriate, test POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning. (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when reassociating a pointer type. * doc/invoke.texi (Optimize Options): Document that -fstrict-overflow applies to pointer wraparound. 2008-04-29 Richard Guenther PR middle-end/36077 * fold-const.c (extract_muldiv_1): In combining division constants make sure to never overflow. 2008-04-28 Jakub Jelinek PR debug/36060 * dwarf2out.c (struct die_struct): Mark as chain_circular through die_sub field. * gengtype.c (walk_type, write_func_for_structure): Handle chain_circular. * doc/gty.texi: Document chain_circular. 2008-04-25 Pompapathi V Gadad * config.gcc (crx-*-elf): Remove deprecation. 2008-04-24 David Edelsohn Backport from mainline: 2008-04-09 David Edelsohn PR libstdc++/35597 * toplev.c (process_options): Remove -ffunction-sections debugging warning. 2008-04-24 Jakub Jelinek PR c++/35758 * c-common.c (handle_vector_size_attribute): Call lang_hooks.types.reconstruct_complex_type instead of reconstruct_complex_type. * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise. * config/spu/spu.c (spu_handle_vector_attribute): Likewise. * langhooks.h (struct lang_hooks_for_types): Add reconstruct_complex_type hook. * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define. (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it. PR tree-optimization/36008 * fold-const.c (try_move_mult_to_index): If s == NULL, divide the original op1, rather than delta by step. 2008-04-24 Ira Rosen Richard Guenther PR tree-optimization/36034 * tree-vect-analyze.c (vect_analyze_group_access): SLP is incapable of dealing with loads with gaps. 2008-04-24 Jakub Jelinek PR target/36015 * config/i386/i386.c (init_cumulative_args): Don't pass anything in registers for -m32 only if stdarg_p (fntype). 2008-04-23 Richard Guenther PR middle-end/36021 * c-common.c (handle_alloc_size_attribute): Use type_num_arguments. 2008-04-23 Ira Rosen PR tree-optimization/35982 * tree-vect-analyze.c (vect_check_interleaving): Check that the interleaved data-refs are of the same type. 2008-04-23 Jakub Jelinek PR rtl-optimization/36017 * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before expanding the library call. 2008-04-17 Volker Reichelt PR c/35744 * attribs.c (decl_attributes): Return early on errorneous node. PR c/35436 * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type. 2008-04-17 Alan Modra PR target/35907 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave regs before frame pop when needed. If use_backchain_to_restore_sp then load backchain into a temp reg to restore vr and vrsave. Add code to restore vr after frame pop if possible. 2008-04-17 Uros Bizjak Backport from mainline: 2008-04-16 Uros Bizjak PR target/35944 * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into temporary registers. Change operand predicate to general_operand. (remainderxf3): Ditto. 2008-04-16 Jakub Jelinek PR c/35739 * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE reg type. PR tree-optimization/35899 * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND rather than TREE_OPERAND. 2008-04-15 Eric Botcazou * tree-predcom.c (suitable_reference_p): Return false if the reference can throw. 2008-04-15 Jakub Jelinek PR c/35751 * c-decl.c (finish_decl): If extern or static var has variable size, set TREE_TYPE (decl) to error_mark_node. 2008-04-14 Eric Botcazou * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) : Return true if the operand is an INTEGER_CST. 2008-04-12 James E. Wilson PR target/35695 * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV. * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_FR_RECIP_APPROX_RES. * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define. 2008-04-09 Andy Hutchinson PR rtl-optimization/34916 PR middle-end/35519 * combine.c (create_log_links): Do not create duplicate LOG_LINKS between instruction pairs. 2008-04-09 Ira Rosen PR tree-optimization/35821 * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that NEW_STMT_LIST is not NULL. 2008-04-08 Richard Guenther * fold-const.c (fold_widened_comparison): Do not allow sign-changes that change the result. 2008-04-06 Tom G. Christensen * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &. 2008-04-05 Richard Guenther PR tree-optimization/35833 * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST results from fold_binary_to_constant. (compare_values_warnv): Likewise. 2008-04-04 Jakub Jelinek PR target/35364 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers. PR c/35440 * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR for all types. 2008-04-03 Jakub Jelinek PR c/35738 * c-parser.c (c_parser_omp_atomic): Call default_function_array_conversion on the RHS. PR middle-end/35818 * omp-low.c (scan_sharing_clauses) : Don't call is_variable_sized if decl has incomplete type. 2008-04-02 Andrew Pinski PR middle-end/35429 * fold-const.c (fold_truthop): Check for integeral types when folding a == 0 && b == 0 and a != 0 || b != 0 . 2008-04-02 Andrew Pinski PR tree-opt/35431 * tree-ssa-phiopt.c (conditional_replacement): Return early for complex types. 2008-04-01 John David Anglin PR middle-end/35705 * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if the expression is a function address. 2008-04-01 Joseph Myers * doc/include/gpl_v3.texi: Update for manpage generation. * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of gpl.texi. * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi. * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include gpl_v3.texi instead of gpl.texi. (gpl.pod): New. 2008-03-28 Nick Clifton PR target/31232 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do not allow INT+INT as a legitimate addressing mode. 2008-03-28 Nick Clifton PR target/31110 * config/mn10300/mn10300.c (mn10300_secondary_reload_class): Return GENERAL_REGS for stack adjustment reloads. 2008-03-27 H.J. Lu Backport from mainline: 2008-03-27 H.J. Lu PR target/35657 * config/i386/i386.c (ix86_function_arg_boundary): Align decimal floating point to its natural boundary. 2008-03-25 Richard Guenther Backport from mainline: 2008-03-19 Richard Guenther PR middle-end/35609 * tree-ssa.c (walk_data): New structure. (warn_uninitialized_var): If not always_executed warn with "maybe" instead of "is". (execute_early_warn_uninitialized): Compute post-dominators. Initialize always_executed before processing each basic block. 2008-03-20 Ira Rosen * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of optimizations turned on under -O3. (ftree-vectorize): Add that the flag is turned on with -O3. 2008-03-19 Michael Matz Backport from mainline: 2008-03-19 Michael Matz PR middle-end/35616 * calls.c (expand_call): Check overlap of arguments with call address for sibcalls. 2008-03-19 Michael Matz * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden. 2008-03-19 Andreas Krebbel * cse.c (cse_insn): Avoid creation of overlapping MEMs. * alias.c (nonoverlapping_memrefs_p): Export for use in other modules. * alias.h (nonoverlapping_memrefs_p): Likewise. 2008-03-19 Andreas Krebbel * cse.c (cse_extended_basic_block): Invalidate artificial defs at bb start. 2008-03-18 Mikulas Patocka PR target/35504 * config/i386/i386.c (x86_this_parameter): Calculate correct location of "this" pointer when "regparm = N" or "fastcall" is in effect. 2008-03-18 Richard Guenther Backport from mainline: 2008-03-15 Richard Guenther PR middle-end/35593 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure to not produce negative array indices if not allowed. Add parameter to indicate that. (maybe_fold_offset_to_component_ref): Allow negative array indices only for the first member of a structure. (maybe_fold_offset_to_reference): Allow negative array indices. (maybe_fold_stmt_addition): Likewise. 2008-03-18 Jakub Jelinek PR middle-end/35611 * gimplify.c (gimplify_expr): Gimplify second operand of OMP_ATOMIC_LOAD. 2008-03-16 James E. Wilson PR debug/31510 * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for emulated thread local variables. 2008-03-16 Hans-Peter Nilsson * doc/extend.texi (Alignment): Say that the ABI controls the __alignof__ for non-strict-alignment targets rather than being a recommendation. 2008-03-14 Richard Guenther Backport from mainline: 2008-02-19 Richard Guenther PR tree-optimization/34989 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure. Allow propagation to INDIRECT_REF if we can simplify only. 2008-03-14 Uros Bizjak PR target/34000 PR target/35553 * config/i386/xmmintrin.h: Change all static inline functions to extern inline and add __gnu_inline__ attribute. * config/i386/bmintrin.h: Ditto. * config/i386/smmintrin.h: Ditto. * config/i386/tmmintrin.h: Ditto. * config/i386/mmintrin-common.h: Ditto. * config/i386/ammintrin.h: Ditto. * config/i386/emmintrin.h: Ditto. * config/i386/pmmintrin.h: Ditto. * config/i386/mmintrin.h: Ditto. * config/i386/mm3dnow.h: Ditto. 2008-03-13 Jakub Jelinek PR middle-end/35185 * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed. (lower_omp_2): New function. (lower_omp_1, lower_omp): Rewritten. 2008-03-12 Jakub Jelinek PR middle-end/35549 * omp-low.c (maybe_lookup_decl): Constify first argument. (use_pointer_for_field): Change last argument from bool to omp_context *. Disallow shared copy-in/out in nested parallel if decl is shared in outer parallel too. (build_outer_var_ref, scan_sharing_clauses, lower_rec_input_clauses, lower_copyprivate_clauses, lower_send_clauses, lower_send_shared_vars): Adjust callers. 2008-03-12 Uros Bizjak PR target/35540 * config/i386/i386.md (paritysi2, paritydi2): Use register_operand constraint for operand 1. (paritysi2_cmp): Use register_operand constraint for operand 2. Use earlyclobber modifier for operand 1. Remove support for memory operands. (paritydi2_cmp): Use register_operand constraint for operand 3. Use earlyclobber modifier for operand 1. Remove support for memory operands. 2008-03-11 Uros Bizjak PR middle-end/35526 * expr.c (store_expr): Call emit_block_move if the mode of "temp" RTX is BLKmode. 2008-03-10 Vladimir Makarov * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3): Remove commutativity hint. 2008-03-10 Jakub Jelinek PR c/35438 PR c/35439 * c-parser.c (c_parser_omp_threadprivate): Don't add vars with errorneous type. Check that v is a VAR_DECL. PR middle-end/35099 * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid. 2008-03-10 Uros Bizjak Backport from mainline: 2008-03-09 Uros Bizjak PR target/35496 * config/i386/i386.c (ix86_constant_alignment): Compute alignment using ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST. 2008-03-04 Uros Bizjak PR middle-end/35456 * fold-const.c (fold_cond_expr_with_comparison): Prevent transformations for modes that have signed zeros. * ifcvt.c (noce_try_abs): Ditto. 2008-03-09 Kaz Kojima Backport from mainline: PR target/35225 * config/sh/sh.c (find_barrier): Don't go past 'from' argument. 2008-03-09 Kaz Kojima Backport from mainline: PR target/35190 * config/sh/sh.md (jump_compact): Disable for crossing jumps. * config/sh/sh.c (find_barrier): Don't go past NOTE_INSN_SWITCH_TEXT_SECTIONS note. 2008-03-08 Jakub Jelinek PR target/35498 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift wdst back after sync_compare_and_swapqhi_internal. 2008-03-07 Joseph Myers * doc/include/texinfo.tex: Update to version 2008-03-07.10. 2008-03-07 Richard Guenther Backport from mainline: 2008-03-05 Richard Guenther PR tree-optimization/35472 * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store whose single use_stmt has a overlapping set of loaded and stored symbols as that use_stmt might be a noop assignment then. 2008-03-06 H.J. Lu Backport from mainline: 2008-02-18 H.J. Lu PR target/35189 * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New. (OPTION_MASK_ISA_3DNOW_SET): Likewise. (OPTION_MASK_ISA_SSE_SET): Likewise. (OPTION_MASK_ISA_SSE2_SET): Likewise. (OPTION_MASK_ISA_SSE3_SET): Likewise. (OPTION_MASK_ISA_SSSE3_SET): Likewise. (OPTION_MASK_ISA_SSE4_1_SET): Likewise. (OPTION_MASK_ISA_SSE4_2_SET): Likewise. (OPTION_MASK_ISA_SSE4_SET): Likewise. (OPTION_MASK_ISA_SSE4A_SET): Likewise. (OPTION_MASK_ISA_SSE5_SET): Likewise. (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise. (OPTION_MASK_ISA_MMX_UNSET): Updated. (OPTION_MASK_ISA_3DNOW_UNSET): Updated. (OPTION_MASK_ISA_SSE_UNSET): Likewise. (OPTION_MASK_ISA_SSE3_UNSET): Likewise. (OPTION_MASK_ISA_SSSE3_UNSET): Likewise. (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise. (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise. (OPTION_MASK_ISA_SSE4A_UNSET): Likewise. (OPTION_MASK_ISA_SSE5_UNSET): Likewise. (OPTION_MASK_ISA_SSE4): Removed. (ix86_handle_option): Turn on bits in ix86_isa_flags and ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX. (override_options): Don't turn on implied SSE/MMX bits in ix86_isa_flags. 2008-03-06 Jakub Jelinek * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes for the same VAR_DECL. 2008-03-06 Daniel Jacobowitz * expmed.c (extract_bit_field): Always use adjust_address for MEM. 2008-03-06 Joseph Myers PR target/33963 * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types other than structures and unions. 2008-03-06 Jakub Jelinek * BASE-VER: Set to 4.3.1. * DEV-PHASE: Set to prerelease. 2008-03-05 Release Manager * GCC 4.3.0 released. 2008-03-05 Serge Belyshev * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS examples. Truncate option-names then causing overfull hbox. 2008-03-04 John David Anglin PR target/35222 * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions on hpux10. * configure: Rebuilt. 2008-03-04 H.J. Lu Backport from mainline: 2008-03-04 H.J. Lu PR target/35453 * config/i386/smmintrin.h (SIDD_XXX): Renamed to ... (_SIDD_XXX): This. 2008-03-02 Jakub Jelinek PR driver/35420 * gcc.c (process_command): Update copyright notice dates. * gcov.c (print_version): Likewise. * gcov-dump.c (print_version): Likewise. * mips-tfile.c (main): Likewise. * mips-tdump.c (main): Likewise. 2008-02-29 Douglas Gregor PR c++/35315 * tree-inline.c (build_duplicate_type): When we make a duplicate type, make it unique in the canonical types system. 2008-02-29 Uros Bizjak Backport from mainline: 2008-02-27 Uros Bizjak PR middle-end/19984 * builtins.def (BUILT_IN_NAN): Define as c99 builtin using DEF_C99_BUILTIN. (BUILT_IN_NANF): Ditto. (BUILT_IN_NANL): Ditto. 2008-02-28 Uros Bizjak Backport from mainline: 2008-02-25 Francois-Xavier Coudert Uros Bizjak PR target/25477 * config/darwin-protos.h: Add darwin_patch_builtins prototype. * config/darwin-ppc-ldouble-patch.def: New file. * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro. * config/rs6000/rs6000.c (rs6000_init_builtins): Call SUBTARGET_INIT_BUILTINS if defined. * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins): New functions. 2008-02-27 Richard Guenther Backport from mainline: 2008-02-27 Richard Guenther PR middle-end/35390 * fold-const.c (fold_unary): Return the correct argument, converted to the result type. PR middle-end/34971 * fold-const.c (fold_binary): Use the types precision, not the bitsize of the mode if folding rotate expressions. Build rotates only for full modes. 2008-02-25 Jan Beulich * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T). * config/i386/netware-libgcc.exp: Add __bswap?i2, __emultls_get_address, __emultls_register_common, __floatundi?f, and _Unwind_GetIPInfo. * config/i386/netware.c (gen_stdcall_or_fastcall_decoration): Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix(). (gen_regparm_prefix): Likewise. (i386_nlm_encode_section_info): Sync with config/i386/winnt.c:i386_pe_encode_section_info(). (i386_nlm_maybe_mangle_decl_assembler_name): New. i386_nlm_mangle_decl_assembler_name): New. (netware_override_options): New. * config/i386/netware.h (netware_override_options): Declare. (OVERRIDE_OPTIONS): Re-define to netware_override_options. (i386_nlm_mangle_decl_assembler_name): Declare. (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define. 2008-02-22 Nathan Froyd * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use spe_abi. * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise. 2008-02-22 Hans-Peter Nilsson * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for GENNONACR_REGS. 2008-02-21 Janis Johnson PR target/34526 * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment. (rs6000_explicit_options): Split abi into spe_abi and altivec_abi, add vrsave. (rs6000_override_options): Set altivec_abi as default, not override, for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI is used; use new member spe_abi. (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use spe_abi and altivec_abi. 2008-02-21 Ralf Wildenhues PR bootstrap/35273 * config.build (build_file_translate): Set to `CMD //c' only if it works. * Makefile.in (build_file_translate): Improve comment. 2008-02-21 Michael Matz PR target/35264 * config/i386/i386.c (ix86_expand_branch): Add missing breaks. 2008-02-20 DJ Delorie * config/h8300/h8300.md (insv): Force source operand to be a register. * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn as a jump, not as a plain insn. 2008-02-20 Joseph Myers * doc/invoke.texi, doc/standards.texi: Refer to gcc-4.3/c99status.html. 2008-02-20 Richard Guenther PR middle-end/35265 * builtins.c (validate_arg): If we want an INTEGER_TYPE, be happy with INTEGRAL_TYPE_P. 2008-02-19 Ralf Wildenhues PR bootstrap/35218 * Makefile.in (build_file_translate): New. (gcc-vers.texi): Use it for translating $(abs_srcdir). * config.build (build_file_translate): Set to `CMD //c' on MinGW. * configure.ac (build_file_translate): Substitute it. * configure: Regenerate. 2008-02-19 Jakub Jelinek PR target/35239 * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special 32-bit inline asm without asm alternatives for host GCC < 3.0. 2008-02-19 Paul Brook PR target/35071 * config/arm/ieee754-df.S: Fix do_it typo. * config/arm/ieee754-sf.S: Fix do_it typo. 2008-02-18 Jakub Jelinek * DEV-PHASE: Mark as prerelease. 2008-02-17 Ralf Wildenhues * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate. * doc/cfg.texi: Likewise. * doc/extend.texi: Likewise. * doc/gty.texi: Likewise. * doc/invoke.texi: Likewise. * doc/loop.texi: Likewise. * doc/md.texi: Likewise. * doc/passes.texi: Likewise. * doc/rtl.texi: Likewise. * doc/sourcebuild.texi: Likewise. * doc/tm.texi: Likewise. * doc/tree-ssa.texi: Likewise. 2008-02-17 Richard Guenther PR middle-end/35227 * tree-complex.c (init_parameter_lattice_values): Handle parameters without default definition. 2008-02-17 Richard Guenther PR tree-optimization/35231 * tree-vrp.c (register_edge_assert_for): Do not assume A == 0 if A | B != 1. 2008-02-17 Uros Bizjak Revert: 2008-02-15 Uros Bizjak * config/i386/sfp-machine.h (CMPtype): Define as typedef using libgcc_cmp_return mode. 2008-02-16 Manuel Lopez-Ibanez PR c/28368 * doc/invoke.texi (-std): Clarify description of -std= and -ansi. 2008-02-16 Ralf Corsepius * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475 multilibs. 2008-02-16 Ralf Wildenhues * doc/c-tree.texi: Use `@.' where appropriate. * doc/extend.texi: Likewise. * doc/install.texi: Likewise. * doc/invoke.texi: Likewise. * doc/loop.texi: Likewise. * doc/makefile.texi: Likewise. * doc/md.texi: Likewise. * doc/passes.texi: Likewise. * doc/standards.texi: Likewise. * doc/tm.texi: Likewise. 2008-02-15 Jakub Jelinek PR middle-end/35196 * omp-low.c (expand_omp_for_generic): Don't initialize fd->v in entry_bb. (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb rather than in entry_bb. 2008-02-15 Uros Bizjak * config/i386/sfp-machine.h (CMPtype): Define as typedef using libgcc_cmp_return mode. 2008-02-15 Jakub Jelinek PR middle-end/35130 * tree-nested.c (convert_call_expr): Put FRAME.* vars into OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause. 2008-02-15 Richard Guenther Zdenek Dvorak PR tree-optimization/35164 * tree-flow.h (stmt_references_abnormal_ssa_name): Declare. * tree-dfa.c (stmt_references_abnormal_ssa_name): New function. * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars): Only propagate addresses which do not have abnormal SSA_NAMEs in their operands. 2008-02-15 Joseph Myers PR target/35088 * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define. 2008-02-15 Jan Hubicka PR middle-end/35149 * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag. 2008-02-15 Uros Bizjak PR middle-end/34621 * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY when calculating alignment_pad. 2008-02-15 Uros Bizjak * config/i386/i386.h (CLEAR_RATIO): Use MIN macro. (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define. * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro and STACK_BOUNDARY define. 2008-02-14 Danny Smith PR preprocessor/35061 * c-pragma.c (handle_pragma_pop_macro): Check that pushed_macro_table has been allocated. 2008-02-14 Eric Botcazou PR middle-end/35136 * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change. (force_gimple_operand): Likewise. * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR. Also recurse on the operand for regular VIEW_CONVERT_EXPRs. (find_interesting_uses_address): Check addressability and alignment of the base expression only after substituting bases of IVs into it. 2008-02-14 Michael Matz PR target/34930 * function.c (instantiate_virtual_regs_in_insn): Reload address before falling back to reloading the whole operand. 2008-02-14 Andreas Krebbel * config/s390/s390.c (s390_mainpool_start): Emit the pool before the first section switch note. 2008-02-14 Ralf Wildenhues * doc/bugreport.texi: Update copyright years. * doc/c-tree.texi: Likewise. * doc/cfg.texi: Likewise. * doc/cpp.texi: Likewise. * doc/cppinternals.texi: Likewise. * doc/fragments.texi: Likewise. * doc/frontends.texi: Likewise. * doc/gcc.texi: Likewise. * doc/gty.texi: Likewise. * doc/hostconfig.texi: Likewise. * doc/implement-c.texi: Likewise. * doc/libgcc.texi: Likewise. * doc/loop.texi: Likewise. * doc/makefile.texi: Likewise. * doc/options.texi: Likewise. * doc/passes.texi: Likewise. * doc/rtl.texi: Likewise. * doc/sourcebuild.texi: Likewise. * doc/standards.texi: Likewise. * doc/tree-ssa.texi: Likewise. * doc/trouble.texi: Likewise. * doc/extend.texi: Use @: or add comma where appropriate. * doc/invoke.texi: Likewise. * doc/tm.texi: Likewise. 2008-02-14 Alan Modra PR target/34393 * config/rs6000/rs6000.md (restore_stack_block): Force operands[1] to a reg. 2008-02-14 Jesper Nilsson * doc/md.texi (clz, ctz): Add reference. * doc/rtl.texi (clz, ctz): Likewise. 2008-02-13 Ralf Wildenhues PR other/35148 * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of srcdir. 2008-02-13 Andreas Krebbel * config/s390/s390.c (struct constant_pool): New field emit_pool_after added. (s390_mainpool_start): Set the emit_pool_after flag according to the section switch notes. (s390_mainpool_finish): Consider emit_pool_after when emitting the literal pool at the end of the function. (s390_chunkify_start): Force literal pool splits at section switch notes. 2008-02-13 Michael Matz PR debug/35065 * var-tracking.c (clobber_variable_part): Correctly traverse the list. 2008-02-13 Manuel Lopez-Ibanez PR 29673 * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined. Add -fdump-ipa-inline. * tree-dump.c (dump_files): Remove tree-inlined dump. * tree-pass.h (tree_dump_index): Remove TDI_inlined. 2008-02-12 Richard Guenther PR tree-optimization/35171 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with default defs. 2008-02-12 Richard Guenther PR middle-end/35163 * fold-const.c (fold_widened_comparison): Use get_unwidened in value-preserving mode. Disallow final truncation. 2008-02-12 Eric Botcazou PR middle-end/35136 * gimplify.c (force_gimple_operand_bsi): Move SSA renaming code from here to... (force_gimple_operand): ...here. 2008-02-12 Jakub Jelinek PR c++/35144 * tree-sra.c (sra_build_assignment): fold_convert SRC if copying non-compatible pointers. (generate_element_copy): If SRC and DST are RECORD_TYPEs with different FIELD_DECLs, try harder by comparing field offsets, sizes and types. PR inline-asm/35160 * function.c (match_asm_constraints_1): Don't replace the same input multiple times. 2008-02-12 Anatoly Sokolov * config/avr/avr.h (AVR_HAVE_RAMPZ): Define. * config/avr/avr.c (expand_prologue): Save RAMPZ register. (expand_epilogue): Restore RAMPZ register. * config/avr/avr.md (RAMPZ_ADDR): New constant. 2008-02-11 Kai Tietz * config/i386/cygwin.asm: (__alloca): Correct calling convention and alignment. (__chkstk): Force 8 byte stack alignment. 2008-02-11 Uros Bizjak Richard Guenther PR tree-optimization/33992 * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of the zero we compare against. 2008-02-10 Danny Smith PR libfortran/35063 * gthr-win32.h (__gthread_mutex_destroy_function): New function to CloseHandle after unlocking to prevent accumulation of handle count. 2008-02-09 John David Anglin PR middle_end/34150 * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a pic_label_operand source. Similarly, add a REG_LABEL_OPERAND note and update LABEL_NUSES during and after reload. 2008-02-08 Steven Bosscher PR middle-end/34627 * combine.c (simplify_if_then_else): Make sure the comparison is against const0_rtx when simplifying to (abs x) or (neg (abs X)). 2008-02-08 Richard Sandiford PR bootstrap/35051 * double-int.h: Don't include gmp.h for GENERATOR_FILEs. (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs. * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs. (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs. * tree.h (get_type_static_bounds): Likewise. 2008-02-08 Ralf Wildenhues * doc/invoke.texi (Option Summary, C++ Dialect Options) (Objective-C and Objective-C++ Dialect Options, Warning Options): Make -Wfoo language annotations match what the compiler outputs. 2008-02-08 Sa Liu * config/spu/spu-builtins.def: Fixed wrong parameter type in spu intrinsics spu_convts, spu_convtu, spu_convtf. * testsuite/gcc.target/spu/intrinsics-3.c: New. Test error messages. 2008-02-08 Hans-Peter Nilsson * doc/extend.texi (Function Attributes) : Mention asm ("") as method to keep calls. 2008-02-07 Manuel Lopez-Ibanez PR other/32754 * doc/options.texi (Options): Replace references to opts.sh with optc-gen.awk. * opts-common.c: Likewise. * optc-gen.awk: Likewise. 2008-02-07 Andreas Krebbel * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit. 2008-02-07 Richard Henderson PR rtl-opt/33410 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an EXPR_LIST for the REG_EQUAL instead of a comparison with a funny mode. 2008-02-07 Uros Bizjak PR tree-optimization/35085 * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update for operand entry oe2 in addition to operand entry oe3 in order to expose more opportunities for vectorizer sum reduction. 2008-02-06 Kaveh R. Ghazi PR other/35107 * Makefile.in (LIBS): Remove $(GMPLIBS). (cc1-dummy, cc1): Add $(GMPLIBS). 2008-02-06 Jan Hubicka PR target/23322 * i386.md (moddf_integer): Do not produce partial memory stalls for targets where it hurts. 2008-02-06 Uros Bizjak PR target/35083 * optabs.c (expand_float): Do not check for decimal modes when expanding unsigned integer through signed conversion. 2008-02-06 Nick Clifton * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup inside the clobber with a match_operand and duplicated operand number in the constraint. (ineqbranchsi): Delete redundant comment. 2008-02-06 Ralf Corsepius * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add builtin_define ("__USE_INIT_FINI__"). * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add -msx multilibs. * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT. 2008-02-06 Ralf Wildenhues PR documentation/30330 * doc/invoke.texi (C++ Dialect Options) (Objective-C and Objective-C++ Dialect Options, Warning Options): For each warning option -Wfoo that allows -Wno-foo, ensure both -Wfoo and -Wno-foo are listed in the option index. Fix index entry of -Wswitch-default, index -Wnormalized= including the `=', and -Wlarger-than-@var{len} including @var{len}. 2008-02-05 Uros Bizjak * config/i386/i386.md (floatunssisf2): Use ix86_expand_convert_uns_sisf_sse also for TARGET_SSE. (floatunssi2): Rename from floatunssisf2 and floatunssidf2. Macroize expander using MODEF mode iterator. 2008-02-05 Diego Novillo http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html PR 33738 * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738. 2008-02-05 Kaveh R. Ghazi PR other/35070 * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings. 2008-02-05 H.J. Lu PR target/35084 * config/i386/i386.c (ix86_function_sseregparm): Add an arg to indicate if a message should be generated. (init_cumulative_args): Updated. (function_value_32): Likewise. 2008-02-05 Joseph Myers * doc/include/texinfo.tex: Update to version 2008-02-04.16. 2008-02-05 Uros Bizjak PR target/35083 * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only. Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2. 2008-02-04 Diego Novillo http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html PR 33738 * tree-vrp.c (vrp_evaluate_conditional): With -Wtype-limits, emit a warning when comparing against a constant outside the natural range of OP0's type. 2008-02-04 Richard Guenther PR middle-end/33631 * expr.c (count_type_elements): Give for unions instead of guessing. 2008-02-04 Richard Guenther PR middle-end/35043 * gimplify.c (gimplify_init_ctor_eval): Convert array indices to TYPE_DOMAINs base type instead of using bitsizetype here. 2008-02-03 Jason Merrill * print-tree.c (print_node) [CONSTRUCTOR]: Print elements. 2008-02-04 Ralf Wildenhues PR other/29972 * doc/invoke.texi (C++ Dialect Options, Optimize Options) (HPPA Options, i386 and x86-64 Options, IA-64 Options) (RS/6000 and PowerPC Options): Fix typos and markup. * doc/passes.texi (Tree-SSA passes): Likewise. 2008-02-02 Michael Matz PR target/35045 * postreload-gcse.c (record_last_reg_set_info_regno): Renamed from record_last_reg_set_info. (record_last_reg_set_info): Take an RTX argument, iterate over all constituent hardregs. (record_last_set_info, record_opr_changes): Change calls to new signature or to record_last_reg_set_info_regno. 2008-02-02 Gerald Pfeifer * doc/extend.texi (X86 Built-in Functions): Fix grammar. 2008-02-01 Hans-Peter Nilsson PR rtl-optimization/34773 * reg-notes.def (EQUAL): Mention significance of combination of REG_EQUAL and REG_RETVAL. * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an insn that has a REG_RETVAL. 2008-02-01 Roger Sayle PR bootstrap/33781 * configure.ac (--enable-fixed-point): Disable unless explicitly requested on IRIX. * configure: Regenerate. 2008-02-01 Richard Guenther PR other/35042 * invoke.texi (-finline-limit): Remove no longer true parts of the documentation. Note that there is no default value. 2008-02-01 Andrew Pinski Mark Mitchell Ben Elliston PR c/29326 * doc/extend.texi (Other Builtins): Document. 2008-01-31 Tom Browder * doc/c-tree.texi (Types): Fix grammar. (Expression trees): Ditto. * doc/passes.texi (Tree-SSA passes): Ditto. * doc/configterms.texi (Configure Terms): Fix typo. * doc/cpp.texi (Common Predefined Macros): Ditto. * doc/md.texi (Machine Constraints): Ditto. * doc/makefile.texi (Makefile): Add comma. 2008-01-31 Tom Browder Gerald Pfeifer * doc/sourcebuild.texi (Front End): Remove references to CVS and CVSROOT/modules. (Texinfo Manuals): Replace reference to CVS by one to SVN. (Back End): Remove reference to CVS. 2008-01-31 Richard Sandiford PR target/34900 * config/mips/mips.c (gen_load_const_gp): New function, taking a comment from... (mips16_gp_pseudo_reg): ...here. * config/mips/mips.md (load_const_gp): Replace with... (load_const_gp_): ...this :P-based insn. 2008-01-31 Manuel Lopez-Ibanez * doc/invoke.texi (-ansi): Mention explicitly corresponding -std= options. Minor fixes. (-std): Move reference to standards closer to where language standards are first mentioned. 2008-01-31 Richard Sandiford PR rtl-optimization/34995 * reload.c (alternative_allows_const_pool_ref): Take an rtx parameter and return a bool. If the rtx parameter is nonnull, check that it satisfies an EXTRA_MEMORY_CONSTRAINT. (find_reloads): Update call accordingly. Pass the new operand if it needed no address reloads, otherwise pass null. 2008-01-30 Richard Henderson PR c/34993 * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN for unbounded arrays. 2008-01-30 Silvius Rus * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg. 2008-01-30 Jan Hubicka PR target/34982 * i386.c (init_cumulative_args): Use real function declaration when calling locally. 2008-01-30 Richard Sandiford PR rtl-optimization/34998 * global.c (build_insn_chain): Treat non-subreg_lowpart SUBREGs of pseudos as clobbering all the words covered by the SUBREG, not just all the bytes. * ra-conflict.c (clear_reg_in_live): Likewise. Take the original df_ref rather than an extract parameter. (global_conflicts): Update call accordingly. 2008-01-30 Andreas Krebbel * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange the overflow check to make it easier to read. (__fixtfdi): Change the type of the ll member in union long_double to UDItype_x. 2008-01-30 Jakub Jelinek PR middle-end/34969 * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype. * cgraph.c (cgraph_update_edges_for_call_stmt): New function. * tree-inline.c (fold_marked_statements): Call cgraph_update_edges_for_call_stmt if folding a call statement. * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for debug_generic_stmt calls, reset it back afterwards. PR c/35017 * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY static decls. * c-typeck.c (build_external_ref): Don't pedwarn about static vars in current function's scope. 2008-01-29 Joseph Myers * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation. 2008-01-29 Bernhard Fischer PR c/35002 * ipa-struct-reorg.c: Fix spelling. * params.def: Ditto. 2008-01-29 Richard Guenther PR middle-end/35006 * tree-inline.h (struct copy_body_data): Add remapping_type_depth field. * tree-inline.c (remap_type): Increment remapping_type_depth around remapping types. (copy_body_r): Only add referenced variables if they are referenced from code, not types. 2008-01-29 Douglas Gregor PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print qualifiers for an ERROR_MARK_NODE or a NULL_TREE. 2008-01-28 Andy Hutchinson PR target/34412 * config/avr/avr.c (expand_prologue): Use correct QI mode frame pointer for tiny stack. 2008-01-28 Bernhard Fischer * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording. 2008-01-28 Bernhard Fischer * config/vx-common.h: Fix typo in comment. 2008-01-28 Ian Lance Taylor PR c++/34862 PR c++/33407 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't coalesce pointers if they have different DECL_NO_TBAA_P values. * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies between variables with different DECL_NO_TBAA_P values. 2008-01-28 Nathan Froyd PR 31535 * config/rs6000/rs6000.c (small_data_operand): Vectors and floats are not legitimate small data references on SPE targets. 2008-01-28 David Daney * doc/install.texi (mips-*-*): Recommend binutils 2.18. 2008-01-28 David Daney * doc/install.texi (--disable-libgcj-bc): Reword documentation. 2008-01-27 Joseph Myers * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*, m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*, *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout, hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*, i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*, i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*, vax-*-bsd*, vax-*-ultrix*): Mark obsolete. 2008-01-27 Bernhard Fischer * basic-block.h (condjump_equiv_p): Fix comment. 2008-01-27 Bernhard Fischer * tree-pretty-print.c (print_generic_decl, print_generic_stmt, print_generic_stmt_indented): Fix comment. 2008-01-27 Bernhard Fischer * configure.ac (__stack_chk_fail): Add detecion for availability of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined. * configure: Regenerate. 2008-01-26 Maxim Kuvyrkov PR middle-end/34688 * final.c (output_addr_const): Handle TRUNCATE. 2008-01-26 Zdenek Dvorak PR target/34711 * tree-ssa-loop-ivopts.c (comp_cost): New type. (zero_cost, infinite_cost): New constants. (struct cost_pair): Change type of cost to comp_cost. (struct iv_ca): Change type of cand_use_cost and cost to comp_cost. (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p): New functions. (set_use_iv_cost, force_expr_to_var_cost, force_var_cost, split_address_cost, ptr_difference_cost, difference_cost, get_computation_cost_at, get_computation_cost, determine_use_iv_cost_generic, determine_use_iv_cost_address, determine_use_iv_cost_condition, determine_use_iv_costs, cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp, iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set): Change type of cost to comp_cost. (determine_iv_cost): Increase cost of non-original ivs, instead of decreasing the cost of original ones. (get_address_cost): Indicate the complexity of the addressing mode in comp_cost. (try_add_cand_for): Prefer using ivs not specific to some object. * tree-flow.h (force_expr_to_var_cost): Declaration removed. 2008-01-26 Peter Bergner Janis Johnson PR target/34814 * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document. (TARGET_INSTANTIATE_DECLS): Likewise. * target.h (expand_to_rtl_hook): New target hook. (instantiate_decls): Likewise. * function.c (instantiate_decl): Make non-static. Rename to... (instantiate_decl_rtl): ... this. (instantiate_expr): Use instantiate_decl_rtl. (instantiate_decls_1): Likewise. (instantiate_decls): Likewise. (instantiate_virtual_regs: Call new instantiate_decls taget hook. * function.h (instantiate_decl_rtl): Add prototype. * cfgexpand.c (target.h): New include. (tree_expand_cfg): Call new expand_to_rtl_hook target hook. * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define. (TARGET_INSTANTIATE_DECLS): Likewise. (TARGET_INITIALIZER): New target hooks added. * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx): New prototype. * config/rs6000/rs6000.c (tree-flow.h): New include. (machine_function): Add sdmode_stack_slot field. (rs6000_alloc_sdmode_stack_slot): New function. (rs6000_instantiate_decls): Likewise. (rs6000_secondary_memory_needed_rtx): Likewise. (rs6000_check_sdmode): Likewise. (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined. (TARGET_INSTANTIATE_DECLS): Likewise. (rs6000_hard_regno_mode_ok): Allow SDmode. (num_insns_constant): Likewise. Handle _Decimal32 constants. (rs6000_emit_move): Handle SDmode. (function_arg_advance): Likewise. (function_arg): Likewise. (rs6000_gimplify_va_arg): Likewise. Add special handling of SDmode var args for 32-bit compiles. (rs6000_secondary_reload_class): Handle SDmode. (rs6000_output_function_epilogue): Likewise. (rs6000_function_value): Simplify if statement. (rs6000_libcall_value): Likewise. * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode. (SECONDARY_MEMORY_NEEDED_RTX): Add define. * config/rs6000/dfp.md (movsd): New define_expand and splitter. (movsd_hardfloat): New define_insn. (movsd_softfloat): Likewise. (movsd_store): Likewise. (movsd_load): Likewise. (extendsddd2): Likewise. (extendsdtd2): Likewise. (truncddsd2): Likewise. (movdd_hardfloat64): Fixup comment. (UNSPEC_MOVSD_LOAD): New constant. (UNSPEC_MOVSD_STORE): Likewise. 2008-01-26 Jakub Jelinek PR c++/34965 * c-pretty-print.c (pp_c_exclusive_or_expression): Handle TRUTH_XOR_EXPR. (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR. (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR. (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR. 2008-01-26 David Edelsohn PR target/34794 * config.gcc: Separate AIX 5.3 from AIX 6.1. * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define __LONGDOUBLE128 too. * config/rs6000/aix61.h: New file. 2008-01-26 Richard Sandiford PR rtl-optimization/34959 * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz, popcount and parity rtxes the same mode as their operand. Truncate or extend the result to the return value's mode if necessary. 2008-01-26 Richard Sandiford PR target/34981 * config/mips/mips-protos.h (mips_expand_call): Return an rtx. * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO to GOT_VERSION_REGNUM. (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0. (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT. * config/mips/mips.c (mips_emit_call_insn): New function. (mips_call_tls_get_addr): Call mips_expand_call directly. (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than emit_call_insn. (mips16_build_call_stub): Likewise. Return the call insn or null. (mips_expand_call): Update the call to mips16_build_call_stub accordingly and a remove redundant condition. Assert that MIPS16 stubs do not use lazy binding. Use mips_emit_call_insn and return the call insn. (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if TARGET_USE_GOT. (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM. (mips_avoid_hazard): Remove hazard_set handling. * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to... (UNSPEC_RESTORE_GP): ...this. (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants. (FAKE_CALL_REGNO): Rename to... (GOT_VERSION_REGNUM): ...this. (type): Add "ghost" value. Add an associated insn reservation. (hazard_set): Remove. (exception_receiver): Rename to... (restore_gp): ...this and update the unspec identifier accordingly. (exception_receiver, nonlocal_got_receiver): New expanders. (load_call): Use GOT_VERSION_REGNUM. Don't set FAKE_CALL_REGNO. Remove hazard_set attribute. (set_got_version, update_got_version): New patterns. 2008-01-26 Danny Smith PR target/34970 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define. 2008-01-25 Joseph Myers PR other/31955 * doc/install.texi2html: Generate gcc-vers.texi. 2008-01-25 DJ Delorie * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. 2008-01-25 Joseph Myers * config/c4x: Remove directory. * config.gcc (crx-*, mt-*): Mark obsolete. (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*, h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*, sh-*-rtemscoff*): Remove cases. * defaults.h (C4X_FLOAT_FORMAT): Remove. * real.c (encode_c4x_single, decode_c4x_single, encode_c4x_extended, decode_c4x_extended, c4x_single_format, c4x_extended_format): Remove. * real.h (c4x_single_format, c4x_extended_format): Remove. * doc/extend.texi (interrupt, naked): Remove mention of attributes on C4x. (Pragmas): Remove comment about c4x pragmas. * doc/install.texi (c4x): Remove target-specific instructions. * doc/invoke.texi (TMS320C3x/C4x Options): Remove. * doc/md.texi (Machine Constraints): Remove C4x documentation. * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not refer to C4x source files as examples. (C4X_FLOAT_FORMAT): Remove documentation. 2008-01-25 Bernd Schmidt * config/bfin/bfin.c (override_options): Reorder tests so that flag_pic gets enabled for -msep-data. 2008-01-25 Richard Guenther PR middle-end/32244 * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR to its bitfield precision if required. 2008-01-25 Jakub Jelinek PR middle-end/33880 * tree-nested.c (walk_omp_for): New function. (convert_nonlocal_reference, convert_local_reference): Call walk_omp_for on OMP_FOR. (convert_call_expr): Call walk_body on OMP_FOR's OMP_FOR_PRE_INIT_BODY. 2008-01-25 Richard Guenther PR tree-optimization/34966 * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but default defs and PHI_NODEs we have to insert after the defining statement. 2008-01-24 Nick Clifton * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD): Provide a default definition. (LIBGCC2_UNITS_PER_WORD): Likewise. * config/stormy16/stormy16.c: Include df.h for the prototype for df_regs_ever_live_p. (xstormy16_expand_builtin_va_start): Convert the stack offset into a component_ref and then use POINTER_PLUS_EXPR to add it to the incoming_virtual_args_rtx. (xstormy16_gimplify_va_arg_expr): Rename to xstormy16_gimplify_va_arg_expr. Use POINTER_PLUS_EXPR when performing pointer arithmetic. (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed xstormy16_gimplify_va_arg_expr. Fix up some formatting issues. * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand): Move to predicates.md. (xs_hi_general_operand): Likewise. (xs_hi_nonmemory_operand): Likewise. * config/stormy16/predicates.md: (xstormy16_carry_plus_operand): New predicate. (xs_hi_general_operand): New predicate. (xs_hi_nonmemory_operand): New predicate. * config/stormy16/stormy16-protos.h: (xstormy16_carry_plus_operand): Delete prototype. (xs_hi_general_operand): Likewise. (xs_hi_nonmemory_operand): Likewise. * config/storm16/stormy16.md (addhi3): Remove earlyclobber modifiers as they are no longer needed and they can trigger reload spill failures. * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup with a match_operand in order to help reload. * config/storm16/stormy16.md (movhi_internal): Replace 'r' constraint with 'e' for the 8th alternative as this version of the mov.w instruction only accepts the lower 8 registers. 2008-01-25 Uros Bizjak PR target/34856 * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]: Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements. 2008-01-25 Jakub Jelinek PR middle-end/33333 * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY. 2008-01-25 Golovanevsky Olga * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs): New functions. (remove_structure): Update allocations list before removing structure. 2008-01-25 Golovanevsky Olga * ipa-struct-reorg.c (is_safe_cond_expr, create_new_stmts_for_cond_expr): Use integer_zerop function, that recognize not only zero-pointer, but zero-integer too. 2008-01-25 Ben Elliston PR other/22232 * fixproto: Escape "." in sed expression that strips leading "./". 2008-01-24 H.J. Lu PR driver/34904 * gcc.c (SWITCH_OK): Removed. (SWITCH_LIVE): Changed to bit. (SWITCH_FALSE): Likewise. (SWITCH_IGNORE): Likewise. (switchstr): Change live_cond to unsigned int. (process_command): Replace SWITCH_OK with 0. (do_self_spec): Likewise. (set_collect_gcc_options): Check the SWITCH_IGNORE bit. (give_switch): Likewise. (used_arg): Likewise. (do_spec_1): Set the SWITCH_IGNORE bit. (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE bits. Set the SWITCH_LIVE bit. 2008-01-24 Andreas Krebbel * config/s390/s390.h (MOVE_RATIO): Define new target macro. 2008-01-24 Richard Sandiford PR tree-optimization/34472 * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA parameter to a "bool *" and set *DATA to false if there is an unsafe access. Do not delete the structure here. (check_cond_exprs): Delete it here instead. (check_cond_exprs, exclude_cold_structs): Do not increase I when removing a structure. 2008-01-24 Uros Bizjak PR target/34856 * config/i386/i386.c (ix86_expand_vector_init): Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements. 2008-01-24 Jakub Jakub Jelinek PR middle-end/34934 * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of a fixed vector for stack. 2008-01-24 Ben Elliston PR c++/25701 * doc/gcc.texi (Software development): Add a direntry for g++. 2008-01-23 Hans-Peter Nilsson * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop stale and straggling -fforce-addr comments above. * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't define. * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define. * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define. 2008-01-23 Michael Matz PR debug/34895 * dwarf2out.c (force_type_die): Use modified_type_die instead of gen_type_die. 2008-01-23 Andreas Krebbel * ipa-struct-reorg.c (create_new_malloc): Use pointer type as malloc result type. 2008-01-23 Anatoly Sokolov * config/avr/avr.c (avr_current_arch): New variable. (avr_arch_types): Add 'avr31' and 'avr51' entries. (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'. (avr_mcu_types): Add 'avr31' and 'avr51' architectures. (avr_override_options): Init 'avr_current_arch'. (base_arch_s): Move from here... * config/avr/avr.h (base_arch_s): ... here. Add new members 'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 'mega' to 'have_jmp_call'. (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__" macros. (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' architectures. * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES): (Ditto.). 2008-01-23 Richard Guenther PR middle-end/31529 * cgraphunit.c (cgraph_reset_node): Always mark the node not reachable if it is not queued already. 2008-01-23 Bernd Schmidt * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros. * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere. (cputype_selected): New static variable. (bfin_handle_option): Set it if -mcpu is used. (override_option): Select default set of workarounds if no cpu type selected on the command line. (workaround_rts_anomaly): Only run if ENABLE_WA_RETS. From Michael Frysinger * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526. * config/bfin/elf.h (LIB_SPEC): Use proper linker script for bf547, bf523, bf524, and bf526. * config/bfin/bfin.c (bfin_cpus[]): Add bf547, bf523, bf524, and bf526. * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF523__ for bf523, __ADSPBF524__ for bf524, __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as __ADSPBF547__ and __ADSPBF54x__ for bf547. * doc/invoke.texi (Blackfin Options): Document that -mcpu now accept bf547, bf523, bf524, and bf526. 2008-01-22 Eric Botcazou PR rtl-optimization/34628 * combine.c (try_combine): Stop and undo after the first combination if an autoincrement side-effect on the first insn has effectively been lost. 2008-01-22 David Edelsohn PR target/34529 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p): Offset addresses are not valid for Altivec or paired float modes. 2008-01-22 Jakub Jelinek PR c++/34607 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if DECL_INITIAL (decl) is error_mark_node. PR c++/34914 * c-common.c (handle_vector_size_attribute): Only allow integral, scalar float and fixed point types. Handle OFFSET_TYPE the same way as pointer, array etc. types. * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE. PR c++/34917 * tree.c (build_type_attribute_qual_variant): Call build_qualified_type if attributes are equal, but quals are not. 2008-01-22 Manuel Lopez-Ibanez PR 32102 * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1. * flags.h (warn_strict_aliasing): Remove. (warn_strict_overflow): Remove. * opts.c (warn_strict_aliasing): Remove. (warn_strict_overflow): Remove. * c-opts.c (c_common_handle_option): -Wall only sets -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized. (c_common_post_options): Give default values to -Wstrict-aliasing and -Wstrict-overflow if they are uninitialized. * common.opt (Wstrict-aliasing): Specify Var and Init. (Wstrict-overflow): Likewise. 2008-01-22 Kenneth Zadeck PR rtl-optimization/26854 PR rtl-optimization/34400 PR rtl-optimization/34884 * ddg.c (create_ddg_dep_from_intra_loop_link): Use DF_RD->gen. * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted (df_rd_bb_info.expanded_lr_out): Deleted * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag. * loop_iv.c (iv_analysis_loop_init): Ditto. * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n, df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free): Removed code to allocate, initialize or free expanded_lr_out. (df_rd_bb_local_compute_process_def): Restructured to make more understandable. (df_rd_confluence_n): Removed code to no apply invalidate_by_call sets if the sets are being trimmed. 2008-01-22 H.J. Lu PR bootstrap/32287 * configure.ac (ld_vers): Support GNU linker version xx.xx.* (as_vers): Likewise. * configure: Regenerated. 2008-01-22 Manuel Lopez-Ibanez PR middle-end/33092 * tree-pass.h (pass_build_alias): New pass. * tree-ssa-alias.c (gate_build_alias): New. (pass_build_alias): New. * passes.c (init_optimization_passes): Add pass_build_alias after pass_create_structure_vars. 2008-01-22 Wolfgang Gellerich * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER): Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER. (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER. (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER. (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER. (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant. (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant. (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant. (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant. * config/s390/s390.md (FP_ALL): New mode iterator. (_d): New mode attribute. ("*signbit2>"): Changed mode of first operand. ("isinf2"): Changed mode of first operand. ("*TDC_insn"): Adaptation for DFP modes. 2008-01-22 Ben Elliston * tree.c (check_qualified_type): Improve function description. 2008-01-21 Jason Merrill PR c++/34196 * tree.h (TRY_CATCH_IS_CLEANUP): New macro. * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR if it is set. 2008-01-21 DJ Delorie * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not return zero. 2008-01-21 Richard Guenther PR middle-end/34856 * tree-cfg.c (verify_expr): Allow all invariant expressions instead of just constant class ones as reference argument. * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR like any other constant. * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise. 2008-01-21 H.J. Lu * regmove.c (fixup_match_1): Update call crossed frequencies. 2008-01-21 Richard Guenther PR c/34885 * tree-inline.c (setup_one_parameter): Deal with mismatched types using a VIEW_CONVERT_EXPR. 2008-01-21 Alon Dayan Olga Golovanevsky PR tree-optimization/34701 * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation when the structure size is not a power of 2. 2008-01-20 Kenneth Zadeck * doc/install.texi: Add doc for --enable-checking=df. 2008-01-20 Kaz Kojima PR rtl-optimization/34808 * emit-rtl.c (try_split): Handle REG_RETVAL notes. 2008-01-20 Richard Sandiford * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per input. 2008-01-19 Kenneth Zadeck PR rtl-optimization/26854 PR rtl-optimization/34400 * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use DF_RD->gen. * df.h (df_changeable_flags.DF_RD_NO_TRIM): New. (df_rd_bb_info.expanded_lr_out): New. * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag. * loop_iv.c (iv_analysis_loop_init): Ditto. * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n, df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free): Added code to allocate, initialize or free expanded_lr_out. (df_rd_bb_local_compute_process_def): Restructured to make more understandable. (df_rd_confluence_n): Add code to do nothing with fake edges and code to no apply invalidate_by_call sets if the sets are being trimmed. (df_lr_local_finalize): Renamed to df_lr_finalize. (df_live_local_finalize): Renamed to df_live_finalize. 2008-01-20 Richard Sandiford PR target/34831 * config/mips/mips.md (div3): Use when deciding whether to use reciprocal instructions. 2008-01-19 Uros Bizjak * dwarf2out.c (dwarf2out_switch_text_section): Do not call dwarf2out_note_section_used if cold_text_section is NULL. 2008-01-19 Jakub Jelinek PR gcov-profile/34610 * tree-cfg.c (make_edges): Mark both outgoing edges from OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL. * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits from OMP_FOR and OMP_CONTINUE outgoing edges. * tree-profile.c (tree_profiling): Return early if cfun->after_tree_profile != 0. Set cfun->after_tree_profile at the end. * omp-low.c (expand_omp_parallel): Copy after_tree_profile from cfun to child_cfun. * function.h (struct function): Add after_tree_profile bit. 2008-01-19 Anatoly Sokolov * config/avr/avr.S (_exit): Disable interrupt. 2008-01-18 Kenneth Zadeck Steven Bosscher PR rtl-optimization/26854 PR rtl-optimization/34400 * df-problems.c (df_live_scratch): New scratch bitmap. (df_live_alloc): Allocate df_live_scratch when doing df_live. (df_live_reset): Clear the proper bitmaps. (df_live_bb_local_compute): Only process the artificial defs once since the order is not important. (df_live_init): Init the df_live sets only with the variables found live by df_lr. (df_live_transfer_function): Use the df_lr sets to prune the df_live sets as they are being computed. (df_live_free): Free df_live_scratch. 2008-01-18 Ian Lance Taylor * common.opt: Add fmerge-debug-strings. * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test flag_merge_debug_strings rather than flag_merge_constants. * doc/invoke.texi (Option Summary): Mention -fmerge-debug-strings. (Debugging Options): Document -fmerge-debug-strings. 2008-01-18 Ian Lance Taylor PR c++/33407 * tree.h (DECL_IS_OPERATOR_NEW): Define. (struct tree_function_decl): Add new field operator_new_flag. * tree-inline.c (expand_call_inline): When inlining a call to operator new, force the return value to go into a variable, and set DECL_NO_TBAA_P on that variable. * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag. 2008-01-18 Uros Bizjak PR debug/34484 * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with DWARF2_DEBUGGING_INFO. (dwarf2out_note_section_used): Ditto. Add prototype. (have_multiple_function_sections, text_section_used, cold_text_section_used, *cold_text_sections): Move declarations before their uses. 2008-01-17 Bob Wilson * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc field and add signal_ra. * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove assignments to frame state pc. Move end of stack check after MD_FALLBACK_FRAME_STATE_FOR. (uw_update_context_1): Use frame state signal_regs if set, instead of checking signal_frame flag. (uw_update_context): Use frame state signal_ra if set. * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define. * config/xtensa/linux-unwind.h: New file. 2008-01-18 Bernhard Fischer * modulo-sched.c (get_sched_window): Fix comment typo. 2008-01-17 Andrew MacLeod PR tree-optimization/34648 * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying. 2008-01-17 Anatoly Sokolov * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around. * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add. 2008-01-17 Seongbae Park PR rtl-optimization/34400 * df-core.c (df_worklist_dataflow_overeager, df_worklist_dataflow_doublequeue): New functions. (df_worklist_dataflow): Two different worklist solvers. * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR): New param. 2008-01-16 Sebastian Pop PR testsuite/34821 * doc/invoke.texi: Document the dependence on pthread for fopenmp and ftree-parallelize-loops. 2008-01-17 Mircea Namolaru PR rtl-optimization/34826 * loop-doloop (doloop_modify): Update the REG_BR_PROB note. 2008-01-17 Andreas Krebbel * global.c (find_reg): Mark the eh regs as used if necessary. * ra-conflict.c (global_conflicts): Set no_eh_reg flag. * ra.h (struct allocno): no_eh_reg field added. Changed no_stack_reg type to bitfield. 2008-01-17 Eric Botcazou * tree.c (substitute_in_expr): Add missing 'break'. 2008-01-17 Richard Guenther PR tree-optimization/34825 * tree-ssa-math-opts.c (is_division_by): Do not recognize x / x as division to handle. 2008-01-16 John David Anglin * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or "-pthread" is specified. * pa-hpux11.h (LIB_SPEC): Likewise. 2008-01-16 Janis Johnson Peter Bergner PR rtl-optimization/33796 * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc. 2008-01-16 John David Anglin PR libgfortran/34699 * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on static links. * pa-hpux10.h (LINK_SPEC): Likewise. * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1. 2008-01-16 Richard Guenther PR middle-end/32628 * fold-const.c (fold_convert_const_int_from_int): Do not set overflow if that occured only because of a sign extension change when converting from/to a sizetype with the same precision and signedness. 2008-01-16 Uros Bizjak PR debug/34249 * dwarf2out.c (output_call_frame_info): Move output of FDE initial location address to the correct place. Update copyright year. 2008-01-16 Sebastian Pop * lambda-code.c (lambda_transform_legal_p): Handle the case of no dependences in the dependence_relations vector. 2008-01-16 Jan Hubicka PR rtl-optimization/31396 * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED. * cfg.c (dump_reg_info): Print it. * regs.h (struct reg_info_t): add freq_calls_crossed. (REG_FREQ_CALLS_CROSSED): New macro. * global.c (global_alloc): Compute freq_calls_crossed for allocno. (find_reg): Update call of CALLER_SAVE_PROFITABLE. * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2, regmove_optimize): Update call crossed frequencies. * local-alloc.c (struct qty): Add freq_calls_crossed. (alloc_qty): Copute freq_calls_crossed. (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED. (find_free_reg): Update call of CALLER_SAVE_PROFITABLE. * ra.h (struct allocno): Add freq_calls_crossed. 2008-01-16 Sebastian Pop * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for libgomp when compiling with ftree-parallelize-loops. (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops. 2008-01-16 Richard Guenther PR tree-optimization/34769 * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458. * tree.c (int_cst_value): Instead make this function more permissive in what it accepts as valid input. Document this function always sign-extends the value. 2008-01-16 Jakub Jelinek Richard Guenther PR c/34668 * gimplify.c (fold_indirect_ref_rhs): Rename to ... (gimple_fold_indirect_ref_rhs): ... this. (gimple_fold_indirect_ref): New function with foldings that preserve lvalueness. (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs. * tree-flow.h (gimple_fold_indirect_ref): Declare. * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref to fold an INDIRECT_REF, fall back to the old use of fold_indirect_ref_1. 2008-01-16 Sebastian Pop * tree-data-ref.c (subscript_dependence_tester_1): Call free_conflict_function. (compute_self_dependence): Same. 2008-01-16 Uros Bizjak PR debug/34249 * debug.h (dwarf2out_switch_text_section): Move declaration from ... * dwarf2out.c (dwarf2out_switch_text_section): ... here. Make function global. * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]: Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section for DWARF2_UNWIND_INFO targets. 2008-01-16 Richard Guenther PR c/34768 * c-typeck.c (common_pointer_type): Do not merge inconsistent type qualifiers for function types. 2008-01-15 Jerry DeLisle * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for loop_iterator li from previous commit. 2008-01-15 Sebastian Pop * tree-parloops.c (gen_parallel_loop): Free loop bound estimations. 2008-01-12 Sebastian Pop * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New. (parallelize_loops): Don't parallelize irreducible components. 2008-01-14 Manuel Lopez-Ibanez PR c++/24924 * c-opts (c_common_post_options): Do not enable CPP flag_pedantic_errors by default. 2008-01-14 Eric Botcazou PR rtl-optimization/31944 * cse.c (remove_pseudo_from_table): New function. (merge_equiv_classes): Use above function to remove pseudo-registers. (invalidate): Likewise. 2008-01-13 Richard Guenther PR middle-end/34601 * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE instead of TYPE_MODE to deal with calls from expand_one_error_var. 2008-01-13 Uros Bizjak * gcse.c (cprop_jump): Call validate_unshare_change instead of validate_change to unshare the source of the PC set. 2008-01-12 Jan Hubicka PR middle-end/32135 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct references above array bounds. This might trigger bounds checks for pointers to arrays. 2008-01-12 Sebastian Pop * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and new_replaceable_dependencies. 2008-01-12 Doug Kwan * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers instead of OPT_Wreturn_type in warning due to ignored return type qualifiers. * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to options included in -Wextra. * c.opt: New option -Wignored_qualifiers. * doc/invoke.texi (Warning Options, -Wextra): Add new option -Wignore_qualifiers. (-Wignored-qualifiers): Document. (-Wreturn-type): Remove description of functionality now handled by -Wignored-qualifiers. 2008-01-12 Eric Botcazou PR ada/33788 * fold-const.c (fold_unary) : Fold an existing NOP_EXPR if it is between integral types with the same precision. 2008-01-12 Jan Hubicka PR other/28023 * invoke.texi (max-inline-recursive-depth): Fix default value. 2008-01-12 Zdenek Dvorak * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the correct type. 2008-01-11 Bob Wilson * config/xtensa/xtensa.c (override_options): Set flag_shlib. 2008-01-11 James E. Wilson PR target/26015 * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define. 2008-01-11 Anatoly Sokolov * config/avr/avr.c (expand_prologue, expand_epilogue): Don't save/restore frame pointer register and don't use 'call-prologues' optimization in function with "OS_task" attribute. 2008-01-11 Eric Botcazou PR middle-end/31309 * expr.c (copy_blkmode_from_reg): Use a mode suited to the size when copying to memory. 2008-01-11 Steven Bosscher PR rtl-optimization/30905 * cfgcleanup.c: Include dce.h (crossjumps_occured): New global variable. (try_crossjump_bb): Exit loop after finding a fallthru edge. If something changed, set crossjumps_occured to true. (try_optimize_cfg): Clear crossjumps_occured at the beginning. Don't add/remove fake edges to exit here... (cleanup_cfg): ...but do it here, when crossjumping. Run a fast DCE when successful crossjumps occured in the latest iteration of try_optimize_cfg. 2008-01-11 Richard Guenther * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode. (struct vn_unary_op_s): Likewise. (vn_reference_insert): Free old reference on hash collision. 2008-01-10 Raksit Ashok PR rtl-optimization/27971 * combine.c (find_split_point): Split PLUS expressions which are inside a MEM rtx, and whose first operand is complex. 2008-01-10 DJ Delorie * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from... (m32c_hard_regno_nregs): ...this, which is now a wrapper. (m32c_hard_regno_ok): Call the underlying function. 2008-01-10 Richard Guenther PR middle-end/34683 * tree-cfg.c (tree_merge_blocks): Do not go through the full-blown folding and stmt updating path if we just deal with virtual operands. * tree-ssa-copy.c (may_propagate_copy): Do not short-cut test for abnormal SSA_NAMEs. 2008-01-10 Andreas Krebbel PR middle-end/34641 * reload.c (push_reload): Add assertions. All constants from reg_equiv_constant should have been used for replacing the respective pseudo earlier. (find_reloads_address): Invoke find_reloads_address_part for constant taken from the reg_equiv_constant array. 2008-01-10 Steven Bosscher * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed field (valnum) the first in the struct. Replace bools with unit bit fields. 2008-01-10 Richard Guenther PR tree-optimization/34651 * tree-sra.c (sra_build_assignment): Sanitize. Use the correct types and ordering for masking and converting. 2008-01-09 Sebastian Pop PR tree-optimization/34017 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code also for PHI_NODE expressions. 2008-01-09 Jan Hubicka PR tree-optimization/34708 * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR based on number of case labels. (init_inline_once): Remove switch_cost. * tree-inline.h (eni_weights_d): Remove switch_cost. 2008-01-09 Richard Guenther Andrew Pinski PR middle-end/30132 * gimplify.c (gimplify_cond_expr): Do not create an addressable temporary if an rvalue is ok or an lvalue is not required. 2008-01-09 Richard Guenther PR middle-end/34458 * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst, adjust return type. 2008-01-09 Richard Guenther PR middle-end/34679 * tree.c (host_integerp): Check for sizetype only if the type is an integer type. 2008-01-09 Steven Bosscher PR debug/26364 * opts.c (decode_options): Disable inlining of functions called once if not in unit-at-a-time mode. 2008-01-09 Alexandre Oliva * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency. 2008-01-08 Richard Guenther PR middle-end/31863 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail out early if the result will be unused. 2008-01-08 Uros Bizjak PR target/34709 Revert: 2008-01-05 Uros Bizjak * config/i386/i386.c (ix86_builtin_reciprocal): Remove check for TARGET_RECIP. 2008-01-08 Jan Sjodin * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs for vectorization tuned. 2008-01-08 Richard Guenther PR tree-optimization/34683 * tree-ssa-operands.c (operand_build_cmp): Export. * tree-ssa-operands.h (operand_build_cmp): Declare. * tree-vn.c (vuses_compare): Remove. (sort_vuses): Use operand_build_cmp. (sort_vuses_heap): Likewise. * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc to re-use old VEC if available. Do not sort already sorted VUSEs. (vdefs_to_vec): Do not sort already sorted VDEFs. 2008-01-08 Jakub Jelinek PR middle-end/34694 * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION. 2008-01-08 Uros Bizjak PR target/34702 * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document limitations of reciprocal sequences on x86 targets. 2008-01-08 Richard Guenther PR tree-optimization/34683 * tree-flow-inline.h (var_ann): Remove overzealous asserts. 2008-01-07 Jakub Jelinek PR target/34622 * config/darwin.c (darwin_mergeable_string_section): Don't use .cstring if int_size_in_bytes != TREE_STRING_LENGTH. 2008-01-07 Uros Bizjak PR target/34682 * config/i386/i386.md (neg2): Rename from negsf2, negdf2 and negxf2. Macroize expander using X87MODEF mode iterator. Change predicates of op0 and op1 to register_operand. (abs2): Rename from abssf2, absdf2 and negxf2. Macroize expander using X87MODEF mode iterator. Change predicates of op0 and op1 to register_operand. ("*absneg2_mixed", "*absneg2_sse"): Rename from corresponding patterns and macroize using MODEF macro. Change predicates of op0 and op1 to register_operand and remove "m" constraint. Disparage "r" alternative with "!". ("*absneg2_i387"): Rename from corresponding patterns and macroize using X87MODEF macro. Change predicates of op0 and op1 to register_operand and remove "m" constraint. Disparage "r" alternative with "!". (absneg splitter with memory operands): Remove. ("*neg2_1", "*abs2_1"): Rename from corresponding patterns and macroize using X87MODEF mode iterator. * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2): Change predicate of op1 to register_operand. * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support for memory operands. 2008-01-07 Nathan Froyd * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548. 2008-01-07 Richard Guenther * basic-block.h (struct edge_def): Pair dest_idx with goto_locus fields. 2008-01-07 Richard Guenther PR tree-optimization/34683 * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of VOPs of the needed size to save memory. Use VEC_quick_push to save compile-time. (vdefs_to_vec): Likewise. 2008-01-07 Sa Liu * config/spu/spu.md (divdf3): Genetate inline code for double division. The implementation doesn't handle INF or NAN, therefore it only applies when -ffinite-math-only is given. 2008-01-06 Paolo Carlini PR libstdc++/34680 * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate. * doc/cpp.texi ([Common Predefined Macros]): Document. 2008-01-06 Uros Bizjak * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in order to use commutative addition instead of subtraction. 2008-01-06 Andrew Pinski Mircea Namolaru Vladimir Yanovsky Revital Eres PR tree-optimization/34263 * tree-outof-ssa.c (process_single_block_loop_latch, contains_tree_r): New functions. (analyze_edges_for_bb): Call process_single_block_loop_latch function to empty single-basic-block latch block if possible. 2008-01-05 Uros Bizjak * config/i386/i386.c (ix86_builtin_reciprocal): Remove check for TARGET_RECIP. (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion. 2008-01-05 Richard Sandiford * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR. 2008-01-05 Richard Sandiford * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check. 2008-01-05 Jakub Jelinek PR tree-optimization/34618 * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P flag from T. 2008-01-05 Uros Bizjak PR target/34673 * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands in the call to gen_rtx_NE. Remove unneeded VECTOR_MODE_P check. Update copyright year. * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH. Update copyright year. * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand using NR fixup. 2008-01-05 Zhouyi Zhou * tree-vrp.c (find_conditional_asserts): Remove redundant check that edge does not point to current bb before changing need_assert. 2008-01-04 Richard Guenther PR middle-end/34029 * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs for verifying purposes if they are is_gimple_min_invariant. 2008-01-04 Aldy Hernandez PR tree-optimization/34448 PR tree-optimization/34465 * gimplify.c (gimplify_init_constructor): Add new parameter notify_temp_creation. Use it. (gimplify_modify_expr_rhs): Take volatiles into account when optimizing constructors. Do not optimize constructors if gimplify_init_constructor will dump to memory. * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles. * gcc.c-torture/compile/pr34448.c: New. 2008-01-04 Jakub Jelinek PR gcov-profile/34609 * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on return_slot if result is TREE_ADDRESSABLE. 2008-01-04 Richard Sandiford * config/mips/mips.md (sqrt_condition): Tweak comment. (recip_condition): Likewise. Require TARGET_FLOAT64 for DFmode. 2008-01-03 Tom Tromey PR c/34457 * c-common.c (c_type_hash): Handle VLAs. 2008-01-03 Jan Hubicka PR tree-optimization/31081 * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to 0 when inlining and not inlining to first basic block. (remap_decl): When var is initialized to 0, don't set default_def. (expand_call_inline): Set entry_bb. * tree-inline.h (copy_body_data): Add entry_bb. 2008-01-03 Jakub Jelinek PR c++/34619 * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL before returning. PR tree-optimization/29484 * tree-inline.c (inline_forbidden_p_2): New function. (inline_forbidden_p): Disallow inlining if some static var has an address of a local LABEL_DECL in its initializer. * doc/extend.texi (Labels as Values): Document &&foo behaviour vs. inlining. 2008-01-03 Sebastian Pop PR tree-optimization/34635 * tree-data-ref.c (add_other_self_distances): Make sure that the evolution step is constant. 2008-01-03 Jakub Jelinek PR middle-end/34608 * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn. 2008-01-02 Richard Sandiford * tree-sra.c (scalarize_init): Insert the generate_element_init statements after the generate_element_zero statements. 2008-01-02 Richard Guenther PR middle-end/34093 PR middle-end/31976 * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer for very large number of operands instead of ICEing. 2008-01-02 Arthur Norman PR target/34013 * config/i386/i386.c (ix86_expand_prologue): Save red-zone while stack probing. 2008-01-01 Douglas Gregor * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when in C++0x mode. 2008-01-01 Volker Reichelt PR libmudflap/26442 * tree-mudflap.c (mx_register_decls): Guard warning by !DECL_ARTIFICIAL check. 2008-01-01 Jakub Jelinek * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si, sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi, sse5_perm): Fix constraints.