X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=616bc5097e97e3bb504e606fd0633e874a50f9c8;hb=8375344417d39f567bf83e2c1b3a5d941bc1c111;hp=904fe7d7a34aadb397084fea774c6e89bcb2ac41;hpb=790a389c121f055856edf51194e0821f789f6818;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 904fe7d7a34..616bc5097e9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,8 +1,1055 @@ +2007-06-12 Kaveh R. Ghazi + + * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation + with !HONOR_NANS and !HONOR_INFINITIES. + * simplify-rtx.c (simplify_binary_operation_1): Likewise. + +2007-06-12 Tristan Gingold + + * gcov.c: Comments updated. + (source_info): Add file_time field. + (source_index): New variable. + (mutiple_files): New variable. + (generate_results): New function extracted from process_file. + (process_file): Save and restore chain of functions, generate + results and free structures only if not merging results. + (release_structures): File names are now freed in create_file_names + (create_file_names): Free previous file names. + (find_source): File date is now read here and modifications in + source files is checked here. + (read_graph_file): Only reverse order of functions for the current + object file. + (make_gcov_file_name): Do not generate long names if input_name is + NULL. + (output_lines): If merging results do not display graph, data and + runs informations. + Checking source file modification is done in find_source. + + * doc/gcov.texi: Append an s to sourcefile. + +2007-06-12 Bernd Schmidt + + * config/bfin/bfin.md (UNSPEC_NOP): New constant. + (forced_nop): New pattern. + * config/bfin/bfin.c: Include "df.h". + (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live. + (bfin_discover_loop): Use df_get_live_in instead of + global_live_at_start. + (bfin_reorder_loops): Pass 0 to cfg_layout_initialize. Call + df_analyze when done. + (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on + the insns. Use QImode for the final insn in a bundle. Call + df_insn_rescan on generated NOPs; use gen_forced_nop instead of + gen_nop. + (reorder_var_tracking_notes): New function. + (bfin_reorg): Pass no argument to split_all_insns. Don't call + update_life_info. Call df_analyze after scheduling and bundle + generation. Call reorder_var_tracking_notes if generating these notes. + Call df_finish_pass at the end. + +2007-06-12 Dirk Mueller + + * optabs.c (debug_optab_libfuncs): fix gcc_assert to + a comparison, not an assignment. + +2007-06-12 Olivier Hainque + + * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR. + Request walking the subtrees only, leaving the current is_lhs/val_only + untouched. + (convert_non_local_reference): Likewise. + +2007-06-12 Nathan Sidwell + + * config/m68k/m68k-devices.def (52221, 52223, 5253): New. + +2007-06-12 Richard Guenther + + PR tree-optimization/15353 + PR tree-optimization/31657 + * passes.c (init_optimization_passes): Add pass_tree_ifcombine. + * timevar.def: Add TV_TREE_IFCOMBINE. + * tree-pass.h (pass_tree_ifcombine): Declare. + * tree-ssa-ifcombine.c: New file. + * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export. + * tree-flow.h (blocks_in_phiopt_order): Declare. + * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o. + (tree-ssa-ifcombine.o): New dependencies. + +2007-06-12 Uros Bizjak + + PR rtl-optimization/32293 + * combine.c (simplify_if_then_else): Truncate return from + nonzero_bits() to correct mode. + +2007-06-12 Uros Bizjak + + * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c) + into a*cbrt(c/b) if flag_unsafe_math_optimizations is set. + +2007-06-11 Diego Novillo + + * Makefile.in (reload1.o-warn): Remove. + +2007-06-11 Seongbae Park + + * combine.c (subst): Use reg_overlap_mentioned_p + instead of comparing register numbers directly. + +2007-06-11 Kenneth Zadeck + + * reload1.c (mark_home_live_1): Use the mode parameter. + +2007-06-11 Kenneth Zadeck + + * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all, + df_process_deferred_rescans, df_notes_rescan): Fixed spelling of + word "deferred". + * df-core.c: Ditto. + +2007-06-11 Daniel Berlin + + * Merge dataflow-branch into mainline (see ChangeLog.dataflow) + +2007-06-11 Uros Bizjak + + * config/i386/i386.md ("*movtf_internal): Penalize moves to and + from integer registers. + (FP mode splitters): Handle TFmode. + +2007-06-11 Eric Botcazou + + * tree-ssa-structalias.c (find_what_p_points_to): Return false + for ref-all pointers that point-to anything. + +2007-06-11 Joseph Myers + + * config/arm/arm.c (arm_output_dwarf_dtprel, + TARGET_ASM_OUTPUT_DWARF_DTPREL): New. + +2007-06-11 Bernd Schmidt + + * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn, + movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant + to memory moves. + +2007-06-11 Rafael Avila de Espindola + + * gcc/tree.c (signed_or_unsigned_type_for): New. + (unsigned_type_for): Use signed_or_unsigned_type_for. + (signed_type_for): Use signed_or_unsigned_type_for. + * gcc/tree.h (signed_or_unsigned_type_for): New. + (get_signed_or_unsigned_type): Remove. + * gcc/fold-const.c (fold_negate_expr): Use signed_type_for instead of + lang_hooks.types.signed_type + (size_diffop): Likewise. + (all_ones_mask_p): Likewise. + (build_range_check): Likewise. + (fold_cond_expr_with_comparison): Likewise. + (fold_cond_expr_with_comparison): Likewise. + (unextend): Likewise. + (extract_muldiv_1): Likewise. + (fold_single_bit_test_into_sign_test): Likewise. + (fold_binary): Likewise. + (fold_ternary): Likewise. + (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for + instead of get_signed_or_unsigned_type. + * gcc/c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove. + (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove. + * gcc/expr.c (signed_or_unsigned_type_for): Use + signed_or_unsigned_type_for instead of get_signed_or_unsigned_type. + * gcc/langhooks.c (get_signed_or_unsigned_type): Remove. + (lhd_signed_or_unsigned_type): Remove. + * gcc/langhooks.h (lang_hooks_for_types): Remove signed_type and + signed_or_unsigned_type. + (lhd_signed_or_unsigned_type): Remove. + * gcc/expmed.c (make_tree): Use signed_type_for instead of + lang_hooks.types.signed_type. + * gcc/c-common.c (same_scalar_type_ignoring_signedness): Use + c_common_signed_type instead of lang_hooks.types.signed_type. + (c_common_unsigned_type): New. + (c_common_signed_type): Just call c_common_signed_or_unsigned_type. + (shorten_compare): Use c_common_unsigned_type instead of + c_common_signed_or_unsigned_type. + (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of + unsigned_type_for. + * gcc/convert.c (convert_to_integer): Use signed_type_for instead of + lang_hooks.types.signed_type. + * gcc/langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove. + (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and + LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE. + * gcc/c-format.c (check_format_types): Use c_common_unsigned_type + instead of unsigned_type_for. + * gcc/c-decl.c (groakdeclarator): Likewise. + * gcc/c-typeck.c (convert_for_assignment): Likewise. + * gcc/c-common.h (c_common_unsigned_type): New. + +2007-06-11 Uros Bizjak + + PR target/32280 + * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ... + * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here. + +2007-06-11 Uros Bizjak + + PR middle-end/32279 + * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c) + into a*sqrt(c/b) if flag_unsafe_math_optimizations is set. + +2007-06-10 Jan Sjodin + Sebastian Pop + + * lambda-code.c (remove_iv): New. + (lambda_loopnest_to_gcc_loopnest): Use remove_iv. + +2007-06-10 Zdenek Dvorak + + * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL. + * tree-predcom.c (mark_virtual_ops_for_renaming): Exported. + * tree-ssa-loop-prefetch.c: Include optabs.h. + (FENCE_FOLLOWING_MOVNT): New macro. + (struct mem_ref): Add independent_p and storent_p fields. + (record_ref): Initalize the new fields. + (gather_memory_references_ref): Return true if the reference + could be analysed. + (gather_memory_references): Check whether all memory accesses + in loop were recorded. + (should_issue_prefetch_p): Return false for nontemporal stores. + (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop, + may_use_storent_in_loop_p, mark_nontemporal_stores): New functions. + (determine_loop_nest_reuse): Detect independent memory references. + (loop_prefetch_arrays): Call mark_nontemporal_stores. + * tree-flow.h (mark_virtual_ops_for_renaming): Declare. + * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency. + * config/i386/i386.h (x86_mfence): Declare. + (FENCE_FOLLOWING_MOVNT): Return x86_mfence. + * config/i386/i386.c (x86_mfence): New variable. + (ix86_init_mmx_sse_builtins): Initialize x86_mfence. + + * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores. + * optabs.c (init_optabs): Initialize storent_optab. + * optabs.h (enum optab_index): Add OTI_storent. + (storent_optab): Declare. + * genopinit.c (optabs): Add initialization for storent_optab. + * tree.h (MOVE_NONTEMPORAL): New macro. + * expr.c (expand_assignment, store_expr, store_constructor_field, + store_constructor, store_field, expand_expr_real_1): Propagate + nontemporality of the expanded store. + (emit_storent_insn): New function. + * expr.h (expand_assignment, store_expr): Declaration changed. + * function.c (assign_parm_setup_reg): Pass false as nontemporality + to expand_assignment. + * stmt.c (expand_asm_expr): Ditto. + * calls.c (initialize_argument_information): Pass false as + nontemporality to store_expr. + * config/i386/sse.md (storentv4sf, storentv2df, storentv2di, + storentsi): New. + +2007-06-09 Daniel Berlin + + * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd + parameter, use it. + (find_what_p_points_to): Pass new parameter to set_uids_in_ptset. + +2007-06-09 Daniel Berlin + + * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b, + and allow DECL_P here. + +2007-06-09 Zdenek Dvorak + + * tree-scalar-evolution.c (follow_ssa_edge_in_rhs, + follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise + track of the size of the expression. + * cfghooks.c (merge_blocks): Remove block from loops structure only + after call of the merge_blocks hook. + +2007-06-09 Tom Tromey + + * c-decl.c (grokdeclarator): Added 'deprecated_state' argument. + (deprecated_state): Removed. + (start_decl): Update. + (enum deprecated_states): Moved earlier. + (groktypename): Update. + (push_parm_decl): Likewise. + (grokfield): Likewise. + (start_function): Likewise. + +2007-06-09 Ian Lance Taylor + + PR tree-optimization/32169 + * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and + CONVERT_EXPR, check whether min and max both converted to an + overflow infinity representation. + +2007-06-08 Eric Botcazou + + * reload1.c (fixup_abnormal_edges): Clear bb field for insns + not inserted on the edge. + +2007-06-08 Bob Wilson + + * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide + instructions if they are supported. + (__divsi3, __umodsi3, __modsi3): Likewise. + (__ashldi3, __ashrdi3, __lshrdi3): New. + * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions. + +2007-06-08 Harsha Jagasia + Tony Linthicum + + * doc/extend.texi: Add fvect-cost-model flag. + * common.opt (fvect-cost-model): New flag. + * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside + cost fields in stmt_vec_info struct for STMT. + * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost + fields in stmt_vec_info struct and access functions for the same. + (TARG_COND_BRANCH_COST): Define cost of conditional branch. + (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding + load, store and vector to scalar operation. + (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation. + (TARG_VEC_LOAD_COST): Define cost of aligned vector load. + (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load. + (TARG_VEC_STORE_COST): Define cost of vector store. + (vect_estimate_min_profitable_iters): Define new function. + * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time + check to evaluate if loop iterations are less than minimum profitable + iterations determined by cost model or minimum vect loop bound defined + by user, whichever is more conservative. + * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a + run-time check to evaluate if loop iterations are less than minimum + profitable iterations determined by cost model or minimum vect loop + bound defined by user, whichever is more conservative. + (vect_estimate_min_profitable_iterations): New function to estimate + mimimimum iterartions required for vector version of loop to be + profitable over scalar version. + (vect_model_reduction_cost): New function. + (vect_model_induction_cost): New function. + (vect_model_simple_cost): New function. + (vect_cost_strided_group_size): New function. + (vect_model_store_cost): New function. + (vect_model_load_cost): New function. + (vectorizable_reduction): Call vect_model_reduction_cost during + analysis phase. + (vectorizable_induction): Call vect_model_induction_cost during + analysis phase. + (vectorizable_load): Call vect_model_load_cost during analysis phase. + (vectorizable_store): Call vect_model_store_cost during analysis phase. + (vectorizable_call, vectorizable_assignment, vectorizable_operation, + vectorizable_promotion, vectorizable_demotion): Call + vect_model_simple_cost during analysis phase. + +2007-06-08 Simon Baldwin + + * reg-stack.c (get_true_reg): Readability change. Moved default case + label into direct switch statement scope. + +2007-06-08 Simon Baldwin + + * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment + in gcc_assert() with '==' comparison. + +2007-06-08 Uros Bizjak + + * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and + TARGET_ABM handling of x86_popcnt variable. + +2007-06-08 Uros Bizjak + + * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq, + __builtin_copysignq and __builtin_infq built-in functions. + +2007-06-08 Uros Bizjak + + * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in + SSE4.2 section. Correct built-in function names in SSE4A section. + +2007-06-08 Uros Bizjak + + PR tree-optimization/32243 + * tree-vect-transform.c (vectorizable_type_promotion): Move check + for ncopies after ratio check between nunits_out and nunits_in. + (vectorizable_type_demotion): Remove single-use variable "scalar_type". + +2007-06-08 Dorit Nuzman + + PR tree-optimization/32224 + * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail + vectorization upon a non GIMPLE_MODIFY_STMT. + +2007-06-08 Christian Bruel + + PR target/29953 + * config/sh/sh.md (doloop_end): New pattern and splitter. + * loop-iv.c (simple_rhs_p): Check for hardware registers. + +2007-06-08 Zdenek Dvorak + + PR middle-end/32209 + * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New + functions. + (verify_dominators): Do not change dominance tree. + +2007-06-08 Kaz Kojima + + * config/sh/constraints.md: New file. + * config/sh/sh.c: Include tm-constrs.h. + (reg_class_from_letter): Remove. + (prepare_cbranch_operands): Use satisfies_constraint_* + function instead of macro. + (andcosts, broken_move, sh_secondary_reload): Likewise. + * config/sh/predicates.md (trapping_target_operand): Likewise. + (and_operand, arith_operand, arith_reg_or_0_operand, + cmp_operand, logical_operand, target_operand, + ua_address_operand, ua_offset, xor_operand): Likewise. + * config/sh/sh.md: Include constraints.md. + (*movsicc_t_false): Use satisfies_constraint_* function + instead of macro. + (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m, + lshrsi3_k, movsi_const_16bit+2, *movhi_media+1, + movdi_const_16bit+1, beq, bne, *ptb): Likewise. + * config/sh/sh.h (reg_class_from_letter): Remove prototype. + (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter. + (REG_CLASS_FROM_CONSTRAINT): Remove. + (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I, + CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K, + CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M, + CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P, + CONST_DOUBLE_OK_FOR_LETTER_P): Likewise. + (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_* + function instead of macro. + (SECONDARY_INPUT_RELOAD_CLASS): Likewise. + (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A, + EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B, + EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove. + (IS_PC_RELATIVE_LOAD_ADDR_P): New macro. + (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise. + (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise. + (IS_NON_EXPLICIT_CONSTANT_P): Likewise. + (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W, + EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C, + EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0, + EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S, + EXTRA_CONSTRAINT_STR): Likewise. + (GO_IF_LEGITIMATE_INDEX): Fix indentation. + +2007-06-07 Geoffrey Keating + + * config/i386/darwin.h (STACK_BOUNDARY): Define. + +2007-06-07 Simon Martin + + PR c++/30759 + * c-common.h (flag_cpp0x): Replaced by... + (cxx_dialect): ... this new variable specifying the C++ dialect that + is used. + * c-common.c (flag_cpp0x): Removed. + (cxx_dialect): Defined. + * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of + cxx_dialect. + * c-opts.c (c_common_post_options): Likewise. + (set_std_cxx98): Set cxx_dialect to cxx98. + (set_std_cxx0x): Set cxx_dialect to cxx0x. + +2007-06-07 Geoffrey Keating + Hui-May Chang + + * doc/invoke.texi (Darwin Options): Update documentation for + -mmacosx-version-min. + * config.gcc (*-*-darwin*): Set extra_gcc_objs. + * config/darwin-driver.c: New file. + * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New. + * config/t-darwin (darwin-driver.o): New rule. + + * config/darwin-c.c (version_as_macro): Ignore low digit. + +2007-06-07 Uros Bizjak + + * config/i386/i386.md (standard sse constant splitter): Handle TFmode. + (negtf2, abstf2, *absnegtf2_sse): New insn patterns. + (CSGNMODE): New mode macro. + (CSGNVMODE): New mode attribute. + (copysign3): Rename from copysingsf3 and copysigndf3. Macroize + expander using CSGNMODE mode macro. Handle TFmode. + (copysign3_const): Rename from copysignsf3_const and + copysigndf3_const. Macroize pattern using CSGNMODE mode macro. + Handle TFmode. + (copysign3_var): Rename from copysignsf3_var and + copysigndf3_var. Macroize pattern using CSGNMODE mode macro. + Handle TFmode. + (copysign3_var splitter): Macroize pattern using CSGNMODE + mode macro. Handle TFmode. + * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns. + (iortf3, *iortf3): Ditto. + (xortf3, *xortf3): Ditto. + * config/i386/i386.c (ix86_build_signbit_mask): Create scalar + TFmode and TImode masks. + (ix86_expand_copysign): Expand TFmode copysign insn. + (IX86_BUILTIN_INFQ): New. + (IX86_BUILTIN_FABSQ): Ditto. + (IX86_BUILTIN_COPYSIGNQ): Ditto. + (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition. + [__builtin_fabsq]: Ditto. + [__builtin_copysignq]: Ditto. + (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin. + [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin(). + [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using + ix86_expand_binop_builtin(). + +2007-06-07 Bob Wilson + + * config/xtensa/lib1funcs.asm: Clean up whitespace. + +2007-06-07 Steve Ellcey + + PR target/31850 + * rtl.h (push_to_sequence2): New. + * emit-rtl.c (push_to_sequence2): New. + * function.c (assign_parm_data_all): Add new fields. + (assign_parm_setup_block): Call push_to_sequence2 instead of + push_to_sequence. + (assign_parm_setup_reg): Ditto. + (assign_parm_setup_stack): Ditto. + (assign_parms_unsplit_complex): Ditto. + (assign_parms): Change field name. + +2007-06-07 Zdenek Dvorak + + PR tree-optimization/32220 + * tree-predcom.c (eliminate_temp_copies): Handle the case that loop + phi node is reached before defining statement. + +2007-06-06 Andrew Pinski + + PR tree-opt/32231 + * tree-vect-transform.c (vectorizable_call): Call update_stmt + after changing the right hand side of the assignment. + +2007-06-06 Eric Christopher + + * config.gcc (i?86-*-darwin*): Remove arch parameter. + (x86_64-*-darwin*): Ditto. + * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define. + (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto. + +2007-06-06 Thomas Neumann + + * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the + coding conventions. + (add_key): Likewise. + * tree-ssa.c (init_tree_ssa): Use type safe memory macros. + * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as + variable names. + * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory macros. + (add_cost_one_coalesce): Likewise. + * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as + variable names. Rename orig to orig_name for consistency. + * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the coding + conventions. + (cprop_into_successor_phis): Avoid using C++ keywords as variable names. + (record_equivalences_from_stmt): Likewise. + * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to + the coding conventions. + (memory_ssa_name_same): Likewise. + (dse_optimize_stmt): Likewise. + (dse_record_phis): Likewise. + (dse_finalize_block): Likewise. + * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++ + keywords as variable names. + (may_move_till): Cast according to the coding conventions. + (force_move_till_expr): Avoid using C++ keywords as variable names. + (force_move_till): Cast according to the coding conventions. + (memref_hash): Likewise. + (memref_eq): Likewise. + (gather_mem_refs_stmt): Likewise. + * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid using C++ + keywords as variable names. + (idx_find_step): Cast according to the coding conventions. + (idx_record_use): Likewise. + (find_depends): Likewise. + (prepare_decl_rtl): Likewise. + (mbc_entry_hash): Likewise. + (mbc_entry_eq): Likewise. + * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp. + (simplify_replace_tree): Avoid using C++ keywords as variable names. + (idx_infer_loop_bounds): Cast according to the coding conventions. + * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise. + * tree-ssa-math-opts.c (occ_new ): Likwise. + * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory + macros. + * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as variable + names. + (add_use_op): Likewise. + (add_vop): Likewise. + (add_vuse_op): Likewise. + (add_vdef_op): Likewise. + (get_expr_operands): Likewise. + (push_stmt_changes): Use type safe memory macros. + * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++ + keywords as variable names. + (conditional_replacement): Likewise. + (minmax_replacement): Likewise. + (abs_replacement): Likewise. + * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the + coding conventions. + (insert_fake_stores): Avoid using C++ keywords as variable names. + * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding + conventions. + * tree-ssa-structalias.c (heapvar_lookup): Likewise. + (heapvar_insert): Use type safe memory macros. + (new_var_info): Cast according to the coding conventions. + (new_constraint): Likewise. + (remove_preds_and_fake_succs): Use type safe memory macros. + * tree-ssa-threadupdate.c (thread_block): Cast according to the coding + conventions. + (thread_single_edge): Likewise. + (thread_through_loop_header): Likewise. + +2007-06-06 Eric Christopher + + * config/i386/i386.c (override_options): Move handling + of TARGET_SUBTARGET* earlier. + +2007-06-06 Paolo Bonzini + + * genmodes.c (tagged_printf, emit_insn_modes_h): Don't + use %n on printf. + +2007-06-06 Zdenek Dvorak + + * haifa-sched.c (restore_bb_notes): Clear bb field of the notes + emited outside of basic block. + * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between + the created blocks. + * rtl.h (delete_insn_chain): Declaration changed. + * cfgrtl.c (delete_insn_chain): Add option to clear bb field for + non-removed insns. + (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain. + (delete_insn_chain_and_edges, try_redirect_by_replacing_jump, + rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false + to delete_insn_chain. + (rtl_verify_flow_info_1): Verify that the insns in header and footer + do not have bb field set. + (rtl_verify_flow_info): Verify that insns between basic blocks do not + have bb field set. + * recog.c (peephole2_optimize): Add argument to delete_insn_chain call. + * cfgcleanup.c (try_optimize_cfg): Ditto. + +2007-06-06 Thomas Neumann + + * lambda-code.c (struct lambda_lattice_s): Add a name to the struct. + (lambda_body_vector_new): Use type safe memory macros. + (lambda_linear_expression_new): Likewise. + (lambda_loopnest_new): Likewise. + (lambda_lattice_new): Likewise. + (replace_uses_equiv_to_x_with_y): Cast according to the coding + conventions. Use type safe memory macros. + * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct. + (lambda_body_vector_s): Likewise. + * lambda-mat.c (lambda_matrix_new): Use type safe memory macros. + * lambda-trans.c (lambda_trans_matrix_new): Likewise. + +2007-06-06 Richard Guenther + + * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2 + if we need to schedule cfg_cleanup. + (tree_ssa_forward_propagate_single_use_vars): Do so. + +2007-06-06 Ian Lance Taylor + + * fold-const.c (merge_ranges): If range_successor or + range_predecessor fail, just return 0. + +2007-06-06 Uros Bizjak + + PR tree-optimization/32216 + * tree-vectorizer.c (supportable_widening_operation): Determine + signedness of FIX_TRUNC_EXPR from output operand. + (supportable_narrowing_operation): Ditto. + * tree-vect-generic.c (expand_vector_operations_1): Determine + signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR + from input operand. + +2007-06-06 Thomas Neumann + + * config/i386/i386.c (enum pta_flags): Move out of struct scope... + (struct pta): ...from here. Change flags to unsigned to avoid + excessive casting (as it is used as a bit mask). + (override_options): Add casts according to the coding convenventions. + (x86_64_elf_unique_section): Likewise. + (examine_argument): Avoid using C++ keywords as variable names. + (construct_container): Likewise. + (legitimize_pic_address): Likewise. + (get_dllimport_decl): Cast according to the coding conventions. Use + type safe memory macros. + (legitimize_address): Cast according to the coding conventions. + (emit_i387_cw_initialization): Corrected the type of slot to enum + ix86_stack_slot. + (ix86_init_machine_status): Use type safe memory macros. + (bdesc_pcmpestr): Use UNKNOWN instead of integer 0. + (bdesc_pcmpistr): Likewise. + (bdesc_crc32): Likewise. + (bdesc_sse_3arg): Likewise. + (bdesc_2arg): Likewise. + (bdesc_1arg): Likewise. + (ix86_expand_sse_pcmpestr): Cast according to the coding conventions. + (ix86_expand_sse_pcmpistr): Likewise. + (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0. + (ix86_builtin_vectorized_function): Change the type of fn to unsigned + int to match the langhook definition. + (ix86_builtin_conversion): Change the type of code to unsigned init to + match the langhook definition. + (ix86_preferred_reload_class): Avoid using C++ keywords as variable + names. + (ix86_preferred_output_reload_class): Likewise. + (ix86_cannot_change_mode_class): Likewise. + (ix86_memory_move_cost): Likewise. + (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to + avoid excessive casting later on. + (x86_output_mi_thunk): Avoid using C++ keywords as variable names. + +2007-06-06 Uros Bizjak + + * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm + as flags setting insn. + (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn. + +2007-06-06 Uros Bizjak + + * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove. + (UNSPEC_ROUND): New. + ("sse4_1_round2"): New insn pattern. + ("rint2"): Expand using "sse4_1_round2" pattern for + SSE4.1 targets. + ("floor2"): Rename from floordf2 and floorsf2. Macroize + expander using SSEMODEF mode macro. Expand using + "sse4_1_round2" pattern for SSE4.1 targets. + ("ceil2"): Rename from ceildf2 and ceilsf2. Macroize + expander using SSEMODEF mode macro. Expand using + "sse4_1_round2" pattern for SSE4.1 targets. + ("btrunc2"): Rename from btruncdf2 and btruncsf2. Macroize + expander using SSEMODEF mode macro. Expand using + "sse4_1_round2" pattern for SSE4.1 targets. + * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use + UNSPEC_ROUND instead of UNSPEC_ROUNDP. + ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of + UNSPEC_ROUNDS. + +2007-06-06 Jan Sjodin + Sebastian Pop + + * lambda.h (build_linear_expr): New. + * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression): + Use build_linear_expr, call fold and force_gimple_operand. + (lambda_loopnest_to_gcc_loopnest): Check that there is + something to insert. + * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New. + +2007-06-05 Joerg Wunsch + + PR preprocessor/23479 + * doc/extend.texi: Document the 0b-prefixed binary integer + constant extension. + +2007-06-05 Uros Bizjak + + PR tree-optimization/32215 + * tree-vectorizer.c (supportable_widening_operation): Return false + for unsupported FIX_TRUNC_EXPR tree code. + (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code. + +2007-06-06 Nathan Froyd + + * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch + register on SPE targets. Change documentation to reflect + reality. + * config/rs6000/rs6000.c (rs6000_conditional_register_usage): + Change FIXED_SCRATCH to 14 and document why we're keeping r14 + out of the register allocation pool. + (rs6000_reg_live_or_pic_offset_p): New function. + (rs6000_emit_prologue): Move the actual saving of LR up to free + r0 for holding r11. Split saving of SPE 64-bit registers into + its own case. Ensure that offsets will always be in-range for + 'evstdd' by using r11 as a scratch register to point at the start + of the SPE save area. Save r11 if necessary, as it is the static + chain register. + (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers + into its own case. Ensure that offsets will always be in-range + for 'evldd' by using r11 as a scratch register to point at the + start of the SPE save area. Also adjust r11 when restoring + the stack pointer to compensate for pre-loading r11. + +2007-06-05 Thomas Neumann + + * cfg.c (init_flow): Use type safe memory macros. + (alloc_block): Likewise. + (unchecked_make_edge): Likewise. + (dump_flow_info): Avoid using C++ keywords as variable names. + (copy_original_table_clear): Cast according to the coding conventions. + (copy_original_table_set): Likewise. + * cfgexpand (label_rtx_for_bb): Likewise. + (expand_gimple_basic_block): Likewise. + * cfghooks.c (dump_bb): Likewise. + (lv_adjust_loop_header_phi): Avoid using C++ keywords as + variable names. + (lv_add_condition_to_bb): Likewise. + * cfglayout (relink_block_chain): Cast according to the coding + conventions. + (fixup_reorder_chain): Likewise. + (fixup_fallthru_exit_predecessor): Likewise. + * cfgloop.c (glb_enum_p): Likewise. + (get_exit_description): Likewise. + (dump_recorded_exit): Likewise. + * cfgloop.h (enum loop_estimation): Move out of struct scope... + (struct loop): ... from here. + * cfgloopmanip.c (rpe_enum_p): Cast according to the coding + conventions. + * cfgrtl.c (rtl_create_basic_block): Likewise. + (rtl_split_block): Likewise. + (rtl_dump_bb): Likewise. + (cfg_layout_split_block): Likewise. + (init_rtl_bb_info): Use typesafe memory macros. + + * graphds.h (struct graph_edge): Renamed edge to graph_edge. + * graphds.h: Updated all usages of edge to graph_edge. + * graphds.c: Likewise. + * cfgloopanal.c: Likewise. + +2007-06-05 Ian Lance Taylor + + * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a + PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p. + (extract_range_from_assert): Set TREE_NO_WARNING when creating an + expression. + (test_for_singularity): Likewise. + +2007-06-05 H.J. Lu + + * config/i386/constraints.md ("Y2"): Replaced by ... + ("Yt"): This. + * config/i386/i386.md: Likewise. + * config/i386/mmx.md: Likewise. + * config/i386/sse.md: Likewise. + +2007-06-05 H.J. Lu + + * config/i386/constraints.md ("z"): Replaced by ... + ("Y0"): This. + * config/i386/sse.md (sse4_1_blendvpd): Likewise. + (sse4_1_blendvps): Likewise. + (sse4_1_pblendvb): Likewise. + (sse4_2_pcmpestr): Likewise. + (sse4_2_pcmpestrm): Likewise. + (sse4_2_pcmpestr_cconly): Likewise. + (sse4_2_pcmpistr): Likewise. + (sse4_2_pcmpistrm): Likewise. + (sse4_2_pcmpistr_cconly): Likewise. + +2007-06-05 Razya Ladelsky + + * matrix-reorg.c (transform_access_sites): Fix computation. + (transform_allocation_sites): Same. + +2007-06-05 Uros Bizjak + + * config/i386/i386.c (override_options): Use + TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags. + +2007-06-05 Uros Bizjak + + * config/i386/predicates.md (reg_not_xmm0_operand): New predicate. + (nonimm_not_xmm0_operand): Ditto. + * config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand" + as operand[0] and operand[1] predicate. Use "nonimm_not_xmm0_operand" + as operand[2] predicate. Require "z" class XMM register for + operand[3]. Adjust asm template. + ("sse4_1_blendvpd"): Ditto. + ("sse4_1_pblendvb"): Ditto. + * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not + force op2 into xmm0 register for variable blend instructions. + +2007-06-04 Tom Tromey + + * c-tree.h (start_enum): Update. + (build_enumerator): Likewise. + * c-decl.c (enum_next_value): Removed. + (enum_overflow): Likewise. + (start_enum): Add c_enum_contents argument. Don't use globals. + (build_enumerator): Likewise. + * c-tree.h (struct c_enum_contents): New struct. + +2007-06-04 Tom Tromey + + * c-common.c (c_common_get_alias_set): Fix indentation. + +2007-06-04 Ian Lance Taylor + + * tree-vrp.c (adjust_range_with_scev): When loop is not expected + to overflow, reduce overflow infinity to regular infinity. + (vrp_var_may_overflow): New static function. + (vrp_visit_phi_node): Check vrp_var_may_overflow. + +2007-06-04 Kazu Hirata + + * stor-layout.c (layout_type): Remove duplicate code. + +2007-06-04 Uros Bizjak + + PR c/32191 + * gcc/c-common.c (c_define_builtins): Call targetm.init_builtins () + before build_common_builtin_nodes (). + +2007-06-04 Steve Ellcey + + PR target/31733 + * cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier. + +2007-06-04 Jan Hubicka + + * tree-predcom.c (replace_ref_with, initialize_root_vars_lm, + reassociate_to_the_same_stmt): Call build_gimple_modify_stmt + instead of _stat version. + +2007-06-03 Zdenek Dvorak + + PR tree-optimization/32194 + * tree-predcom.c (determine_offset): Check that both references have + the same type. + +2007-06-03 Zdenek Dvorak + + * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge): + Change dom_bbs to vector. Add argument to iterate_fix_dominators call. + * loop-unroll.c (unroll_loop_runtime_iterations): Ditto. + * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector. + Add argument to iterate_fix_dominators call. + (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom. + * gcse.c (hoist_code): Change domby to vector. + * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector. + Add argument to iterate_fix_dominators call. + * loop-doloop.c (doloop_modify): Changed recount_dominator to + recompute_dominator. + * lambda-code.c (perfect_nestify): Ditto. + * cfgloopanal.c: Include graphds.h. + (struct edge, struct vertex, struct graph, dump_graph, new_graph, + add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c. + (mark_irreducible_loops): Use graphds_scc. Remove argument from + add_edge call. + * graphds.c: New file. + * graphds.h: New file. + * dominance.c: Include vecprim.h, pointer-set.h and graphds.h. + (get_dominated_by, get_dominated_by_region): Change return type to + vector. + (verify_dominators): Recompute all dominators and compare the results. + (recount_dominator): Renamed to ... + (recompute_dominator): ... this. Do not check that the block is + dominated by entry. + (iterate_fix_dominators): Reimplemented. + (prune_bbs_to_update_dominators, root_of_dom_tree, + determine_dominators_for_sons): New functions. + * et-forest.c (et_root): New function. + * et-forest.h (et_root): Declare. + * Makefile.in (graphds.o): Add. + (cfgloopanal.o): Add graphds.h dependency. + (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency. + * basic-block.h (get_dominated_by, get_dominated_by_region, + iterate_fix_dominators): Declaration changed. + (recount_dominator): Renamed to ... + (recompute_dominator): ... this. + * tree-ssa-threadupdate.c (thread_block): Free dominance info. + (thread_through_all_blocks): Do not free dominance info. + +2007-06-03 Andreas Schwab + + * config/m68k/m68k.c (override_options): Don't override + REAL_MODE_FORMAT. + * config/m68k/m68k-modes.def (SF, DF): Define to use + motorola_single_format and motorola_double_format, resp. + * real.c (motorola_single_format): Renamed from + coldfire_single_format. + (motorola_double_format): Renamed from coldfire_double_format. + (encode_ieee_extended): Generate a proper canonical NaN image + respecting canonical_nan_lsbs_set. + (ieee_extended_motorola_format): Set canonical_nan_lsbs_set to + true. + * real.h: Adjust declarations. + +2007-06-03 Kaz Kojima + + PR target/32163 + * config/sh/sh.md (symGOT_load): Don't schedule insns when + the symbol is generated with the stack protector. + +2007-06-03 Kazu Hirata + + * config/m68k/m68k.c (m68k_attribute_table): Add "interrupt". + (m68k_get_function_kind): Return m68k_fk_interrupt_handler on + "interrupt". + * doc/extend.texi (interrupt): Mention m68k. + +2007-06-02 Uros Bizjak + + * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call + safe_vector_operand() if input operand is VECTOR_MODE_P operand. + (ix86_expand_sse_pcmpestr): Do not check operands for + "register_operand", when insn operand predicate is "register_operand". + (ix86_expand_sse_pcmpistr): Ditto. + +2007-06-02 H.J. Lu + Uros Bizjak + + * config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New. + (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS. + (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string. + (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class. + * config/i386/constraints.md ("z"): New register constraint + for members of SSE_FIRST_REG class. + * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes. + * config/i386/i386.c (regclass_map): Change class of %xmm0 to + SSE_FIRST_REG class. + (put_condition_code) [EQ, NE]: Output suffixes for new compare modes. + (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes. + (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2. + (IX86_BUILTIN_PCMPESTRM128): Likewise. + (IX86_BUILTIN_PCMPESTRA128): Likewise. + (IX86_BUILTIN_PCMPESTRC128): Likewise. + (IX86_BUILTIN_PCMPESTRO128): Likewise. + (IX86_BUILTIN_PCMPESTRS128): Likewise. + (IX86_BUILTIN_PCMPESTRZ128): Likewise. + (IX86_BUILTIN_PCMPISTRI128): Likewise. + (IX86_BUILTIN_PCMPISTRM128): Likewise. + (IX86_BUILTIN_PCMPISTRA128): Likewise. + (IX86_BUILTIN_PCMPISTRC128): Likewise. + (IX86_BUILTIN_PCMPISTRO128): Likewise. + (IX86_BUILTIN_PCMPISTRS128): Likewise. + (IX86_BUILTIN_PCMPISTRZ128): Likewise. + (struct builtin_description): Change "flag" field to unsigned. + (bdesc_pcmpestr): New builtin description table. + (bdesc_pcmpistr): Likewise. + (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int, + v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int. + Initialize pcmp[ei]str[im] insns for SSE4.2. + (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin. + (ix86_expand_sse_pcmpistr): Likewise. + (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2. + * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2. + (UNSPEC_PCMPISTR): Likewise. + * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter. + (sse4_2_pcmpestri):New isns pattern. + (sse4_2_pcmpestrm): Likewise. + (sse4_2_pcmpestr_cconly): Likewise. + (sse4_2_pcmpistr): New insn patern and splitter. + (sse4_2_pcmpistri):New isns pattern. + (sse4_2_pcmpistrm): Likewise. + (sse4_2_pcmpistr_cconly): Likewise. + * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics + in SSE4.2. + 2007-06-01 David Daney * config/mips/mips.c (mips_output_mi_thunk): Only load gp if not LOADGP_ABSOLUTE and not binds_local_p. - + 2007-06-01 Geoffrey Keating * config/darwin.h (LINK_SPEC): Pass -fpie through to the linker. @@ -48,10 +1095,8 @@ 2007-05-31 H.J. Lu - * config.gcc (i[34567]86-*-*): Add nmmintrin.h to - extra_headers. + * config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers. (x86_64-*-*): Likewise. - * config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New. (OPTION_MASK_ISA_3DNOW_UNSET): Likewise. (OPTION_MASK_ISA_SSE_UNSET): Likewise. @@ -63,8 +1108,7 @@ (OPTION_MASK_ISA_SSE4): Likewise. (OPTION_MASK_ISA_SSE4_UNSET): Likewise. (OPTION_MASK_ISA_SSE4A_UNSET): Likewise. - (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET. Handle - SSE4.2. + (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET. Handle SSE4.2. (override_options): Support SSE4.2. (ix86_build_const_vector): Support SImode and DImode. (ix86_build_signbit_mask): Likewise. @@ -79,32 +1123,22 @@ (ix86_expand_crc32): Likewise. (ix86_init_mmx_sse_builtins): Support SSE4.2. (ix86_expand_builtin): Likewise. - * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define __SSE4_2__ for -msse4.2. - * config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2. (CRC32MODE): Likewise. (crc32modesuffix): Likewise. (crc32modeconstraint): Likewise. (sse4_2_crc32): Likewise. (sse4_2_crc32di): Likewise. - * config/i386/i386.opt (msse4.2): New for SSE4.2. (msse4): Likewise. - - * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header - file. - + * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file. * config/i386/smmintrin.h: Add SSE4.2 intrinsics. - - * config/i386/sse.md (sse4_2_gtv2di3): New pattern for - SSE4.2. + * config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2. (vcond): Use SSEMODEI instead of SSEMODE124. (vcondu): Likewise. - * doc/extend.texi: Document SSE4.2 built-in functions. - * doc/invoke.texi: Document -msse4.2/-msse4. 2007-05-31 Zdenek Dvorak @@ -6999,7 +8033,7 @@ * c-common.c (warn_logical_operator): Fix condition. -2007-03-10 Tobias Schlüter +2007-03-10 Tobias Schl�ter * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missing quotation mark.