+2008-04-02 Joseph Myers <joseph@codesourcery.com>
+
+ * doc/cppopts.texi (-dU): Document.
+ * c-common.h (flag_dump_macros): Update comment.
+ * c-opts.c (handle_OPT_d): Handle -dU.
+ * c-ppoutput.c (macro_queue, define_queue, undef_queue,
+ dump_queued_macros, cb_used_define, cb_used_undef): New.
+ (init_pp_output): Handle -dU.
+ (cb_line_change): Call dump_queued_macros.
+ * toplev.c (decode_d_option): Accept -dU as preprocessor option.
+
+2008-04-02 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/predicates.md (io_address_operand): New predicate.
+ * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
+ * config/avr/avr.c (avr_io_address_p): Remove function.
+ (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
+ 'avr_io_address_p' function.
+ (out_movhi_r_mr): (Ditto.).
+ (out_movqi_mr_r): (Ditto.).
+ (out_movhi_mr_r): (Ditto.).
+ (avr_address_cost): (Ditto.).
+
+2008-04-02 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
+ Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
+ in 32bit mode when XMM registers are available to avoid store
+ forwarding stalls.
+ (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
+ corresponding post-reload splitters.
+
+2008-04-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
+ and __builtin_ia32_shufpd. Provide __builtin_ia32_roundsd and
+ __builtin_ia32_roundss.
+ (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
+ __builtin_ia32_shufpd, __builtin_ia32_roundsd and
+ __builtin_ia32_roundss.
+ (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
+ IX86_BUILTIN_SHUFPD here.
+
+2008-04-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.md (plogic): New.
+ (plogicprefix): Likewise.
+
+ * config/i386/mmx.md (mmx_<code><mode>3): New.
+ (mmx_and<mode>3): Removed.
+ (mmx_ior<mode>3): Likewise.
+ (mmx_xor<mode>3): Likewise.
+
+ * config/i386/sse.md (<code><mode>3): New.
+ (*<code><mode>3): Likewise.
+ (*<code><mode>3): Likewise.
+ (<code><mode>3): Likewise.
+ (*sse_<code><mode>3): Likewise.
+ (*sse2_<code><mode>3): Likewise.
+ (<code>tf3): Likewise.
+ (*<code>tf3): Likewise.
+ (and<mode>3): Likewise.
+ (*and<mode>3): Likewise.
+ (ior<mode>3): Removed.
+ (*ior<mode>3): Likewise.
+ (xor<mode>3): Likewise.
+ (*xor<mode>3): Likewise.
+ (*and<mode>3): Likewise.
+ (*ior<mode>3): Likewise.
+ (*xor<mode>3): Likewise.
+ (and<mode>3): Likewise.
+ (*sse_and<mode>3): Likewise.
+ (*sse2_and<mode>3): Likewise.
+ (andtf3): Likewise.
+ (*andtf3): Likewise.
+ (ior<mode>3): Likewise.
+ (*sse_ior<mode>3): Likewise.
+ (*sse2_ior<mode>3): Likewise.
+ (iortf3): Likewise.
+ (*iortf3): Likewise.
+ (xor<mode>3): Likewise.
+ (*sse_xor<mode>3): Likewise.
+ (*sse2_xor<mode>3): Likewise.
+ (xortf3): Likewise.
+ (*xortf3): Likewise.
+
+2008-04-02 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/14495
+ PR tree-optimization/34793
+ * tree-vrp.c (struct switch_update): New structure.
+ (to_remove_edges, to_update_switch_stmts): New VECs.
+ (simplify_switch_using_ranges): New function. Remove not taken
+ case labels and edges.
+ (simplify_stmt_using_ranges): Call it.
+ (identify_jump_threads): Mark edges we have queued for removal
+ so we don't thread them.
+ (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
+ case label vector.
+ * tree-cfg.c (group_case_labels): Deal with missing default label.
+ (tree_verify_flow_info): Allow missing default label.
+ * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
+ (emit_case_nodes): Likewise.
+ (expand_case): Do not rely on the default label to be present.
+ * expr.c (try_casesi): Deal with NULL default_label.
+ (do_tablejump): Likewise.
+
+2008-04-02 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/14495
+ * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
+ SWITCH_EXPR here ...
+ (vrp_visit_switch_stmt): ... but here (new function).
+ (find_case_label_index): New helper function.
+ (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
+
+2008-04-02 Paolo Bonzini <bonzini@gnu.org>
+
+ * fwprop.c: Fix ISO-C99ism.
+
+2008-04-02 Paolo Bonzini <bonzini@gnu.org>
+
+ PR bootstrap/35752
+ * Makefile.in (objdir): Set it here.
+ * configure.ac: Not here. Find dynamic linker characteristics.
+ * exec-tool.in: Use them.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+
+2008-04-02 Paolo Bonzini <bonzini@gnu.org>
+
+ * expr.c (expand_var): Delete it.
+ * expr.h (expand_var): Delete prototype.
+ * function.c (expand_function_start): Use expand_decl instead.
+ * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
+ langhook.
+
+2008-04-02 Andy Hutchinson <hutchinsonamdy@aim.com>
+
+ PR rtl-optimization/35542
+ * fwprop.c (forward_propagate_and_simplify): Replace
+ loc_reg_mentioned_in_p with reg_mentioned_p.
+
+2008-04-02 Paolo Bonzini <bonzini@gnu.org>
+
+ PR rtl-optimization/35281
+ * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
+ (propagate_rtx_1): Handle PR_HANDLE_MEM.
+ (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
+ (varying_mem_p): Move above propagate_rtx.
+ (all_uses_available_at): Do not check MEMs.
+
2008-04-02 Rafael Espindola <espindola@google.com>
* tree-vrp.c (extract_code_and_val_from_cond): Remove.