X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=a76ec9d81ef89abb5b37c8a7e093794390fd9300;hb=d3d9aac1e1c6938ad58c08915bb28dbc6389a0d3;hp=c9f46852f68080f47c99a160de97b834605113fe;hpb=b5264126ac1332b9cbb672c2f99c7b039067bad9;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c9f46852f68..a76ec9d81ef 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,8 +1,278 @@ +2008-05-15 Uros Bizjak + H.J. Lu + + * 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 + + 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 + + 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 + + * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0. + +2008-05-14 H.J. Lu + + * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only. + +2008-05-14 Michael Meissner + Dwarakanath Rajagopal + + * 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_): 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 + Paolo Bonzini + + * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector + shift patterns. + + * config/rs6000/altivec.md (vashl3): Rename from ashl3. + (vlshr3): Rename from vlshr3. + (vashr3): Rename from vashr3. + (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. + (vashl3): Rename from ashl3. + (vashr3): Rename from ashr3. + (vlshr3): Rename from lshr3. + (vrotl3): Rename from rotl3. + +2008-05-14 Michael Meissner + + 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 + + * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to + LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to + emit_library_call_value. + * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto. + * tree.h (ECF_LIBCALL_BLOCK): Removed. + * calls.c (initialize_argument_information, precompute_arguments, + expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK. + (precompute_arguments): Removed flags parameter. + * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed. + +2008-05-14 Richard Guenther + + * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code. + Make sure to register the store if the use is a PHI_NODE. + +2008-05-14 Olivier Hainque + + * expr.c (expand_expr_real_1) : Force op0 to + memory if the component is to be referenced in BLKmode according + to get_inner_reference. + +2008-05-14 Adam Nemet + + * calls.c (emit_library_call_value_1): Restore code clearing + ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once. + +2008-05-14 Olivier Hainque + Nicolas Roche + + * configure.ac: Add support for a "gcc_subdir" variable in + config-lang.in, to denote a subdirectory where the language/GCC + integration files are to be found. + * configure: Regenerate. + +2008-05-14 Ira Rosen + + PR tree-optimization/36098 + * tree-vect-analyze.c (vect_analyze_group_access): Set the gap + value for the first load in the group in case of a gap. + (vect_build_slp_tree): Check that there are no gaps in loads. + +2008-05-14 Kenneth Zadeck + + * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes. + * optabs.c (expand_binop, expand_absneg_bit, expand_unop, + expand_copysign_bit, ): Change call to emit_no_conflict_block to + emit_insn and remove unneeded code to construct extra args. + (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. + * global.c: Removed incorrect comment added in revision 117. + * expr.c (convert_move): Change call to emit_no_conflict_block to + emit_insn. + * recog.c: Change comments so that they do not mention + REG_NO_CONFLICT. + * local_alloc.c (combine_regs): Removed last parameter. + (no_conflict_p): Removed. + (block_alloc): Removed note, no_conflict_combined_regno and set + local vars. Removed all code to process REG_NO_CONFLICT blocks. + (combine_regs): Removed already_dead and code to look for + REG_NO_CONFLICT notes. + * lower_subreg (remove_retval_note): Removed code to look for + REG_NO_CONFLICT block. + (resolve_reg_notes): Removed REG_NO_CONFLICT case. + (resolve_clobber): Remove code to process libcalls that have + 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. + * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto. + * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns): + Ditto. + * reg-notes.def (NO_CONFLICT): Removed. + 2008-05-14 David S. Miller * 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. @@ -40,8 +310,8 @@ 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