OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 4794dde..d800959 100644 (file)
-2007-01-17  Anatoly Sokolov <aesok@post.ru>\r
-\r
-       * config/avr/avr.h (AVR_HAVE_LPMX): New macro.\r
-       (AVR_ENHANCED): Rename to ...\r
-       (AVR_HAVE_MUL): ... new.\r
-       (avr_enhanced_p): Rename to ...\r
-       (avr_have_mul_p): ... new.\r
-       (TARGET_CPU_CPP_BUILTINS): Use 'avr_have_mul_p' instead of \r
-       'avr_enhanced_p' for "__AVR_ENHANCED__". Define "__AVR_HAVE_MUL__".\r
-       * config/avr/avr.c (avr_enhanced_p): Rename to ...\r
-       (avr_have_mul_p): ... new.\r
-       (base_arch_s): Rename 'enhanced' to 'have_mul'.\r
-       (avr_override_options): Use 'avr_have_mul_p' and 'have_mul' instead of\r
-       'avr_enhanced_p' and 'enhanced'.\r
-       (ashlhi3_out, ashrhi3_out, lshrhi3_out, avr_rtx_costs): Use \r
-       AVR_HAVE_MUL instead of AVR_ENHANCED.\r
-       * avr.md (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.\r
-       (mulqi3, *mulqi3_enh, *mulqi3_call, mulqihi3, umulqihi3, mulhi3, \r
-       *mulhi3_enh, *mulhi3_call, mulsi3, *mulsi3_call): Use AVR_HAVE_MUL \r
-       instead of AVR_ENHANCED.\r
-       (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.\r
-       * libgcc.S: Use __AVR_HAVE_MUL__ instead of __AVR_ENHANCED__.\r
-       (__tablejump__): Use __AVR_HAVE_LPMX__ instead of __AVR_ENHANCED__.\r
+2007-01-18  Richard Sandiford  <richard@codesourcery.com>
+           Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/m68k/m68k.h (PCC_STATIC_STRUCT_RETURN): Delete.
+       (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add MOTOROLA cases.
+       * config/m68k/coff.h (REGISTER_PREFIX_MD): Delete.
+       * config/m68k/m68020-elf.h (LIB_SPEC): Delete.
+       * config/m68k/m68k-none.h (CC1_SPEC, CPP_SUBTARGET_SPEC): Delete.
+       * config/m68k/m68kelf.h (IMMEDIATE_PREFIX, REGISTER_PREFIX_MD)
+       (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
+       (NO_DOLLAR_IN_LABEL, PCC_STATIC_STRUCT_RETURN): Don't undefine.
+       (BSS_ASM_OP, ASM_OUTPUT_SKIP, ASM_OUTPUT_ASCII): Delete.
+       * config/m68k/m68kemb.h (PCC_STATIC_STRUCT_RETURN): Don't undefine.
+       * config/m68k/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE)
+       (WCHAR_TYPE_SIZE, TARGET_OBJFMT_CPP_BUILTINS): Delete.
+       (TARGET_OS_CPP_BUILTINS): Don't define mc68000 and mc68020 here.
+       (DBX_REGISTER_NUMBER): Delete.
+       * config/m68k/netbsd-elf.h (IMMEDIATE_PREFIX): Delete.
+       (PCC_STATIC_STRUCT_RETURN): Don't undefine.
+       * config/m68k/openbsd.h (PCC_STATIC_STRUCT_RETURN): Define.
+
+2007-01-18  Richard Sandiford  <richard@codesourcery.com>
+
+       * config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file.
+       * config/flat.h: New file.
+       * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define if
+       OBJECT_FORMAT_FLAT.
+       * config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Do not use
+       indirect references for -msep-data or -mid-shared-library.
+       Do not use PC-relative code addresses either.
+       * config/m68k/m68k.c (override_options): Restrict -fPIC error
+       to -mpcrel.
+       * config/m68k/uclinux.h (STARTFILE_SPEC): Define.  Use Scrt1.o
+       for shared libraries and crt1.o for executables.  Use crti.o and
+       crtbegin.o.
+       (ENDFILE_SPEC): Use crtend.o and crtn.o.
+       (LIB_SPEC): Suppress -Rlibc.gdb if -static-libc is given.
+       Do not add -elf2flt or -shared-lib-id options here.
+       (LINK_SPEC): Define.  Pass -elf2flt if no -elf2flt option is given.
+       Pass -shared-lib-id if -mid-shared-library, taking the library
+       identifier from -mshared-library-id if given, otherwise
+       defaulting to 0.
+       (EH_FRAME_IN_DATA_SECTION): Do not undefine.
+       (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Likewise.
+       (TARGET_OS_CPP_BUILTINS): Define __GXX_MERGED_TYPEINFO_NAMES=0
+       and __GXX_TYPEINFO_EQUALITY_INLINE=0 if -mid-shared-library.
+       (DRIVER_SELF_SPECS): Map unadorned PIC options to -msep-data.
+       * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Add crtbegin.o
+       and crtend.o.
+       * config/m68k/lb1sf68.asm (PICCALL): Use an lea and pc-relative
+       jump sequence for ISA A and ISA A+.
+       (PICJUMP): Likewise.
+
+2007-01-18  Richard Sandiford  <richard@codesourcery.com>
+
+       * config.gcc (m68k-*-uclinux*): Base the port on the common
+       and m68k GNU/Linux files rather than on the generic ELF ones.
+       * config/m68k/uclinux.h (TARGET_VERSION): Override.
+       (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
+
+2007-01-18  Julian Brown  <julian@codesourcery.com>
+           Richard Sandiford  <richard@codesourcery.com>
+
+       * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Make 64-bit on ColdFire.
+       (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
+       * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Undefine
+       before redefining.
+       * config/m68k/uclinux-oldabi.h (LONG_DOUBLE_TYPE_SIZE): Redefine to
+       80 unconditionally.
+       (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
+
+2007-01-18  Richard Sandiford  <richard@codesourcery.com>
+
+       * doc/install.texi: Document m68k-uclinuxoldabi.
+       * config.gcc (m68k-*-uclinuxoldabi): New configuration.
+       * config/m68k/uclinux-oldabi.h: New file, copied from
+       config/m68k/uclinux.h.
+
+2007-01-18  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
+
+       * config/m32r/m32r-protos.h (m32r_expand_epilogue): Declare it.
+       * config/m32r/m32r.c (m32r_setup_incoming_varargs): Use gen_frame_mem.
+       (m32r_compute_frame_size): Use unsigned for regno.
+       (m32r_reload_lr): Use gen_frame_mem.
+       (pop): New.
+       (m32r_output_function_epilogue): Don't output the function epilogue
+       textually here.
+       (m32r_expand_epilogue): New.
+       (direct_return): Return false if the function has the interrupt
+       attribute.
+       (m32r_hard_regno_rename_ok): Remove code for the textual epilogue.
+       * config/m32r/m32r.md (epilogue): New expander.
+       (return_lr, return_rte): New insns.
+       (return): Make it expander.
+       (return_normal): New expander.
+
+2007-01-18  Josh Conner  <jconner@apple.com>
+
+       PR target/30485
+       * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add
+       support for UNLE, UNLT, UNGE, and UNGT.
+
+2007-01-18  Jan Hubicka  <jh@suse.cz>
+
+       * tree-vrp.c (finalize_jump_threads): Do not call cleanup_cfg by hand.
+       * tree-tailcall (add_virtual_phis): Likewise.
+       (optimize_tail_call): Return TODOs.
+       (execute_tail_calls): Return TODOs.
+       * tree-ssa-ccp (execute_fold_all_builtins): Do cleanup_cfg via TODO.
+       * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Return if something
+       changed.
+       * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
+       Cleanup cfg using TODO.
+       * tree-flow.h (cleanup_tree_cfg_loop): Update prototype.
+       * passes.c (execute_function_todo): When cleanup did something, remove
+       unused locals.
+       * tree-cfg.c (pass_build_cfg): Add cleanup_cfg TODO.
+       (make_edges): Don't cleanup_cfg.
+
+2007-01-18  Uros Bizjak  <ubizjak@gmail.com>
+
+       * reg-stack.c (subst_stack_regs_pat) [UNSPEC_SINCOS_COS,
+       UNSPEC_XTRACT_FRACT]: Use generic code for instructions that
+       operate on the top of stack.
+       [UNSPEC_SINCOS_SIN, UNSPEC_XTRACT_EXP, UNSPEC_TAN]: Rewrite
+       register handling of instructions that output to the second
+       stack slot.
+       [UNSPEC_TAN_ONE, UNSPEC_TAN_TAN]: Remove.
+       (move_for_stack_reg): Special-case check for dead destination
+       stack slot for constant load of 1.0 inside UNSPEC_TAN.
+
+       * config/i386/i386.md (UNSPEC_TAN): New constant.
+       (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): Remove.
+       (fptanxf4_i387, fptan_extend<mode>xf4_i387): New patterns
+       to correctly model move of constant 1.0 to top stack slot.
+       (*tandf3_1, *tansf3_1, *tanxf3_1): Remove insn patterns.
+       (unnamed peephole2 pattern): Remove corresponding peephole2
+       pattern that optimizes tan insn and loading of constant 1.0.
+       (tanxf2): Use fptanxf4_i387.
+       (tan<mode>2): Rename from tansf2 and tandf2 and macroize insn
+       patterns using X87MODEF12 mode macro.  Use fptan_extend<mode>xf4_i387
+       and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
+       disable patterns for SSE math.
+       (sincos<mode>3): Use truncxf<mode>2_i387_noop for truncation.
+       (fyl2x_extend<mode>xf3_i387): Use X87MODEF12 for operand 1.
+
+2007-01-18  Dirk Mueller  <dmueller@suse.de>
+           Richard Guenther <rguenther@suse.de>
+
+       PR diagnostic/8268
+       * doc/invoke.texi (Warray-bounds): Document -Warray-bounds.
+       * common.opt (Warray-bounds): Add new warning option.
+       * c-opts.c (c_common_handle_option): Define -Warray-bounds
+       if -Wall is given.
+       * Makefile.in: make tree-vrp.o depend on toplev.h
+       * tree-vrp.c (vrp_finalize): Call check_array_refs if -Warray-bounds
+       is enabled.
+       (check_array_refs, check_array_bounds, check_array_ref): New.
+
+2007-01-18  Jan Hubicka  <jh@suse.cz>
+
+       * tree-ssa-ccp.c (ccp_finalize): Return if something changed.
+       (execute_ssa_ccp): Return flags conditionally.
+       * tree-ssa-propagate.c (substitue_and_fold): Return if something was
+       changed.
+       * tree-ssa-propagate.h (substitute_and_fold): Update prototype.
+
+2007-01-18  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set
+       the CLEANUP_CFGLAYOUT flag when in cfglayout mode.
+
+       * Makefile.c (GTFILES): Add cfglayout.h.
+       * gengtype.c (open_base_files): Likewise.
+       * cfglayout.c (cfg_layout_function_footer,
+       cfg_layout_function_header) Reindent to make gengtype happy.
+       * cfglayout.h (cfg_layout_function_footer,
+       cfg_layout_function_header): Add GTY(()) marker.
+
+       * ifcvt.c (noce_try_sign_mask): Make sure INSN_B is non-null.
+
+2007-01-18  Ben Elliston  <bje@au.ibm.com>
+
+       * genautomata.c (write_automata): Include xstrerror output in the
+       error message if writing the DFA description file fails.
+
+2007-01-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/mips/mips-protos.h (mips_output_external): Make it
+       return void.
+       * config/mips/iris.h (TARGET_ASM_EXTERNAL_LIBCALL): Removed.
+       * config/mips/mips.c (irix_output_external_libcall): Likewise.
+       (extern_list): Likewise.
+       (extern_head): Likewise.
+       (TARGET_ASM_FILE_END): Likewise.
+       (mips_file_end): Likewise.
+       (mips_output_external): Rewritten.
+
+2007-01-18  Ben Elliston  <bje@au.ibm.com>
+
+       * genpreds.c (write_insn_preds_c): Only write out the function
+       body for regclass_for_constraint if we have register constraints.
+
+2007-01-17  Tom Tromey  <tromey@redhat.com>
+
+       * doc/sourcebuild.texi (libgcj Tests): Use sourceware.org.
+       * doc/install.texi (Testing): Use sourceware.org.
+       (Binaries): Likewise.
+       (Specific): Likewise.
+       * doc/contrib.texi (Contributors): Use sourceware.org.
+
+2007-01-17  Anatoly Sokolov <aesok@post.ru>
+
+       * config/avr/avr.h (AVR_HAVE_LPMX): New macro.
+       (AVR_ENHANCED): Rename to ...
+       (AVR_HAVE_MUL): ... new.
+       (avr_enhanced_p): Rename to ...
+       (avr_have_mul_p): ... new.
+       (TARGET_CPU_CPP_BUILTINS): Use 'avr_have_mul_p' instead of 
+       'avr_enhanced_p' for "__AVR_ENHANCED__". Define "__AVR_HAVE_MUL__".
+       * config/avr/avr.c (avr_enhanced_p): Rename to ...
+       (avr_have_mul_p): ... new.
+       (base_arch_s): Rename 'enhanced' to 'have_mul'.
+       (avr_override_options): Use 'avr_have_mul_p' and 'have_mul' instead of
+       'avr_enhanced_p' and 'enhanced'.
+       (ashlhi3_out, ashrhi3_out, lshrhi3_out, avr_rtx_costs): Use 
+       AVR_HAVE_MUL instead of AVR_ENHANCED.
+       * avr.md (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
+       (mulqi3, *mulqi3_enh, *mulqi3_call, mulqihi3, umulqihi3, mulhi3, 
+       *mulhi3_enh, *mulhi3_call, mulsi3, *mulsi3_call): Use AVR_HAVE_MUL 
+       instead of AVR_ENHANCED.
+       (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
+       * libgcc.S: Use __AVR_HAVE_MUL__ instead of __AVR_ENHANCED__.
+       (__tablejump__): Use __AVR_HAVE_LPMX__ instead of __AVR_ENHANCED__.
 
 2007-01-17  Ian Lance Taylor  <iant@google.com>
 
        * config/i386/i386.md (fyl2xxf3_i387): Rename from fyl2x_xf3.
        (fyl2x_extend<mode>xf3_i387): New insn pattern.
        (log<mode>2): Rename from logsf2 and logdf2 and macroize insn
-       insn patterns using X87MODEF12 mode macro.  Extend operand 1
+       patterns using X87MODEF12 mode macro.  Extend operand 1
        to XFmode. Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
        (log10<mode>2): Ditto.
        (log2<mode>2): Ditto.
        (*fxtractxf3_i387): Rename from *fxtractxf3.
        (fxtract_extend<mode>xf3_i387): New insn pattern.
        (ilogbsi2): Use match_dup 3, not match_operand:XF 3.
-
        * config/i386/i386.c (ix86_emit_i387_log1p): Use gen_fyl2xp1xf3_i387()
        and gen_fyl2xxf3_i387().