OSDN Git Service

* config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 2ef1f95..e57b0d3 100644 (file)
@@ -1,3 +1,298 @@
+2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
+       iterators.
+       (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and
+       leu.
+       (sgt<u>): Merge sgt and sgtu into new expander.
+       (sgt, sgtu): Remove expanders.
+       (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new
+       pattern.
+       (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
+       (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
+       *sgtu_<mode>_mips16 into new pattern.
+       (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
+       (sge<u>): Merge sge and sgeu into new expander.
+       (sge, sgeu): Remove expanders.
+       (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
+       new pattern.
+       (*sge_<mode>, second *sge_<mode>): Remove patterns.
+       (slt<u>): Merge slt and sltu into new expander.
+       (slt, sltu): Remove expanders.
+       (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new
+       pattern.
+       (*slt_<mode>, *sltu_<mode>): Remove patterns.
+       (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
+       *sltu_<mode>_mips16 into new pattern.
+       (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
+       (sle<u>): Merge sle and sleu into new expander.
+       (sle, sleu): Remove expanders.
+       (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new
+       pattern.
+       (*sle_<mode>, *sleu_<mode>): Remove patterns.
+       (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
+       *sleu_<mode>_mips16 into new pattern.
+       (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
+
+2008-04-03  Jan Hubicka  <jh@suse.cz>
+
+       PR tree-optimization/35795
+       * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
+       * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
+       * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
+       * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
+       * score/score3.c (score3_output_mi_thunk): Likewise.
+       * score/score7.c (score7_output_mi_thunk): Likewise.
+       * mips/mips.c (mips_output_mi_thunk): Likewise.
+
+2008-04-03  Richard Guenther  <rguenther@suse.de>
+
+       * tree-vrp.c (extract_range_from_unary_expr): Handle all
+       conversions.  Simplify code.
+
+2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
+
+2008-04-03  Tom Tromey  <tromey@redhat.com>
+           Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
+       * config/bfin/t-bfin-linux (generated_files): Add
+       linux-sysroot-suffix.h.
+       * doc/install.texi (Prerequisites): Require make 3.80.
+       * doc/sourcebuild.texi (Front End Directory): Document new
+       variable.
+       * Makefile.in (generated_files): New variable.
+       (ALL_HOST_OBJS): New variable.
+       ($(ALL_HOST_OBJS)): New target.
+
+2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
+
+       * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
+       (remap_block): Call id->transform_lang_insert_block instead
+       of langhook.
+       (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
+       Set id.transform_lang_insert_block to NULL.
+       (clone_body): Move to cp/optimize.c
+       * tree-inline.h (struct copy_body_data): Change
+       transform_lang_insert_block to function pointer.
+       (copy_generic_body, copy_decl_no_change): Export.
+       * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
+       * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
+       (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
+
+       * c-tree.h (insert_block): Kill.
+       * c-decl.c (insert_block): Kill.
+
+2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
+
+       * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
+       LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
+       * c-tree.h (c_push_function_context, c_pop_function_context): Remove
+       argument.
+       * c-decl.c (c_push_function_context, c_pop_function_context): Remove
+       argument, call {push,pop}_function_context from here.
+       * c-parser.c: Use c_{push,pop}_function_context.
+
+       * function.c (push_function_context_to): Move meat ...
+       (push_function_context): ... here.  Simplify.
+       * function.c (pop_function_context_from): Move meat ...
+       (pop_function_context): ... here.  Simplify.
+       * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
+       leave_nested).
+       * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
+       LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
+       (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
+       * tree.h (push_function_context_to, pop_function_context_from): Remove.
+
+2008-04-03  Ben Elliston  <bje@au.ibm.com>
+
+       * expmed.c (extract_force_align_mem_bit_field): Remove.
+
+2008-04-03  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/35800
+       * expr.h (try_casesi): Adjust prototype.
+       * expr.c (try_casesi): Take fallback label as extra parameter.
+       Use that for gen_casesi if default_label is NULL.
+       * stmt.c (expand_case): Pass fallback label to try_casesi,
+       make sure to fill gaps with a fallback label if default_label
+       is not present.
+
+2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
+
+       PR target/35801
+       * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
+
+2008-04-03  Ben Elliston  <bje@au.ibm.com>
+
+       * expmed.c (extract_split_bit_field): Remove if (0) code.
+       * tree-ssa-structalias.c (do_sd_constraint): Likewise.
+       (do_ds_constraint): Likewise.
+
+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.
+       (register_edge_assert_for_2): Split the cond argument.
+       (register_edge_assert_for_1): Adjust for the change in
+       register_edge_assert_for_2.
+       (register_edge_assert_for): Split the cond argument.
+       (find_switch_asserts): Adjust for the change in
+       register_edge_assert_for.
+
 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
 
        * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.