OSDN Git Service

* config/sh/sh.md (divsi_inv_m3): Handle zero dividend
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 007aff1..2270e80 100644 (file)
@@ -1,3 +1,225 @@
+2007-11-22  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.md (divsi_inv_m3): Handle zero dividend
+       specially.
+
+2007-11-22  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Change checking
+       of ix86_arch and ix86_tune into a switch statement.
+       (enum processor_type): Default PROCESSOR_I386 to 0.
+       * config/i386/i386.c (ix86_decompose_address): Use TARGET_K6 instead
+       of "ix86_tune == PROCESSOR_K6".
+       (ia32_multipass_dfa_lookahead): Change checking of ix86_tune into
+       a switch statement.
+
+2007-11-22  Tom Tromey  <tromey@redhat.com>
+
+       * config/mmix/mmix.c (mmix_encode_section_info): Use alloca to
+       avoid writing into string allocated by ggc_alloc_string.
+
+2007-11-21  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       PR target/34155
+       * config/sh/sh.md (binary_sf_op): Remove.
+       (binary_sf_op0, binary_sf_op1): New define_insn_and_split.
+       * config/sh/sh.c (sh_expand_binop_v2sf): Use gen_binary_sf_op0
+       and gen_binary_sf_op1.
+
+2007-11-21  Hans-Peter Nilsson  <hp@axis.com>
+
+       * regclass.c (init_reg_autoinc): Fix typo preventing test of
+       secondary output reload when setting forbidden_inc_dec_class.
+
+2007-11-21  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/34148
+       * tree-ssa-structalias.c (create_variable_info_for): Do not use
+       field-sensitive PTA for single-element structures.
+       * tree-ssa-alias.c (create_overlap_variables_for): Do not create
+       SFTs for single-element structures.
+
+2007-11-20  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/34154
+       * gimplify.c (gimplify_switch_expr): Use tree_int_cst_lt instead
+       of the signed INT_CST_LT.
+       * stmt.c (expand_case): Likewise.
+       (estimate_case_costs): Likewise.
+
+2007-11-20  Rask Ingemann Lambertsen  <rask@sygehus.dk>
+
+       * read-rtl.c (fatal_expected_char): Print EOF as text rather that
+       its binary representation.
+
+2007-11-20  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-operands.c (add_virtual_operand): Consistently prune
+       accesses.
+
+2007-11-20  Thiemo Seufer  <ths@mips.com>
+
+       * config/mips/mips.c (mips_file_start): Add support for
+       flagging 32-bit code with -mfp64 floating-point.
+
+2007-11-20  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/34146
+       * c-gimplify.c (optimize_compound_literals_in_ctor): New function.
+       (c_gimplify_expr): Use it.
+
+2007-11-20  Ben Elliston  <bje@au.ibm.com>
+
+       * config/spu/spu_mfcio.h: Fix typo.
+
+2007-11-20  Ben Elliston  <bje@au.ibm.com>
+
+       * unwind.inc: Comment that unwind-sjlj.c includes this file.
+
+2007-11-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+           Ben Elliston  <bje@au.ibm.com>
+
+       * config/spu/mfc_tag_release.c: New file.
+       * config/spu/mfc_multi_tag_release.c: Likewise.
+       * config/spu/mfc_multi_tag_reserve.c: Likewise.
+       * config/spu/mfc_tag_release.c: Likewise.
+       * config/spu/mfc_tag_reserve.c: Likewise.
+       * config/spu/mfc_tag_table.c: Likewise.
+       * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Compile them.
+       (TARGET_LIBGCC2_CFLAGS): Define __IN_LIBGCC2.
+       * config/spu/spu_mfcio.h: Avoid <stdint.h>.
+       (uint64_t): Typedef if __IN_LIBGCC2 is defined.
+       (MFC_TAG_INVALID, MFC_TAG_VALID): New macros.
+       (mfc_tag_reserve, mfc_tag_release, mfc_multi_tag_reserve,
+       mfc_multi_tag_release): Likewise.
+       (__mfc_tag_reserve, __mfc_tag_release, __mfc_multi_tag_reserve,
+       __mfc_multi_tag_release): Declare.
+
+2007-11-19  Jason Merrill  <jason@redhat.com>
+
+       PR debug/28834, debug/29436, c/32326
+       * tree.c (build_type_attribute_qual_variant): Refuse to make
+       a distinct copy of a struct/enum type.  Use build_distinct_type_copy.
+       * doc/extend.texi (Type Attributes): Don't encourage people to add
+       attributes to struct/enum types in a typedef.  Fix
+       transparent_union example.
+
+       * tree-inline.c (remap_type_1): Remove code that's redundant with
+       remap_type.
+       (build_duplicate_type): Set id.copy_decl.
+       * c-common.c (handle_transparent_union_attribute): Simplify logic.
+
+2007-11-19  Peter Bergner  <bergner@vnet.ibm.com>
+
+       * config/rs6000/rs6000.c (invalid_e500_subreg,
+       rs6000_legitimate_offset_address_p, legitimate_lo_sum_address_p,
+       rs6000_legitimize_address, rs6000_legitimize_reload_address,
+       rs6000_legitimate_address, function_arg_advance,
+       spe_build_register_parallel, rs6000_spe_function_arg,
+       rs6000_split_multireg_move, spe_func_has_64bit_regs_p,
+       emit_frame_save, gen_frame_mem_offset, rs6000_function_value,
+       rs6000_libcall_value, rs6000_dwarf_register_span): Handle DDmode and
+       TDmode similarly to DFmode and TFmode.
+       * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
+       DATA_ALIGNMENT, CLASS_MAX_NREGS, CANNOT_CHANGE_MODE_CLASS): Likewise.
+
+2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * stor-layout.c (lang_adjust_rli): Delete.
+       (set_lang_adjust_rli): Likewise.
+       (layout_type): Do not call lang_adjust_rli hook.
+       * tree.h (set_lang_adjust_rli): Delete.
+
+2007-11-19  Bernd Schmidt  <bernd.schmidt@analog.com>
+       
+       * config/bfin/bfin.c (must_save_p): New function, mostly broken out of
+       n_dregs_to_save and n_pregs_to_save.
+       (n_pregs_to_save, n_dregs_to_save): Use it.  New argument CONSECUTIVE;
+       all callers changed.
+       (expand_prologue_reg_save, expand_epilogue_reg_restore): Enhance to be
+       able to save single D/P registers that aren't saved by the push/pop
+       multiple insns.
+
+2007-11-19  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/34099
+       * tree-ssa-ccp.c (likely_value): Exclude all but PLUS_EXPR,
+       MINUS_EXPR and POINTER_PLUS_EXPR from handling as UNDEFINED
+       if only one operand is undefined.
+
+2007-11-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR tree-optimization/34036
+       * opts.c (set_fast_math_flags): Do not set flags in common
+       with set_unsafe_math_optimizations_flags, invoke it directly.
+       (set_unsafe_math_optimizations_flags): Unset flag_trapping_math
+       and flag_signed_zeros.
+       * toplev.c (process_options): Force flag_associative_math to 0 and
+       warn, if it is set and either flag_trapping_math or flag_signed_zeros
+       is set too.
+       * doc/invoke.texi (Optimize Options): Document the new behavior
+       of -funsafe-math-optimizations, that -fassociative-math requires
+       both -fno-signed-zeros and -fno-trapping-math and make it clear
+       that -fno-trapping-math requires -fno-signaling-nans.  Refactor
+       documentation of -ffast-math.
+
+2007-11-18  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/34132
+       * gcse.c (try_replace_reg): Avoid rtx sharing between REG_EQUAL note
+       and insn.
+
+       PR middle-end/33335
+       * optabs.h (optab_table): Change type to struct optab from optab.
+       (convert_optab_table): Similarly.
+       Adjust all _optab macros to expand to addresses of optab_table
+       resp. convert_optab_table elements rather than the values of the
+       elements.
+       * optabs.c (optab_table): Change typype to struct optab from optab.
+       If compiled by recent GCC, initialize all the insn_code fields in
+       the array using designated range initializers.
+       (convert_optab_table): Similarly.
+       (convert_optab_libfunc, optab_libfunc, set_optab_libfunc,
+       set_conv_libfunc): Into libfunc_entry's optab field store index within
+       optab_table resp. convert_optab_table array instead of difference
+       between two separately malloced addresses.
+       (new_optab): Add op argument, don't return anything.  Initialize
+       just the insn_code field in handlers array and only when needed.
+       (init_optab, init_optabv): Add op argument, don't return anything.
+       Adjust new_optab caller.
+       (new_convert_optab): Removed.
+       (init_convert_optab): Add op argument, don't return anything, don't
+       call new_convert_optab.  If needed, initialize insn_code field in
+       handlers array.
+       (init_optabs): Adjust init_optab, init_optabv and init_convert_optab
+       callers.
+       (debug_optab_libfuncs): Adjust uses of optab_table and
+       convert_optab_table arrays.
+
+2007-11-18  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/34127
+       * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
+       Make code match up the comments, require compatibility of the
+       pointed-to types.
+
+2007-11-17  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/34130
+       * fold-const.c (extract_muldiv_1): Do not move negative
+       constants inside ABS_EXPR.
+
+2007-11-16  Ian Lance Taylor  <iant@google.com>
+
+       * collect2.c (dump_file): If a demangled symbol is followed by a
+       space, make sure we output at least one space.
+
+2007-11-16  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/34030
+       * fold-const.c (fold_binary): Use correct types for folding
+       1 << X & Y to Y >> X & 1.
+
 2007-11-16  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/33870