OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index a8e0c18..83c6035 100644 (file)
@@ -1,3 +1,210 @@
+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>
+
+       * vec.h (VEC_reserve_exact): Define.
+       (vec_gc_p_reserve_exact): Declare.
+       (vec_gc_o_reserve_exact): Declare.
+       (vec_heap_p_reserve_exact): Declare.
+       (vec_heap_o_reserve_exact): Declare.
+       (VEC_OP (T,A,reserve_exact)): New static inline function, three
+       versions.
+       (VEC_OP (T,A,reserve)) [all versions]: Remove handling of
+       negative parameter.
+       (VEC_OP (T,A,alloc)) [all versions]: Call ...reserve_exact.
+       (VEC_OP (T,A,copy)) [all versions]: Likewise.
+       (VEC_OP (T,a,safe_grow)) [all versions]: Likewise.
+       * vec.c (calculate_allocation): Add exact parameter.  Change all
+       callers.
+       (vec_gc_o_reserve_1): New static function, from vec_gc_o_reserve.
+       (vec_gc_p_reserve, vec_gc_o_reserve): Call vec_gc_o_reserve_1.
+       (vec_gc_p_reserve_exact, vec_gc_o_reserve_exact): New functions.
+       (vec_heap_o_reserve_1): New static function, from vec_heap_o_reserve.
+       (vec_heap_p_reserve, vec_heap_o_reserve): Call vec_heap_o_reserve_1.
+       (vec_heap_p_reserve_exact): New function.
+       (vec_heap_o_reserve_exact): New function.
+
+2007-01-17  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-type-escape.c (look_for_casts): Revamp using handled_component_p.
+
+2007-01-17  Eric Christopher  <echristo@apple.com>
+
+       * config.gcc: Support core2 processor.
+
 2007-01-16  Jan Hubicka  <jh@suse.cz>
 
        * tree-ssanames.c (release_dead_ssa_names): Instead of ggc_freeing
        * 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().