OSDN Git Service

2011-09-02 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 69b05cc..a54f1d1 100644 (file)
@@ -1,3 +1,299 @@
+2011-09-02  Richard Guenther  <rguenther@suse.de>
+
+       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<mode>): Split to
+       vcond<V_256:mode><VF_256:mode>, vcond<V_128:mode><VF_128:mode>,
+       vcond<V_128:mode><VI124_128:mode> and
+       vcondu<V_128:mode><VI124_128:mode>.
+       (vcondv2di): Change to vcond<VI8F_128:mode>v2di.
+       (vconduv2di): Likewise.
+       * config/arm/neon.md (vcond<mode>): Change to vcond*<mode><mode>.
+       (vcondu<mode>): Likewise.
+       * config/ia64/vect.md (vcond<mode>): Likewise.
+       (vcondu<mode>): Likewise.
+       (vcondv2sf): Likewise.
+       * config/mips/mips-ps-3d.md (vcondv2sf): Likewise.
+       * config/rs6000/paired.md (vcondv2sf): Likewise.
+       * config/rs6000/vector.md (vcond<mode>): Likewise.
+       (vcondu<mode>): Likewise.
+       * config/spu/spu.md (vcond<mode>): Likewise.
+       (vcondu<mode>): Likewise.
+
+2011-09-02  Richard Guenther  <rguenther@suse.de>
+
+       * 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  <richard.sandiford@linaro.org>
+
+       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  <mjambor@suse.cz>
+
+       * 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  <rguenther@suse.de>
+
+       * 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  <rguenther@suse.de>
+
+       * 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  <rdsandiford@googlemail.com>
+
+       * 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  <rdsandiford@googlemail.com>
+
+       * 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  <rdsandiford@googlemail.com>
+
+       * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs.
+       (attr_string): Use copy_md_ptr_loc.
+
+2011-08-31  Martin Jambor  <mjambor@suse.cz>
+
+       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  <mjambor@suse.cz>
+
+       * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias
+       check removed.
+
+2011-08-31  Richard Guenther  <rguenther@suse.de>
+
+       * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
+       special-casing.
+
+2011-08-31  Marc Glisse  <marc.glisse@inria.fr>
+
+       * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals.
+
+2011-08-31  Tom de Vries  <tom@codesourcery.com>
+
+       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  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
+       Handle FMA option.
+
+2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
+
+       * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
+       b3 and b4 unsigned.
+
+2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
+
+       * config/arm/arm.c (arm_gen_constant): Set can_negate correctly
+       when code is SET.
+
+2011-08-30  Richard Guenther  <rguenther@suse.de>
+
+       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  <ilya.tocar@intel.com>
+
+       * config/i386/fmaintrin.h: New.
+       * config.gcc: Add fmaintrin.h.
+       * config/i386/i386.c
+       (enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
+       <IX86_BUILTIN_VFMADDSD3>: Likewise.
+       * config/i386/sse.md (fmai_vmfmadd_<mode>): New.
+       (*fmai_fmadd_<mode>): Likewise.
+       (*fmai_fmsub_<mode>): Likewise.
+       (*fmai_fnmadd_<mode>): Likewise.
+       (*fmai_fnmsub_<mode>): Likewise.
+       * config/i386/immintrin.h: Add fmaintrin.h.
+
+2011-08-30  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * 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  <christian.bruel@st.com>
+
+       * coverage.c (coverage_init): Check flag_branch_probabilities instead of
+       flag_profile_use.
+
+2011-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       * 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  <jakub@redhat.com>
+
+       * gthr-posix.h (__gthread_active_p): Do not use preprocessor
+       conditionals and comments inside macro arguments.
+
+20011-08-29  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
+            Richard Guenther  <rguenther@suse.de>
+
+       * 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  <jakub@redhat.com>
+
+       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  <rguenther@suse.de>
+
+       * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location
+       on the built ADDR_EXPR.
+
+2011-08-29  Jakub Jelinek  <jakub@redhat.com>
+
+       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  <mikpe@it.uu.se>
+
+       PR bootstrap/50218
+       * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize
+       comp.
+
 2011-08-27  Bernd Schmidt  <bernds@codesourcery.com>
 
        * doc/rtl.texi (simple_return): Document.