+2007-01-18 Kazu Hirata <kazu@codesourcery.com>
+ Richard Sandiford <richard@codesourcery.com>
+
+ * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P)
+ (FP_REGNO_P): New macros.
+ (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_DATA_P)
+ (REGNO_OK_FOR_FP_P, REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Use them.
+ (EH_RETURN_STACKADJ_RTX): Use A0_REG.
+ * config/m68k/m68k.c (m68k_regno_mode_ok): Use the new REGNO macros.
+
+2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
+
+ * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
+ (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-rtems*): Add t-floatlib
+ to $tmake_file.
+ * config/m68k/t-floatlib: New file, extracting common code from...
+ * config/m68k/t-m68kbare, config/m68k/t-m68kelf,
+ * config/m68k/t-uclinux: Here.
+ * config/m68k/fpgnulib.c: Do not compile extendeed precision
+ routines on ColdFire targets.
+
+2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
+
+ * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
+ (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*)
+ (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-linux*)
+ (m68k-*-rtems*): Use tm_file rather than m68k/m68k.h and
+ explicitly set MOTOROLA to 1.
+ * config/m68k/m68k.h (MOTOROLA): Simplify definition accordingly.
+
+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>
+
+ * 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.
* 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().