+2008-05-20 Joseph Myers <joseph@codesourcery.com>
+
+ * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
+ $SOURCEDIR/include.
+
+2008-05-20 Jan Sjodin <jan.sjodin@amd.com>
+ Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/36206
+ * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
+ FOLD_CONVERSIONS.
+ (instantiate_scev_1): Rename flags to fold_conversions.
+ Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
+ outeside instantiation_loop.
+ * tree-chrec.h (evolution_function_is_affine_in_loop): New.
+ (evolution_function_is_affine_or_constant_p): Removed.
+ * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
+ instantiate_scev.
+ (analyze_siv_subscript): Pass in the loop nest number.
+ Call evolution_function_is_affine_in_loop instead of
+ evolution_function_is_affine_p.
+ (analyze_overlapping_iterations): Pass in the loop nest number.
+
+2008-05-20 Jan Sjodin <jan.sjodin@amd.com>
+ Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/36206
+ * tree-chrec.h (chrec_fold_op): New.
+ * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR, and
+ other trees.
+
+2008-05-20 Nathan Sidwell <nathan@codesourcery.com>
+
+ * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
+ (DIRS_EQ): New.
+ (remove_duplicates): Do not set inode on non-inode systems. Use
+ DIRS_EQ.
+
+2008-05-20 Sandra Loosemore <sandra@codesourcery.com>
+
+ * config.gcc (tm_file): Update comments about relative pathnames.
+
+2008-05-20 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-reassoc.c (fini_reassoc): Use the statistics
+ infrastructure.
+ * tree-ssa-sccvn.c (process_scc): Likewise.
+ * tree-ssa-sink.c (execute_sink_code): Likewise.
+ * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
+ * tree-vrp.c (process_assert_insertions): Likewise.
+ * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
+ (perform_tree_ssa_dce): Likewise.
+ * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
+ (dump_dominator_optimization_stats): Likewise.
+ * tree-vectorizer.c (vectorize_loops): Likewise.
+
+2008-05-20 Richard Guenther <rguenther@suse.de>
+
+ * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
+
+2008-05-20 Kai Tietz <kai.tietz@onevision.com>
+
+ * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
+ (ix86_i386elf_return_in_memory): Likewise.
+ (ix86_i386interix_return_in_memory): Likewise.
+ * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
+ (SUBTARGET_RETURN_IN_MEMORY): New.
+ * config/i386/i386elf.h: Likewise.
+ * config/i386/ptx4-i.h: Likewise.
+ * config/i386/sol2-10.h: Likewise.
+ * config/i386/sysv4.h: Likewise.
+ * config/i386/vx-common.h: Likewise.
+ * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
+ * config/i386/i386.c (ix86_return_in_memory): Made static and
+ make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
+ (ix86_i386elf_return_in_memory): Removed.
+ (ix86_i386interix_return_in_memory): Removed.
+ (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
+ * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
+
+2008-05-20 Alexandre Oliva <aoliva@redhat.com>
+
+ * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
+
+2008-05-19 Xinliang David Li <davidxl@google.com>
+
+ * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
+ * opts.c: Ditto.
+ * common.opt: Ditto.
+ * doc/invoke.texi: Ditto.
+
+2008-05-19 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
+ (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
+
+2008-05-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_expand_vector_init_concat): Change
+ sizes of operand array from 8/4 to 4/2.
+ (ix86_expand_vector_init_general): Change size of operand array
+ from 32 to 16. Remove op0, op1 and half_mode.
+
+2008-05-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_expand_vector_init_concat): New.
+ (ix86_expand_vector_init_interleave): Likewise.
+ (ix86_expand_vector_init_general): Use them. Assert word_mode
+ == SImode when n_words == 4.
+
+2008-05-19 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_secondary_reload): New static function.
+ (TARGET_SECONDARY_RELOAD): New define.
+ * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
+ * config/i386/i386.md (reload_outqi): Remove.
+
+2008-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR middle-end/35509
+ * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
+ Add `implicit' parameter. Handle BUILT_IN_SIGNBIT.
+ (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
+ (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
+ (fold_builtin_1): Likewise.
+ * builtins.def (BUILT_IN_ISINF_SIGN): New.
+ c-common.c (check_builtin_function_arguments): Handle
+ BUILT_IN_ISINF_SIGN.
+ * doc/extend.texi: Document __builtin_isinf_sign.
+ * fold-const.c (operand_equal_p): Handle COND_EXPR.
+
+2008-05-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
+ EH cleanup at the end of the pass, search for those that have been
+ turned into forwarder blocks and do the cleanup on their successor.
+
+2008-05-18 Richard Guenther <rguenther@suse.de>
+
+ * tree-cfg.c (verify_gimple_expr): Allow conversions from
+ pointers to sizetype and vice versa.
+
+2008-05-18 Xinliang David Li <davidxl@google.com>
+
+ * gcc/tree-ssa-dce.c: Coding style fix.
+ (check_pow): Documentation comment.
+ (check_log): Documenation comment. Coding style fix.
+ (is_unnecessary_except_errno_call): Ditto.
+ (gen_conditions_for_pow): Ditto.
+ (gen_conditions_for_log): Ditto.
+ (gen_shrink_wrap_conditions): Ditto.
+ (shrink_wrap_one_built_in_calls): Ditto.
+ * gcc/doc/invoke.texi: Better documentation string.
+ * ChangeLog: Fix wrong change log entries from
+ May 17 checkin on function call DCE.
+
+2008-05-17 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
+
+2008-05-17 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
+ * df-problems.c (simulation routines): Fixed block comment to
+ properly say how to add forwards scanning functions.
+
+2008-05-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-inline.c (setup_one_parameter): Remove dead code.
+
+2008-05-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
+ a BIT_AND_EXPR only for an INTEGER_TYPE.
+
+2008-05-17 Xinliang David Li <davidxl@google.com>
+
+ * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
+ (check_pow, check_log, is_unnecessary_except_errno_call): New
+ functions to check for eliminating math functions that are pure
+ except for setting errno.
+ (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
+ general condition expressions for shrink-wrapping pow/log calls.
+ (gen_shrink_wrap_conditions): Ditto.
+ (shrink_wrap_one_built_in_call): Ditto.
+ (shrink_wrap_conditional_dead_built_in_calls): Ditto.
+ (mark_operand_necessary): If debugging, output if OP is necessary.
+ (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
+ unnecessary.
+ * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
+ opt level >= 2.
+ * gcc/common.opt: New user flag -ftree-builtin-dce.
+ * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
+
+2008-05-16 David S. Miller <davem@davemloft.net>
+
+ * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
+ * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
+
+2008-05-16 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36246
+ * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
+
+2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * ifcvt.c (dead_or_predicable): Rename
+ df_simulate_one_insn_backwards to df_simulate_one_insn.
+ * recog.c (peephole2_optimize): Ditto.
+ * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
+ Ditto.
+ * df.h: Rename df_simulate_one_insn_backwards to
+ df_simulate_one_insn. and delete df_simulate_one_insn_forwards.
+ * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
+ scanning of defs and uses.
+ (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
+ (df_simulate_one_insn_forwards): Removed.
+
+2008-05-16 Doug Kwan <dougkwan@google.com>
+
+ * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
+ QNaN & SNaN.
+ (real_from_string): Handle NaNs and Inf as approriate.
+
+2008-05-16 Nathan Froyd <froydnj@codesourcery.com>
+
+ * doc/gty.texi (Source Files Containing Type Information): Note
+ that headers should appear first in the gtfiles list.
+
+2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * tree.def (COND_EXEC): Properly documented this code.
+
+2008-05-16 Diego Novillo <dnovillo@google.com>
+
+ * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
+ * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
+ the new field.
+
+2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * tree-ssa-dse (max_stmt_uid): Removed.
+ (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
+ tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
+ * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
+ * function.h (cfun.last_stmt_uid): New field.
+ * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
+ gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
+ New functions.
+ * tree-dfa.c (renumber_gimple_stmt_uids): New function.
+ (create_stmt_ann): Initialize the ann->uid field.
+ * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
+ with new calls.
+ * tree-flow.h (renumber_gimple_stmt_uids): New function.
+
+2008-05-16 Nathan Froyd <froydnj@codesourcery.com>
+
+ * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
+ * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
+ (init_empty_tree_cfg): Call it.
+
+2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * cfg.c (init_flow): Add argument THE_FUN. Use it instead of cfun.
+ Update all users.
+
+2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * doc/invoke.text (-fdump-tree-*-verbose): New option.
+ * tree-dump.c (dump_options): New verbose option.
+ * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
+ Add verbose dump.
+ * tree-pass.h (TDF_VERBOSE): New dump flag.
+ * print-tree.c (print_node): Added code to be able to print PHI_NODES.
+ (tree-flow.h): Added include.
+ * Makefile.in (print-tree.o): Added TREE_FLOW_H.
+
+2008-05-16 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
+
+ From Jie Zhang <jie.zhang@analog.com>
+ * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
+ MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
+ mcpu=bf561-none and mcpu=bf561-0.2.
+ * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
+ MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
+ * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
+ MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
+ * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
+ * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
+ (LIB_SPEC): Use proper linker script for bf561. Error if no mcpu
+ option.
+ * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
+ (cputype_selected): Remove.
+ (bfin_handle_option): Don't use cputype_selected.
+ (override_options): When no mcpu option, enable all workarounds.
+ Don't use bfin_workarounds.
+ * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
+ processor type.
+ (DEFAULT_CPU_TYPE): Don't define.
+
+2008-05-16 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
+ on deletion of the last stmt.
+
+2008-05-15 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
+ V8HImode for SSE2 and V16QImode for SSE4.1.
+
+2008-05-15 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * cgraph.h (compute_inline_parameters): Made public.
+ * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
+ variable_generate_summary, function_write_summary,
+ variable_write_summary, variable_read_summary. Added generate_summary,
+ write_summary, read_summary.
+ * cgraphunit.c (cgraph_process_new_functions): Changed call from
+ pass_ipa_inline.function_generate_summary, to
+ compute_inline_parameters.
+ * ipa-inline.c (compute_inline_parameters): Made public and added
+ node parameter.
+ (compute_inline_parameters_for_current): New function.
+ (pass_inline_param): Now calls compute_inline_parameters_for_current.
+ (inline_generate_summary): Removed parameter and made to loop over
+ all cgraph nodes.
+ (pass_ipa_inline): Updated for new IPA_PASS structure.
+ * passes.c (execute_ipa_summary_passes): Now is called once per
+ pass rather than once per node*pass.
+
+2008-05-15 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
+ avr_have_mul_p, avr_asm_only_p): Remove variables.
+ (avr_override_options): Remove initialization of removed variables.
+ (avr_file_start): Convert removed variables to fields of
+ 'struct base_arch_s *avr_current_arch'.
+ * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
+ (AVR_HAVE_MUL): (Ditto.).
+ (AVR_HAVE_MOVW): (Ditto.).
+ (AVR_HAVE_LPMX): (Ditto.).
+ (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
+ avr_asm_only_p): Remove declaration.
+
+2008-05-15 Diego Novillo <dnovillo@google.com>
+
+ * config/arm/arm.c (arm_return_in_memory): Fix return type.
+ * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
+
+2008-05-15 Adam Nemet <anemet@caviumnetworks.com>
+
+ PR middle-end/36194
+ * combine.c (check_conversion): Rename back to check_promoted_subreg.
+ Don't call record_truncated_value from here.
+ (record_truncated_value): Turn it into a for_each_rtx callback.
+ (record_truncated_values): New function.
+ (combine_instructions): Call note_uses with record_truncated_values.
+ Change name of check_conversion to check_promoted_subreg.
+
+2008-05-15 Janis Johnson <janis187@us.ibm.com>
+
+ * doc/sourcebuild.texi: Document support for torture tests.
+
+2008-05-15 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
+ to alternative 4 of operand 2.
+
+2008-05-15 Richard Guenther <rguenther@suse.de>
+
+ * tree-pass.h (current_pass): Declare.
+ (get_pass_for_id): Likewise.
+ * passes.c (passes_by_id, passes_by_id_size): New globals.
+ (set_pass_for_id): New function.
+ (get_pass_for_id): Likewise.
+ (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
+ (execute_function_todo): Flush per function statistics.
+ * toplev.c (compile_file): Init statistics.
+ (general_init): Do early statistics initialization.
+ (finalize): Finish statistics.
+ * statistics.h (statistics_early_init): Declare.
+ (statistics_init): Likewise.
+ (statistics_fini): Likewise.
+ (statistics_fini_pass): Likewise.
+ (statistics_counter_event): Likewise.
+ (statistics_histogram_event): Likewise.
+ * statistics.c: New file.
+ * Makefile.in (OBJS-common): Add statistics.o.
+ (statistics.o): Add dependencies.
+ * doc/invoke.texi (-fdump-statistics): Document.
+
+ * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
+ (insert): Likewise.
+ (execute_pre): Use statistics_counter_event.
+ * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
+ (substitute_and_fold): Increment it. Use statistics_counter_event.
+
+2008-05-15 Diego Novillo <dnovillo@google.com>
+
+ http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
+
+ * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
+ * tree-ssa-alias.c (new_type_alias): Remove references to
+ sub-variables from comment.
+ * tree-ssa-operands.c (swap_tree_operands): Likewise.
+
+2008-05-15 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
+ attribute to 1 only for insertps alternative.
+
+2008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.md (loadbytes): New pattern.
+ * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
+ (bfin_init_builtins): Initialize it.
+ (bdesc_1arg): Add it.
+
+2008-05-15 Sa Liu <saliu@de.ibm.com>
+
+ * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
+ * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
+ * testsuite/lib/target-supports.exp: Add
+ check_effective_target_fortran_integer_16.
+
+2008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
+ * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
+ * config/bfin/bfin.c (bfin_return_in_memory): Now static. Return bool.
+ (TARGET_RETURN_IN_MEMORY): Define.
+
+2008-05-15 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/36244
+ * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
+ * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
+ represent unmodifiable vars.
+
+2008-05-15 Richard Guenther <rguenther@suse.de>
+
+ * tree-dfa.c (refs_may_alias_p): Allow all kinds of
+ INDIRECT_REF and TARGET_MEM_REF.
+ * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
+ TARGET_MEM_REF.
+
+2008-05-15 Uros Bizjak <ubizjak@gmail.com>
+ H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
+ (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
+ for operand 2. Remove pinsr{q,d} with 0x0 immediate operand from
+ insn alternatives. Add missing alternatives.
+ (*vec_concatv2di_rex64_sse4_1): Likewise.
+ (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
+ (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
+ Require TARGET_SSE.
+
+2008-05-15 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36009
+ PR tree-optimization/36204
+ * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
+ (determine_invariantness_stmt): Record the loop a store is
+ always executed in.
+ * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
+ dependency.
+
+2008-05-15 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34330
+ * tree-ssa-alias.c (get_smt_for): Only assert that accesses
+ through the pointer will alias the SMT.
+
+2008-05-14 Andreas Tobler <a.tobler@schweiz.org>
+
+ * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
+
+2008-05-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
+
+2008-05-14 Michael Meissner <michael.meissner@amd.com>
+ Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
+
+ * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
+ OTI_vrotl, OTI_vrotr to support vector/vector shifts.
+ (vashl_optab): New optab for vector/vector shifts.
+ (vashr_optab): Ditto.
+ (vlshr_optab): Ditto.
+ (vrotl_optab): Ditto.
+ (vrotr_optab): Ditto.
+ (optab_subtype): New enum for optab_for_tree_code call.
+ (optab_for_tree_code): Add enum optab_subtype argument.
+
+ * optabs.c (optab_for_tree_code): Take an additional argument to
+ distinguish between a vector shift by a scalar and vector shift by
+ a vector. Make lshr/ashr/ashl/rotl/rotr optabs just vector
+ shifted by a scalar. Use vlshr/vashr/vashl/vrotl/vrotr for the
+ vector shift by a vector.
+ (expand_widen_pattern_expr): Pass additional argument to
+ optab_for_tree_code.
+
+ * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
+ vrotl_optab, vrotr_optab.
+
+ * expr.c (expand_expr_real_1): Update calls to
+ optab_for_tree_code to distinguish between vector shifted by a
+ scalar and vector shifted by a vector.
+ * tree-vectorizer.c (supportable_widening_operation): Ditto.
+ (supportable_narrowing_operation): Ditto.
+ * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
+ * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
+ * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
+ (vect_create_epilog_for_reduction): Ditto.
+ (vectorizable_reduction): Ditto.
+ (vectorizable_operation): Ditto.
+ (vect_strided_store_supported): Ditto.
+ (vect_strided_load_supported): Ditto.
+ * tree-vect-generic.c (expand_vector_operations_1): Ditto.
+ * expmed.c (expand_shift): Ditto.
+
+ * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
+ scalar type.
+ (ashr@var{m}3): Ditto.
+ (vashl@var{m}3): Document new vector/vector shift standard name.
+ (vashr@var{m}3): Ditto.
+ (vlshr@var{m}3): Ditto.
+ (vrotl@var{m}3): Ditto.
+ (vrotr@var{m}3): Ditto.
+
+ * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
+ (PPERM_INVERT): Ditto.
+ (PPERM_REVERSE): Ditto.
+ (PPERM_REV_INV): Ditto.
+ (PPERM_ZERO): Ditto.
+ (PPERM_ONES): Ditto.
+ (PPERM_SIGN): Ditto.
+ (PPERM_INV_SIGN): Ditto.
+ (PPERM_SRC1): Ditto.
+ (PPERM_SRC2): Ditto.
+
+ * config/i386/sse.md (mulv2di3): Add SSE5 support.
+ (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
+ allows a memory operand to be the value being added, and split it
+ to improve vectorization.
+ (sse5_pmacsdqh_mem): Ditto.
+ (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
+ (sse5_mulv2div2di3_high): Ditto.
+ (vec_pack_trunc_v8hi): Add SSE5 pperm support.
+ (vec_pack_trunc_v4si): Ditto.
+ (vec_pack_trunc_v2di): Ditto.
+ (sse5_pcmov_<mode>): Remove code that tried to use use
+ andps/andnps instead of pcmov.
+ (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
+ pmacsdqh instructions.
+ (vec_widen_smult_lo_v4si): Ditto.
+
+ * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
+ (PPERM_INVERT): Ditto.
+ (PPERM_REVERSE): Ditto.
+ (PPERM_REV_INV): Ditto.
+ (PPERM_ZERO): Ditto.
+ (PPERM_ONES): Ditto.
+ (PPERM_SIGN): Ditto.
+ (PPERM_INV_SIGN): Ditto.
+ (PPERM_SRC1): Ditto.
+ (PPERM_SRC2): Ditto.
+ (ix86_expand_sse_movcc): Move the SSE5 test after the if
+ true/false tests.
+ (ix86_expand_int_vcond): If SSE5 generate all possible integer
+ comparisons.
+ (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
+ says ignore whether the last reference is a memory operand.
+
+2008-05-14 Michael Meissner <michael.meissner@amd.com>
+ Paolo Bonzini <bonzini at gnu dot org>
+
+ * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
+ shift patterns.
+
+ * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
+ (vlshr<mode>3): Rename from vlshr<mode>3.
+ (vashr<mode>3): Rename from vashr<mode>3.
+ (mulv4sf3): Change the names of vector shift patterns.
+ (mulv4si3): Ditto.
+ (negv4sf2): Ditt.
+
+ * config/spu/spu.c (spu_initialize_trampoline): Rename vector
+ shift insns.
+
+ * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
+ (SI_SHLHI): Ditto.
+ (SI_SHL): Ditto.
+ (SI_SHLI): Ditto.
+ (SI_ROTH): Ditto.
+ (SI_ROTHI): Ditto.
+ (SI_ROT): Ditto.
+ (SI_ROTI): Ditto.
+ (SPU_RL_0): Ditto.
+ (SPU_RL_1): Ditto.
+ (SPU_RL_2): Ditto.
+ (SPU_RL_3): Ditto.
+ (SPU_RL_4): Ditto.
+ (SPU_RL_5): Ditto.
+ (SPU_RL_6): Ditto.
+ (SPU_RL_7): Ditto.
+ (SPU_SL_0): Ditto.
+ (SPU_SL_1): Ditto.
+ (SPU_SL_2): Ditto.
+ (SPU_SL_3): Ditto.
+ (SPU_SL_4): Ditto.
+ (SPU_SL_5): Ditto.
+ (SPU_SL_6): Ditto.
+ (SPU_SL_7): Ditto.
+
+ * config/spu/spu.md (v): New iterator macro to add v for vector types.
+ (floatunssidf2_internal): Change vector/vector shift names.
+ (floatunsdidf2_internal): Ditto.
+ (mulv8hi3): Ditto.
+ (ashrdi3): Ditto.
+ (ashrti3): Ditto.
+ (cgt_df): Ditto.
+ (cgt_v2df): Ditto.
+ (dftsv): Ditto.
+ (vashl<mode>3): Rename from ashl<mode>3.
+ (vashr<mode>3): Rename from ashr<mode>3.
+ (vlshr<mode>3): Rename from lshr<mode>3.
+ (vrotl<mode>3): Rename from rotl<mode>3.
+
+2008-05-14 Michael Meissner <michael.meissner@amd.com>
+
+ PR target/36224
+ * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
+ multiply gives the wrong value when doing widening multiplies.
+ (vec_widen_smult_lo_v4si): Ditto.
+
2008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
* optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
2008-05-14 Adam Nemet <anemet@caviumnetworks.com>
* calls.c (emit_library_call_value_1): Restore code clearing
- ECF_LIBCALL_BLOCK to ensure that we only call end_sequence
- once.
+ ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
2008-05-14 Olivier Hainque <hainque@adacore.com>
Nicolas Roche <roche@adacore.com>
(emit_no_conflict_block): Removed.
* optabls.h: (emit_no_conflict_block): Removed.
* cse.c (cse_extended_basic_block): Remove search for
- REG_NO_CONFLICT note.
+ REG_NO_CONFLICT note.
* global.c: Removed incorrect comment added in revision 117.
* expr.c (convert_move): Change call to emit_no_conflict_block to
emit_insn.
REG_NO_CONFLICT notes.
* loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
case.
- * combine.c (can_combine_p, distribute_notes): Removed REG_NO_CONFLICT
- case.
- * config/cris/cris.md (movdi pattern): Changed
- emit_no_conflict_block to emit_insns.
+ * combine.c (can_combine_p, distribute_notes): Removed
+ REG_NO_CONFLICT case.
+ * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
+ to emit_insns.
* config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
* config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
- Ditto.
+ Ditto.
* reg-notes.def (NO_CONFLICT): Removed.
-
+
2008-05-14 David S. Miller <davem@davemloft.net>
* config/sparc/sparc.c (sparc_profile_hook): If
- NO_PROFILE_COUNTERS, don't generate and pass a label
- into mcount.
+ NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
* config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
* config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
tree-ssanames.c. Convert to static inline. Call make_ssa_name_fn.
* omp-low.c (expand_omp_parallel):
* tree-flow-inline.h (redirect_edge_var_map_result):
- * tree-ssa.c (init_tree_ssa): Add argument FN. Use it instead of cfun.
- Update all users.
+ * tree-ssa.c (init_tree_ssa): Add argument FN.
+ Use it instead of cfun. Update all users.
2008-05-13 Tom Tromey <tromey@redhat.com>