cppopts.texi (-dU): Document.
[gcc.git] / gcc / ChangeLog
index e5faf39261414e3c30377079faf5404d3e95bb48..e32f8846aea843e3b950b0c9740ad5486d11799d 100644 (file)
@@ -1,3 +1,155 @@
+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.