X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=a54f1d1389558e9df14e840dee6f6d2b181cc07b;hp=55a5a84f386eb58ca3493b4e1fce158741f67ef9;hb=d6b19f6bc6c71621f8c894b07706e14e1301cb39;hpb=d5cbae34265fa6f0669101737a9e9fd26e1da405 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 55a5a84f386..a54f1d13895 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,485 @@ +2011-09-02 Richard Guenther + + PR tree-optimization/27460 + PR middle-end/29269 + * doc/md.texi (vcond): Document. + * genopinit.c (optabs): Turn vcond{,u}_optab into a conversion + optab with two modes. + * optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu. + (enum direct_optab_index): Remove DOI_vcond, DOI_vcondu. + (vcond_optab): Adjust. + (vcondu_optab): Likewise. + (expand_vec_cond_expr_p): Adjust prototype. + * optabs.c (get_vcond_icode): Adjust. + (expand_vec_cond_expr_p): Likewise. + (expand_vec_cond_expr): Likewise. + * tree-vect-stmts.c (vect_is_simple_cond): Return the comparison + vector type. + (vectorizable_condition): Allow differing types for comparison + and result. + * config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode + for the comparison. + * config/i386/sse.md (vcond): Split to + vcond, vcond, + vcond and + vcondu. + (vcondv2di): Change to vcondv2di. + (vconduv2di): Likewise. + * config/arm/neon.md (vcond): Change to vcond*. + (vcondu): Likewise. + * config/ia64/vect.md (vcond): Likewise. + (vcondu): Likewise. + (vcondv2sf): Likewise. + * config/mips/mips-ps-3d.md (vcondv2sf): Likewise. + * config/rs6000/paired.md (vcondv2sf): Likewise. + * config/rs6000/vector.md (vcond): Likewise. + (vcondu): Likewise. + * config/spu/spu.md (vcond): Likewise. + (vcondu): Likewise. + +2011-09-02 Richard Guenther + + * pretty-print.h (pp_unsigned_wide_integer): New. + * tree-pretty-print.c (dump_generic_node): Print unsigned + host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer. + +2011-09-02 Richard Sandiford + + PR target/49987 + * config/rs6000/rs6000.c (paired_expand_vector_init): Check for + valid CONST_VECTOR operands. + (rs6000_expand_vector_init): Likewise. + +2011-09-02 Martin Jambor + + * cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta. + * gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use + BINFO_VTABLE. Parameter delta removed, all callers updated. + * tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead + BINFO_VTABLE. + * cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated + all calls. + * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed + handling of thunk_delta. + * ipa-cp.c (get_indirect_edge_target): Removed parameter delta. + (devirtualization_time_bonus): Do not handle thunk deltas. + (ipcp_discover_new_direct_edges): Likewise. + * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. + (try_make_edge_direct_simple_call): Likewise. + (try_make_edge_direct_virtual_call): Likewise. + * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. Mark + parameter set as unused. + (output_edge_opt_summary): Likewise. Mark both parameters as unused. + * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. Mark + parameter set as unused. + (output_edge_opt_summary): Likewise. Mark both parameters as unused. + (input_edge_opt_summary): Likewise. + * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream + BINFO_VIRTUALS at all. + * lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise. + +2011-09-02 Richard Guenther + + * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not + fold alloca (0). + (ccp_fold_stmt): Continue replacing args when folding + alloca fails. + +2011-08-31 Richard Guenther + + * expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR + handling here, from ... + (expand_expr_real_1): ... here. + * gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR + and VEC_COND_EXPR. + * gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR + a GIMPLE_TERNARY_RHS. + * tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR + and VEC_COND_EXPR here ... + (verify_gimple_assign_single): ... not here. + * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding. + * tree-object-size.c (cond_expr_object_size): Adjust. + (collect_object_sizes_for): Likewise. + * tree-scalar-evolution.c (interpret_expr): Don't handle + ternary RHSs. + * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and + simplify. + (ssa_forward_propagate_and_combine): Adjust. + * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR + as ternary. + * tree-ssa-threadedge.c (fold_assignment_stmt): Adjust. + * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise. + * tree-vect-stmt.c (vectorizable_condition): Likewise. + * tree-vrp.c (extract_range_from_cond_expr): Likewise. + (extract_range_from_assignment): Likewise. + +2011-08-31 Richard Sandiford + + * config/i386/i386.md: Use (match_test ...) for attribute tests. + * config/i386/mmx.md: Likewise. + * config/i386/sse.md: Likewise. + * config/i386/predicates.md (call_insn_operand): Use + (not (match_test "...")) instead of (match_test "!...") + * config/i386/constraints.md (w): Likewise. + +2011-08-31 Richard Sandiford + + * doc/md.texi: Describe the use of match_tests in attribute tests. + * rtl.def (MATCH_TEST): Update commentary. + * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag) + (write_test_expr, walk_attr_value): Handle MATCH_TEST. + +2011-08-31 Richard Sandiford + + * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs. + (attr_string): Use copy_md_ptr_loc. + +2011-08-31 Martin Jambor + + PR middle-end/49886 + * ipa-inline-analysis.c (compute_inline_parameters): Set + can_change_signature of noes with typde attributes. + * ipa-split.c (split_function): Do not skip any arguments if + can_change_signature is set. + +2011-08-31 Martin Jambor + + * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias + check removed. + +2011-08-31 Richard Guenther + + * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE + special-casing. + +2011-08-31 Marc Glisse + + * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals. + +2011-08-31 Tom de Vries + + PR middle-end/43513 + * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule. + * tree-ssa-ccp.c (params.h): Include. + (fold_builtin_alloca_for_var): New function. + (ccp_fold_stmt): Use fold_builtin_alloca_for_var. + +2011-08-30 Uros Bizjak + + * config/i386/i386.c (ix86_valid_target_attribute_inner_p): + Handle FMA option. + +2011-08-30 Andrew Stubbs + + * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2, + b3 and b4 unsigned. + +2011-08-30 Andrew Stubbs + + * config/arm/arm.c (arm_gen_constant): Set can_negate correctly + when code is SET. + +2011-08-30 Richard Guenther + + PR middle-end/48571 + * gimple.h (maybe_fold_offset_to_address): Remove. + (maybe_fold_offset_to_reference): Likewise. + (maybe_fold_stmt_addition): Likewise. + (may_propagate_address_into_dereference): Likewise. + * tree-inline.c (remap_gimple_op_r): Do not reconstruct + array references. + * gimple-fold.c (canonicalize_constructor_val): Likewise. + Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF + addresses instead. + (may_propagate_address_into_dereference): Remove. + (maybe_fold_offset_to_array_ref): Likewise. + (maybe_fold_offset_to_reference): Likewise. + (maybe_fold_offset_to_address): Likewise. + (maybe_fold_stmt_addition): Likewise. + (fold_gimple_assign): Do not reconstruct array references but + instead canonicalize invariant POINTER_PLUS_EXPRs to invariant + MEM_REF addresses. + (gimple_fold_stmt_to_constant_1): Likewise. + * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise. + * gimplify.c (gimplify_conversion): Likewise. + (gimplify_expr): Likewise. + +2011-08-30 Ilya Tocar + + * config/i386/fmaintrin.h: New. + * config.gcc: Add fmaintrin.h. + * config/i386/i386.c + (enum ix86_builtins) : New. + : Likewise. + * config/i386/sse.md (fmai_vmfmadd_): New. + (*fmai_fmadd_): Likewise. + (*fmai_fmsub_): Likewise. + (*fmai_fnmadd_): Likewise. + (*fmai_fnmsub_): Likewise. + * config/i386/immintrin.h: Add fmaintrin.h. + +2011-08-30 Bernd Schmidt + + * genautomata.c (NO_COMB_OPTION): New macro. + (no_comb_flag): New static variable. + (gen_automata_option): Handle NO_COMB_OPTION. + (comb_vect_p): False if no_comb_flag. + (add_vect): Move computation of min/max values. Return early if + no_comb_flag. + * doc/md.texi (automata_option): Document no-comb-vect. + + * config/i386/i386.c (get_pc_thunk_name): Change prefix to + "__x86.get_pc_thunk". + + * bb-reorder.c (insert_section_boundary_note): Only do it if + we reordered the blocks; i.e. not if !optimize_function_for_speed_p. + +2011-08-30 Christian Bruel + + * coverage.c (coverage_init): Check flag_branch_probabilities instead of + flag_profile_use. + +2011-08-29 Michael Meissner + + * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default + to off. Document switch. + * doc/invoke.texi (-msave-toc-indirect): Ditto. + +2011-08-29 Jakub Jelinek + + * gthr-posix.h (__gthread_active_p): Do not use preprocessor + conditionals and comments inside macro arguments. + +20011-08-29 Artjoms Sinkarovs + Richard Guenther + + * tree.h (constant_boolean_node): Adjust prototype. + * fold-const.c (fold_convert_loc): Move aggregate conversion + leeway down. + (constant_boolean_node): Make value parameter boolean, add + vector type handling. + (fold_unary_loc): Use constant_boolean_node. + (fold_binary_loc): Preserve types properly when folding + COMPLEX_EXPR <__real x, __imag x>. + * gimplify.c (gimplify_expr): Handle vector comparison. + * tree.def (EQ_EXPR, ...): Document behavior on vector typed + comparison. + * tree-cfg.c (verify_gimple_comparison): Verify vector typed + comparisons. + +2011-08-29 Jakub Jelinek + + PR middle-end/48722 + * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs, + reset_used_flags also in CALL_INSN_FUNCTION_USAGE. + (verify_rtl_sharing): Likewise and verify_rtx_sharing + in there too. + (unshare_all_rtl_in_chain): For CALL_INSNs + copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE. + +2011-08-29 Richard Guenther + + * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location + on the built ADDR_EXPR. + +2011-08-29 Jakub Jelinek + + PR debug/50215 + * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn + before adding ENTRY_VALUE to val->locs. + +2011-08-28 Mikael Pettersson + + PR bootstrap/50218 + * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize + comp. + +2011-08-27 Bernd Schmidt + + * doc/rtl.texi (simple_return): Document. + (parallel, PATTERN): Here too. + * doc/md.texi (return): Mention it's allowed to expand to simple_return + in some cases. + (simple_return): Document standard pattern. + * gengenrtl.c (special_rtx): SIMPLE_RETURN is special. + * final.c (final_scan_insn): Use ANY_RETURN_P on body. + * reorg.c (function_return_label, function_simple_return_label): + New static variables, replacing... + (end_of_function_label): ... this. + (simplejump_or_return_p): New static function. + (optimize_skip, steal_delay_list_from_fallthrough, + fill_slots_from_thread): Use it. + (relax_delay_slots): Likewise. Use ANY_RETURN_P on body. + (rare_destination, follow_jumps): Use ANY_RETURN_P on body. + (find_end_label): Take a new arg which is one of the two return + rtxs. Depending on which, set either function_return_label or + function_simple_return_label. All callers changed. + (make_return_insns): Make both kinds. + (dbr_schedule): Adjust for two kinds of end labels. + * function.c (emit_return_into_block): Set JUMP_LABEL properly. + * genemit.c (gen_exp): Handle SIMPLE_RETURN. + (gen_expand, gen_split): Use ANY_RETURN_P. + * df-scan.c (df_uses_record): Handle SIMPLE_RETURN. + * rtl.def (SIMPLE_RETURN): New code. + * ifcvt.c (find_if_case_1): Be more careful about + redirecting jumps to the EXIT_BLOCK. + * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p, + returnjump_p_1): Handle SIMPLE_RETURNs. + * print-rtl.c (print_rtx): Likewise. + * rtl.c (copy_rtx): Likewise. + * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P. + * combine.c (simplify_set): Likewise. + * resource.c (find_dead_or_set_registers, mark_set_resources): + Likewise. + * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1, + copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs. + (init_emit_regs): Initialize simple_return_rtx. + * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to + force_nonfallthru_and_redirect. + * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN. + (GR_SIMPLE_RETURN): New enum value. + (simple_return_rtx): New macro. + * basic-block.h (force_nonfallthru_and_redirect): Adjust + declaration. + * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label + argument. All callers changed. Be careful about what kinds of + returnjumps to generate. + * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb, + ix86_pad_short_function): Likewise. + * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds + of return. + * config/mips/mips.md (any_return): New code_iterator. + (optab): Add cases for return and simple_return. + (return): Expand to a simple_return. + (simple_return): New pattern. + (*, *_internal for any_return): New patterns. + (return_internal): Remove. + * config/mips/mips.c (mips_expand_epilogue): Make the last insn + a simple_return_internal. + +2011-08-27 Uros Bizjak + + * config/i386/sse.md (*absneg2): Fix split condition. + (vec_extract_lo_): Prevent both operands in memory. + (vec_extract_lo_v16hi): Ditto. + (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint. + +2011-08-27 Uros Bizjak + + * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note. + (*sse2_mulv4si3): Ditto. + (mulv2di3): Ditto. + * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV + notes to REG_EQUAL. + +2011-08-27 Uros Bizjak + + PR target/50202 + * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note + when all outputs are unused. + (sse4_2_pcmpistr): Ditto. + +2011-08-26 Uros Bizjak + + * config/i386/i386.md (round2): New expander. + * config/i386/i386.c (enum ix86_builtins): Add + IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}. + (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256} + descriptions. + (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins. + (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor. + +2011-08-26 Uros Bizjak + + PR middle-end/50083 + * convert.c (convert_to_integer) : Convert + only when TARGET_C99_FUNCTIONS. + : Ditto. + : Ditto. + +2011-08-26 Michael Matz + Jakub Jelinek + + PR lto/50165 + * lto-streamer-in.c (canon_file_name): Initialize new_slot->len; + don't call strlen twice, use memcpy. + +2011-08-26 H.J. Lu + + * config/i386/bmi2intrin.h: Allow in . + * config/i386/bmiintrin.h: Likewise. + * config/i386/lzcntintrin.h: Likewise. + + * config/i386/immintrin.h: Include , + and . + +2011-08-26 Rainer Orth + + PR target/50166 + * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main. + * configure: Regenerate. + +2011-08-26 Jakub Jelinek + + PR c/50179 + * c-typeck.c (c_process_expr_stmt): Skip over nops and + call mark_exp_read even if exprv is ADDR_EXPR. + +2011-08-26 Richard Sandiford + + * df-problems.c (df_note_bb_compute): Pass uses rather than defs + to df_set_dead_notes_for_mw. + +2011-08-26 Richard Guenther + + * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF]. + +2011-08-26 Zdenek Dvorak + Tom de Vries + + * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field. + (struct ivopts_data): Add loop_single_exit_p field. + (niter_for_exit): Change parameter desc_p into return value. Return + desc if desc->may_be_zero. Free desc if unused. + (niter_for_single_dom_exit): Change return type. + (find_induction_variables): Handle changed return type of + niter_for_single_dom_exit. Dump may_be_zero. + (add_candidate_1): Keep original base and step type for IP_ORIGINAL. + (set_use_iv_cost): Add and handle comp parameter. + (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add + comp argument to set_use_iv_cost. + (strip_wrap_conserving_type_conversions, expr_equal_p) + (difference_cannot_overflow_p, iv_elimination_compare_lt): New function. + (may_eliminate_iv): Add comp parameter. Handle new return type of + niter_for_exit. Use loop_single_exit_p. Use iv_elimination_compare_lt. + (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost + and may_eliminate_iv. + (rewrite_use_compare): Move call to iv_elimination_compare to ... + (may_eliminate_iv): Here. + (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p. + +2011-08-26 Tom de Vries + + * tree-pretty-print (dump_generic_node): Test for NULL_TREE before + accessing TREE_TYPE. + +2011-08-26 Jiangning Liu + + * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well. + (*ior_scc_scc_cmp): Likewise + (*and_scc_scc): Likewise. + (*and_scc_scc_cmp): Likewise. + (*and_scc_scc_nodom): Likewise. + (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2. + +2011-08-26 Jakub Jelinek + + * rtlanal.c (nonzero_bits1): Handle CLRSB. + +2011-08-26 Richard Guenther + + * expr.c (string_constant): Handle &MEM_REF. + 2011-08-26 Andrew Stubbs * config/arm/arm.c (struct four_ints): New type. @@ -20,11 +502,11 @@ 2011-08-26 Ramana Radhakrishnan - * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New. - ("cortex_a9_multiply_long"): New and use above. Handle all + * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New. + ("cortex_a9_multiply_long"): New and use above. Handle all long multiply cases. - ("cortex_a9_multiply"): Handle smmul and smmulr. - ("cortex_a9_mac"): Handle smmla. + ("cortex_a9_multiply"): Handle smmul and smmulr. + ("cortex_a9_mac"): Handle smmla. 2011-08-25 Richard Henderson @@ -406,8 +888,7 @@ 2011-08-22 H.J. Lu - * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't - defined. + * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined. * configure: Regenerated. 2011-08-22 Jakub Jelinek