+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.
* 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().