re PR debug/53820 (ICE in vt_expand_var_loc_chain, at var-tracking.c:8029)
[gcc.git] / gcc / ChangeLog
index 068d1500b84570f93b3032955acb41be56e5cda0..9ccc668db32a54fc52c3b3e5235e4735d7ab656b 100644 (file)
@@ -1,3 +1,838 @@
+2012-07-06  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR debug/53820
+       * var-tracking.c (vt_add_function_parameter): Convert
+       internal_arg_pointer into arg_pointer-based address even
+       without DRAP.
+
+2012-07-06  Alexandre Oilva  <aoliva@redhat.com>
+
+       PR rtl-optimization/53827
+       PR debug/53671
+       PR debug/49888
+       * alias.c (memrefs_conflict_p): Adjust offset and size by the
+       same amount for alignment ANDs.
+
+2012-07-06  Tom de Vries  <tom@codesourcery.com>
+
+       PR tree-optimization/51879
+       * tree-ssa-sccvn.c (copy_reference_ops_from_call)
+       (visit_reference_op_call): Handle case that lhs is not an SSA_NAME.
+       (visit_use): Also call visit_reference_op_call for calls with a vdef.
+
+2012-07-06  Tom de Vries  <tom@codesourcery.com>
+
+       PR tree-optimization/52009
+       * tree-ssa-tail-merge.c (gimple_equal_p): For GIMPLE_ASSIGN, compare
+       value numbers of gimple_vdef.
+       * tree-ssa-sccvn.h (vn_reference_insert): Add vdef parameter to
+       prototype.
+       * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MODIFY_EXPR.
+       (vn_reference_insert): Add and handle vdef parameter.
+       (visit_reference_op_load): Add argument to vn_reference_insert call.
+       (visit_reference_op_store): Find value number of vdef of store.  Insert
+       value number of vdef of store.
+
+2012-07-06  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (simple lea to add peephole): Also transform
+       RTXes where second PLUS operand matches output.
+
+2012-07-06  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (construct_plt_address): Make static.
+       * config/i386/i386-protos.h (construct_plt_address): Remove.
+
+2012-07-06  Nick Clifton  <nickc@redhat.com>
+
+       * config/mn10300/mn10300.c (mn10300_encode_section_info): Call
+       default_encode_section_info.
+
+2012-07-06  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/53853
+       * config/i386/i386.c (x86_output_mi_thunk): For CM_LARGE_PIC model,
+       emit PIC sequence for fnaddr symbol reference in advance.
+
+2012-07-06  Eric Botcazou  <ebotcazou@adacore.com>
+
+       Revert
+       2012-06-14  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * dwarf2out.c (function_possibly_abstracted_p): New static function.
+       (gen_subprogram_die): Use it function_possibly_abstracted_p in lieu of
+       cgraph_function_possibly_inlined_p.
+       (gen_inlined_subroutine_die): Return if the origin is to be ignored.
+       (process_scope_var): Do not emit concrete instances of abstracted
+       nested functions from here.
+       (gen_decl_die): Emit the abstract instance if the function is possibly
+       abstracted and not only possibly inlined.
+       (dwarf2out_finish): Find the first non-abstract parent instance and
+       attach concrete instances on the limbo list to it.
+
+2012-07-05  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
+           Julian Brown  <julian@codesourcery.com>
+
+       PR target/48941
+       PR target/51980
+       * config/arm/neon-gen.ml (return_by_ptr): Delete.
+       (print_function): Handle empty strings.
+       (return): Delete use of return_by_ptr.
+       (mask_shape_for_shuffle): New function.
+       (mask_elems): Likewise.
+       (shuffle_fn): Likewise.
+       (params): Simplify and remove use of return_by_ptr.
+       (get_shuffle): New function.
+       (print_variant): Update.
+       * config/arm/neon.ml (rev_elems): New function.
+       (permute_range): Likewise.
+       (zip_range): Likewise.
+       (uzip_range): Likewise.
+       (trn_range): Likewise.
+       (zip_elems): Likewise.
+       (uzip_elems): Likewise.
+       (trn_elems): Likewise.
+       (features): New enumeration Use_shuffle. Delete ReturnPtr.
+       (pf_su_8_16): New.
+       (suf_32): New.
+       (ops): Update entries for Vrev64, Vrev32, Vrev16, Vtr, Vzip, Vuzp.
+       * config/arm/arm_neon.h: Regenerate.
+
+2012-07-05  Richard Guenther  <rguenther@suse.de>
+
+       * tree-pretty-print.c (dump_generic_node): Properly test
+       the result of exact_log2.
+
+2012-07-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * config/s390/s390-protos.h (s390_expand_movmem)
+       (s390_expand_cmpmem): Add return value.
+       * config/s390/s390.c (s390_expand_movmem, s390_expand_cmpmem):
+       Return FALSE to use the library function in some cases.
+       * config/s390/s390.md (movmem, cmpmem): Evaluate return value of C
+       helper functions.
+
+2012-07-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * config.gcc: Enable ifunc attribute by default on s390 and s390x.
+
+2012-07-05  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * expr.c (try_casesi): Remove bogus ATTRIBUTE_UNUSED markers.
+       * stmt.c (dump_case_nodes): New.
+       (expand_case): Split out code generation parts into new functions.
+       (expand_switch_as_decision_tree_p): Split out from expand_case.
+       (emit_case_decision_tree): Likewise.
+       (emit_case_dispatch_table): Likewise.
+
+2012-07-05  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+       * config/arm/iterators.md (SDF): New mode iterator.
+       (V_if_elem): Add support for SF and DF modes.
+       (V_reg): Likewise.
+       (F_constraint): New mode iterator attribute.
+       (F_fma_type): Likewise.
+       config/arm/vfp.md (fma<SDF:mode>4): New pattern.
+       (*fmsub<SDF:mode>4): Likewise.
+       (*fmnsub<SDF:mode>4): Likewise.
+       (*fmnadd<SDF:mode>4): Likewise.
+
+2012-07-04  Uros Bizjak  <ubizjak@gmail.com>
+
+       * expmed.c (expand_mult): Initialize coeff and is_neg.
+
+2012-07-04  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       * config/sh/predicates.md (zero_extend_operand): New predicate.
+       * config/sh/sh.md (zero_extendhisi2): Simplify by using new
+       zero_extend_operand predicate.
+       (zero_extendqisi2): Likewise.
+
+2012-07-04  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR middle-end/53321
+       * ipa.c (symtab_remove_unreachable_nodes): Partially revert r187375
+       to not call cgraph_propagate_frequency if something was changed.
+
+2012-07-04  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/53433
+       * gimple-fold.c (get_base_constructor): Do not return an
+       error_mark_node DECL_INITIAL.
+
+2012-07-04  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/53844
+       * tree-ssa-dse.c (dse_possible_dead_store_p): Properly handle
+       the loop virtual PHI.
+
+2012-07-04  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/53849
+       * tree-cfg.c (move_stmt_op): Only call add_referenced_var
+       for duplicated locals.  Use add_referenced_var_1 to avoid
+       pushing/popping cfun.
+
+2012-07-04  Kai Tietz  <ktietz@redhat.com>
+
+       * config/i386/winnt.c (i386_pe_reloc_rw_mask): New function.
+       * config/i386/i386-protos.h (i386_pe_reloc_rw_mask): Add
+       prototype.
+       * config/i386/cygming.h (TARGET_ASM_RELOC_RW_MASK): Define
+       as i386_pe_reloc_rw_mask.
+
+2012-07-04  Richard Guenther  <rguenther@suse.de>
+
+       * tree.c (find_decls_types_r): Handle TYPE_CONTEXT the same
+       as in free_lang_data_in_type.
+
+2012-07-04  Tobias Grosser <tobias@grosser.es>
+           Michael Matz  <matz@suse.de>
+
+       * Makefile.in (OBJS): Add graphite-optimize-isl.o.
+       (graphite-optimize-isl.o): Add dependencies.
+       * common.opt (floop-nest-optimize): New flag.
+       * doc/invoke.texi (floop-nest-optimize): Document.
+       * graphite-dependences.c (compute_deps): Export.
+       * graphite-poly.h (compute_deps): Declare.
+       * graphite-optimize-isl.c: New file.
+       * graphite-poly.c (apply_poly_transforms): Run the loop
+       nest optimizer.
+       * tree-ssa-loop.c (gate_graphite_transforms): Enable graphite
+       if -floop-nest-optimize is enabled.
+
+2012-07-03  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       * config/sh/predicates.md (logical_and_operand): New predicate.
+       * config/sh/constraints.md (Jmb, Jmw): New constraints.
+       * config/sh/sh.md (andsi3): Move expander above insns.  Add handling
+       of 0xFFFF constant.  Use logical_and_operand predicate and
+       satisfies_constraint_Jmb, satisfies_constraint_Jmw.
+       (*andsi3_compact): Make it an insn_and_split.  Use
+       logical_and_operand predicate.  Add Jmb,Jmw alternatives.
+
+2012-07-03  Jason Merrill  <jason@redhat.com>
+
+       PR c++/53826
+       * tree.c (build_zero_cst): Handle NULLPTR_TYPE.
+
+2012-07-03  Nick Clifton  <nickc@redhat.com>
+
+       * config/mep/mep.c (mep_reorg_regmove): Use
+       next_nonnote_non_debug_insn to advance to the next insn.  Do not
+       expect delete_insn to return an rtx.
+
+2012-07-03  Richard Guenther  <rguenther@suse.de>
+
+       * doc/install.texi (CLooG): Clarify how CLooG needs to be
+       configured and that it needs to be built against ISL 0.10.
+
+2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (ix86_option_override_internal): Fix wrong
+       code model string in the error message.
+
+2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/53811
+       * config/i386/i386.c (x86_output_mi_thunk): Check if fnaddr satisfies
+       sibcall_insn_operand.  Move it to a temporary register if not.
+
+2012-07-03  Andreas Schwab  <schwab@linux-m68k.org>
+
+       PR target/28896
+       * config/m68k/m68k.c (m68k_option_override): Reset stack_limit_rtx
+       if !TARGET_68020.
+
+2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/xmmintrin.h (_mm_sfence): Use __builtin_ia32_pause.
+
+2012-07-03  Roland McGrath  <mcgrathr@google.com>
+
+       * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): Also require that the
+       assembler accept 'rep bsf ...', 'rep bsr ...', 'rep ret' and 'rep nop'.
+       * configure: Regenerated.
+       * config/i386/i386.md (simple_return_internal_long): Use %;
+       (ctz<mode>2): Likewise.
+       (*pause): Likewise.
+
+2012-07-02  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       PR target/51244
+       * config/sh/predicates.md (t_reg_operand, negt_reg_operand): New
+       predicates.
+       * config/sh/sh-protos.h (get_t_reg_rtx): New prototype.
+       * config/sh/sh.c (get_t_reg_rtx): New function.  Use it when invoking
+       gen_branch_true and gen_branch_false.
+       * config/sh/sh.md: Use get_t_reg_rtx when invoking gen_branch_true and
+       gen_branch_false.
+       (branch_true, branch_false): Use t_reg_operand predicate.
+       (*branch_true, *branch_false): Delete.
+       (movt): Use t_reg_operand predicate.
+       (*negnegt): Use negt_reg_operand predicate and fold little and big
+       endian variants.
+       (*movtt): Use t_reg_operand and fold little and big endian variants.
+       (*movt_qi): Delete.
+
+2012-07-02  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * stmt.c (emit_case_bit_tests): Remove.
+       (expand_case): Remove expand_switch_using_bit_tests_p code.
+       * tree-switch-conversion.c (hoist_edge_and_branch_if_true): New.
+       (MAX_CASE_BIT_TESTS): Moved from stmt.c to here.
+       (lshift_cheap_p): Likewise.
+       (expand_switch_using_bit_tests_p): Likewise.
+       (struct case_bit_test): Likewise.
+       (case_bit_test_cmp): Likewise.
+       (emit_case_bit_tests): New implementation for GIMPLE.
+       (gen_inbound_check): Do not release post-dominator info here.
+       (process_switch): Reorder code.  Expand as bit tests if it
+       looks like a win.
+       (do_switchconv): Release post-dominator info here if something changed.
+       (struct gimple_opt_pass): Verify more.
+       * tree.h (expand_switch_using_bit_tests_p): Remove prototype.
+
+2012-07-02  Martin Jambor  <mjambor@suse.cz>
+
+       PR middle-end/38474
+       * ipa-prop.c (compute_known_type_jump_func): Put BINFO check before a
+       dynamic type change check.
+
+2012-07-02  Richard Guenther  <rguenther@suse.de>
+           Michael Matz  <matz@suse.de>
+           Tobias Grosser <tobias@grosser.es>
+           Sebastian Pop <sebpop@gmail.com>
+
+       * Makefile.in: Remove PPL flags in favor of ISL ones.
+       (BACKENDLIBS): Remove PPL libs.
+       (INCLUDES): Remove PPL includes in favor of ISL ones.
+       (graphite-clast-to-gimple.o): Remove graphite-dependences.h and
+       graphite-cloog-compat.h dependencies.
+       (graphite-dependences.o): Likewise.
+       (graphite-poly.o): Likewise.
+       * configure.ac: Declare ISL vars instead of PPL ones.
+       * configure: Regenerated.
+       * doc/install.texi: Replace PPL requirement documentation with ISL one.
+       * graphite-blocking.c: Remove PPL code, add ISL equivalent.
+       * graphite-clast-to-gimple.c: Likewise.
+       * graphite-dependences.c: Likewise.
+       * graphite-interchange.c: Likewise.
+       * graphite-poly.h: Likewise.
+       * graphite-poly.c: Likewise.
+       * graphite-sese-to-poly.c: Likewise.
+       * graphite.c: Likewise.
+       * graphite-scop-detection.c: Re-arrange includes.
+       * graphite-cloog-util.c: Remove.
+       * graphite-cloog-util.h: Likewise.
+       * graphite-ppl.h: Likewise.
+       * graphite-ppl.c: Likewise.
+       * graphite-dependences.h: Likewise.
+
+2012-07-02  Richard Guenther  <rguenther@suse.de>
+
+       Merge from graphite branch
+       2011-07-21  Tobias Grosser  <tobias@grosser.es>
+
+       * Makefile.in (graphite-clast-to-gimple.o, graphite-cloog-util.o):
+       Remove graphite-cloog-util.h.
+       * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop,
+       build_iv_mapping, translate_clast_user, translate_clast,
+       free_scattering, initialize_cloog_names, build_cloog_prog,
+       create_params_index): Do not use old compatibility functions.
+       (clast_name_to_index, set_cloog_options): Remove code for legacy cloog.
+       * graphite-cloog-util.c (openscop_print_cloog_matrix): Do not use old
+       compatibility functions.
+       (new_Cloog_Scattering_from_ppl_Polyhedron): Remove code for legacy
+       cloog.
+       * graphite-cloog-util.h: Remove include of graphite-cloog-util.h.
+       * graphite.c (graphite.c): Do not call outdated cloog_initialize() and
+       cloog_finalize().
+       * graphite-cloog-compat.h: Remove.
+
+       2011-08-09  Tobias Grosser <tobias@grosser.es>
+
+       * graphite-clast-to-gimple.c (new_clast_name_index): Store a copy
+       of the string, no just a reference.
+       (clast_name_index): Add a new field, that specifies if we need to free
+       the name.
+       (free_clast_name_index): If necessary, free the name string.
+       (clast_name_index_elt_info): Calculate the hash based on the string
+       content, not the memory location it is stored in.
+       (clast_name_to_level): Specify that we do not need to free the name.
+       (clast_name_to_index): Dito.
+       (clast_name_to_lb_ub): Dito.
+       (eq_clast_name_indexes): Compare the strings, not their base pointers.
+       (free_scattering): Removed.
+       (initialize_cloog_names): Renamed to add_names_to_union_domain().
+       (add_names_to_union_domain): Changed to work on a union_domain,
+       instead of a CloogNames structure.
+       (build_cloog_prog): Removed.
+       (build_cloog_union_domain): New.
+       (generate_cloog_input): New.
+       (scop_to_clast): Use CloogInput instead of CloogProgram.
+       (print_generated_program): Adapt to new scop_to_clast() and do not
+       print the CloogProgram any more.
+       (create_params_index): Removed, functionality integrated in
+       add_names_to_union_domain().
+       (gloog): Adapt to new scop_to_clast().
+       * graphite-clast-to-gimple.h (scop_to_clast): Remove.
+
+       2012-01-11  Tobias Grosser <tobias@grosser.es>
+
+       * graphite-clast-to-gimple.c (clast_name_to_index,
+       clast_name_to_lb_ub, clast_name_to_gcc): Change types.
+       (clast_to_gcc_expression): Add clast_expr_name as a new
+       case. Do not assume a clast_expr_term points always to a
+       clast_expr_name.
+       (type_for_clast_term): Do not assume a clast_expr_term points always to
+       a clast_expr_name.
+       (type_for_clast_name): New.
+       (type_for_clast_expr): Add clast_expr_name as a new case.
+
+       2011-08-03  Sebastian Pop <sebpop@gmail.com>
+
+       * graphite-cloog-util.c (new_Cloog_Domain_from_ppl_Polyhedron,
+       new_Cloog_Scattering_from_ppl_Polyhedron,
+       new_Cloog_Domain_from_ppl_Pointset_Powerset): Remove ATTRIBUTE_UNUSED.
+
+2012-07-02  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/53645
+       * tree-vect-generic.c (expand_vector_divmod): Use TYPE_MODE (type)
+       instead of TYPE_MODE (wider_type) as can_vec_perm_p argument.
+
+2012-07-01  Wei Guozhi  <carrot@google.com>
+
+       PR target/53447
+       * config/arm/arm-protos.h (const_ok_for_dimode_op): New prototype.
+       * config/arm/arm.c (const_ok_for_dimode_op): New function.
+       * config/arm/constraints.md (Dd): New constraint.
+       * config/arm/predicates.md (arm_adddi_operand): New predicate.
+       * config/arm/arm.md (adddi3): Extend it to handle constants.
+       (arm_adddi3): Likewise.
+       (addsi3_carryin_<optab>): Extend it to handle sbc case.
+       (addsi3_carryin_alt2_<optab>): Likewise.
+       * config/arm/neon.md (adddi3_neon): Extend it to handle constants.
+
+2012-06-30  Nathan Sidwell  <nathan@acm.org>
+
+       * coverage.c (bbg_file_stamp): New.
+       (read_counts_file): Merge incoming stamp with bbg_file_stamp.
+       (build_info): Write bbg_file_stamp.
+       (coverage_init): Initialize bbg_file_stamp.  Read counts file
+       before writing graph header.
+       (coverage_finish): Don't unlink the data file if we can generate a
+       unique file stamp.
+       * tree.h (crc32_unsigned): Declare.
+       * tree.c (crc32_unsigned_bits): New, broken out of ...
+       (crc32_byte): ... here.  Use it.
+       (crc32_unsigned): New.
+
+2012-06-29  Cary Coutant  <ccoutant@google.com>
+
+       * dwarf2out.c (add_pubname_string): Don't check for want_pubnames.
+       (gen_subprogram_die): Don't add pubname if want_pubnames is false.
+       (gen_variable_die): Likewise.
+       (gen_namespace_die): Likewise.
+
+2012-06-29  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree-eh.c (lower_try_finally_switch): Really put the location of the
+       last statement of the finally block onto the switch.
+
+2012-06-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/53539
+       * config/i386/gnu-user64.h (WCHAR_TYPE): Use "int" only for
+       TARGET_LP64.
+
+2012-06-29  Sterling Augustine  <saugustine@google.com>
+
+       * dwarf2out.c (add_pubname): Add comment.
+       (add_pubtype): Fix indentation.
+       (gen_enumeration_type_die): Likewise.
+
+2012-06-29  Jakub Jelinek  <jakub@redhat.com>
+
+       * tree-vect-generic.c (expand_vector_divmod): For even/odd
+       widening multiply, put even always as first argument to VEC_PERM_EXPR.
+
+2012-06-29  Richard Henderson  <rth@redhat.com>
+
+       * tree-vect-generic.c: Include target.h.
+       (expand_vector_divmod): Use builtin_mul_widen_even/odd if supported.
+       * Makefile.in (tree-vect-generic.o): Update.
+
+2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * configure.ac: Remove special gtfiles case for C.
+       * configure: Regenerate.
+       * Makefile.in: Remove C front-end hooks and build hooks that
+       will be picked up from c/Make-lang.in now.
+       Add tree-mudflap to C_COMMON_OBJS.
+       * gengtype.c (files_rules): Adjust gt-files for c/c-decl.c.
+       * config/vms/vms.c: Look for c-tree.h in c/.
+       * doc/gty.texi: Remove reference to c-config-lang.in.
+       * doc/sourcebuild.texi: Document the c/ subdirectory.
+
+2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * system.h (CASE_USE_BIT_TESTS): Poison.
+       * stmt.c (CASE_USE_BIT_TESTS): Fold away into its only user ...
+       (expand_switch_using_bit_tests_p): ...here.
+       * doc/tm.texi.in (CASE_USE_BIT_TESTS): Remove documentation.
+       * doc/tm.texi (CASE_USE_BIT_TESTS): Regenerate.
+
+2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * system.h (IFCVT_EXTRA_FIELDS): Poison.
+       (IFCVT_INIT_EXTRA_FIELDS): Poison.
+       * basic-block.h (struct ce_if_block): Remove IFCVT_EXTRA_FIELDS.
+       * ifcvt.c (find_if_header): Use IFCVT_MACHDEP_INIT instead of
+       IFCVT_INIT_EXTRA_FIELDS.
+       * gengtype-parse.c (struct_field_seq): Remove obsolete comment.
+       * config/frv/frv.h (IFCVT_INIT_EXTRA_FIELDS): Rename to
+       IFCVT_MACHDEP_INIT.
+       * config/frv/frv.c (frv_ifcvt_init_extra_fields): Rename to
+       frv_ifcvt_machdep_init.
+       * doc/tm.texi.in (IFCVT_INIT_EXTRA_FIELDS, IFCVT_EXTRA_FIELDS):
+       Remove documentation.
+       (IFCVT_MACHDEP_INIT): Document.
+       * doc/tm.texi: Regenerate.
+
+2012-06-29  Nick Clifton  <nickc@redhat.com>
+
+       * config/lm32/lm32.c (lm32_compute_frame_size): Fix typo.
+
+2012-06-29  Jakub Jelinek  <jakub@redhat.com>
+
+       * tree-vect-stmts.c (vectorizable_operation): Check both
+       VEC_WIDEN_MULT_LO_EXPR and VEC_WIDEN_MULT_HI_EXPR optabs.
+       Verify that operand[0]'s mode is TYPE_MODE (wide_vectype).
+
+2012-06-28  Richard Henderson  <rth@redhat.com>
+
+       * doc/generic.texi (MULT_HIGHPART_EXPR): Document it.
+
+2012-06-28  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/51581
+       * tree-vect-stmts.c (permute_vec_elements): Add forward decl.
+       (vectorizable_operation): Handle vectorization of MULT_HIGHPART_EXPR
+       also using VEC_WIDEN_MULT_*_EXPR or builtin_mul_widen_* plus
+       VEC_PERM_EXPR if vector MULT_HIGHPART_EXPR isn't supported.
+       * tree-vect-patterns.c (vect_recog_divmod_pattern): Use
+       MULT_HIGHPART_EXPR instead of VEC_WIDEN_MULT_*_EXPR and shifts.
+
+       PR tree-optimization/53645
+       * tree-vect-generic.c (expand_vector_divmod): Use MULT_HIGHPART_EXPR
+       instead of VEC_WIDEN_MULT_{HI,LO}_EXPR followed by VEC_PERM_EXPR
+       if possible.
+
+2012-06-28  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR 53595
+       * config/avr/avr.c (avr_hard_regno_call_part_clobbered): New.
+       * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered): New.
+       * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Forward to
+       avr_hard_regno_call_part_clobbered.
+
+2012-06-28  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/53790
+       * expr.c (expand_expr_real_1): Verify if the type is complete
+       before inspecting its size.
+
+2012-06-28  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * doc/include/gpl.texi: Remove.
+       * doc/sourcebuild.texi (Texinfo Manuals): Don't mention gpl.texi.
+
+2012-06-28  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/53645
+       * tree-vect-generic.c (add_rshift): New function.
+       (expand_vector_divmod): New function.
+       (expand_vector_operation): Use it for vector integer
+       TRUNC_{DIV,MOD}_EXPR by VECTOR_CST.
+       * tree-vect-patterns.c (vect_recog_divmod_pattern): Replace
+       unused lguup variable with dummy_int.
+
+2012-06-28  OLivier Hainque  <hainque@adacore.com>
+
+       * expr.c (convert_move): Latch mem integer inputs into a
+       register before expanding a multi-instructions sequence.
+
+2012-06-28  Alexandre Oliva  <aoliva@redhat.com>
+           Uros Bizjak  <ubizjak@gmail.com>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/53706
+       PR debug/47624
+       * var-tracking.c (vt_emit_notes): Release loc_exp_dep_pool...
+       (vt_finalize): ... here instead, if needed.
+
+2012-06-28  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR debug/53740
+       PR debug/52983
+       PR debug/48866
+       * dce.c (word_dce_process_block): Check whether inserting debug
+       temps are needed even for needed insns.
+       (dce_process_block): Likewise.
+       * df-problems.c (dead_debug_add): Add comment about multi-regs.
+       (dead_debug_insert_temp): Likewise.  Don't subreg when we're
+       setting fewer regs than a multi-reg requires.
+
+2012-06-27  Richard Henderson  <rth@redhat.com>
+
+       * config/alpha/alpha.c (alpha_dimode_u): New.
+       (alpha_init_builtins): Initialize it, and use it.
+       (alpha_fold_builtin_cmpbge): Use alpha_dimode_u.
+       (alpha_fold_builtin_zapnot, alpha_fold_builtin_insxx): Likewise.
+       (alpha_fold_vector_minmax, alpha_fold_builtin_perr): Likewise.
+       (alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb): Likewise.
+       (alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw): Likewise.
+       (alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz): Likewise.
+       (alpha_fold_builtin_ctpop): Likewise.
+       (alpha_fold_builtin_umulh): Remove.
+       (alpha_fold_builtin): Use MULT_HIGHPART_EXPR for UMULH; fix
+       typo in MAX_ARGS check.
+
+2012-06-27  Richard Henderson  <rth@redhat.com>
+
+       * tree.def (MULT_HIGHPART_EXPR): New.
+       * cfgexpand.c (expand_debug_expr): Ignore it.
+       * expr.c (expand_expr_real_2): Handle it.
+       * fold-const.c (int_const_binop_1): Likewise.
+       * optabs.c (optab_for_tree_code): Likewise.
+       * tree-cfg.c (verify_gimple_assign_binary): Likewise.
+       * tree-inline.c (estimate_operator_cost): Likewise.
+       * tree-pretty-print.c (dump_generic_node): Likewise.
+       (op_code_prio, op_symbol_code): Likewise.
+       * tree.c (commutative_tree_code): Likewise.  Also handle
+       WIDEN_MULT_EXPR, VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR.
+
+2012-06-27  Richard Henderson  <rth@redhat.com>
+
+       PR target/53749
+       * config/i386/i386.c (ix86_rtx_costs): Fix typo vs UNITS_PER_WORD
+       in 2012-06-23 change.  Adjust two other DImode tests as well.
+
+2012-06-27  Nick Clifton  <nickc@redhat.com>
+
+       * config/rx/rx.md (comparesi3_extend): Remove = modifier from
+       input operand.
+
+2012-06-27  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/53676
+       * tree-chrec.c (chrec_convert_1): Represent truncation to
+       a type with undefined overflow as truncation to an unsigned
+       type converted to the type with undefined overflow.
+       * tree-scalar-evolution.c (interpret_rhs_expr): For computing
+       the scalar evolution of a truncated widened operation avoid
+       looking at the non-existing evolution of the widened operation
+       result.
+
+2012-06-27  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/53774
+       * tree-ssa-reassoc.c (get_rank): All default defs have
+       precomputed rank.
+       (init_reassoc): Precompute rank for all SSA default defs.
+
+2012-06-27  Nick Clifton  <nickc@redhat.com>
+
+       * config/rx/rx.md (simple_return): Use the simple_return rtx.
+
+2012-06-26  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386.c (ix86_rtx_costs): Use standard_sse_constant_p
+       and don't fall thru from standard_80387_constant_p to the memory
+       fallback.
+
+2012-06-26  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386.c (bdesc_args): Update.  Change
+       IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI to OPTION_MASK_ISA_SSE2.
+       (IX86_BUILTIN_VEC_WIDEN_SMUL_EVEN_V4SI): New.
+       (ix86_builtin_mul_widen_even): Use it.
+       (ix86_builtin_mul_widen_odd): Relax SMUL_ODD from sse4 to sse2.
+       (ix86_expand_mul_widen_evenodd): Handle signed for sse2.
+       * config/i386/sse.md (vec_widen_<s>mult_hi_<V124_AVX2>): Allow
+       for all SSE2.
+       (vec_widen_<s>mult_lo_<V124_AVX2>): Likewise.
+       (vec_widen_<s>mult_odd_<VI4_AVX2>): Likewise.  Relax from V124_AVX2.
+       (vec_widen_smult_even_v4si): New.
+
+2012-06-26  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/sse.md (mul<VI8_AVX2>3): Change from insn_and_split
+       to expander; move guts to ...
+       * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): ... here.  Add
+       highparts before shifting up.
+       * config/i386/i386-protos.h: Update.
+
+2012-06-26  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * system.h (USE_COMMON_FOR_ONE_ONLY): Poison.
+       * defaults.h (USE_COMMON_FOR_ONE_ONLY): Do not provide default.
+       * config/darwin.h (USE_COMMON_FOR_ONE_ONLY): Do not define.
+
+2012-06-26  Alexandre Oliva  <aoliva@redhat.com>
+
+       * var-tracking.c (vt_add_function_parameter): Use a preserved
+       VALUE for the MEM address of an incoming parameter.
+
+2012-06-26  Sterling Augustine <saugustine@google.com>
+
+       * dwarf2out.c (output_pubnames): Add check for DW_TAG_enumerator.
+       (prune_unused_types): Likewise.
+
+2012-06-26  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * system.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
+       UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Poison.
+       * vmsdbgout.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
+       UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Rename to
+       VMS_UNALIGNED_SHORT_ASM_OP, VMS_UNALIGNED_INT_ASM_OP,
+       VMS_UNALIGNED_LONG_ASM_OP, and VMS_UNALIGNED_DOUBLE_INT_ASM_OP.
+       * config/microblaze/microblaze.h (UNALIGNED_SHORT_ASM_OP,
+       UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Do not define.
+       * doc/tm.texi.in: Remove UNALIGNED_INT_ASM_OP reference from the
+       documentation.
+       * doc/tm.texi: Regenerate.
+       * doc/cpp.texi: Make example for #error generic.
+       * config/frv/frv.h: Fix example text to match tm.texi.
+
+2012-06-26  Bill Schmidt  <wschmidt@linux.ibm.com>
+
+       * tree-pass.h (pass_strength_reduction): New decl.
+       * tree-ssa-loop-ivopts.c (initialize_costs): Make non-static.
+       (finalize_costs): Likewise.
+       * timevar.def (TV_TREE_SLSR): New timevar.
+       * gimple-ssa-strength-reduction.c: New.
+       * tree-flow.h (initialize_costs): New decl.
+       (finalize_costs): Likewise.
+       * Makefile.in (tree-ssa-strength-reduction.o): New dependencies.
+       * passes.c (init_optimization_passes): Add pass_strength_reduction.
+
+2012-06-26  Matt Turner  <mattst88@gmail.com>
+
+       * doc/extend.texi (__builtin_arm_tinsrb): Add missing second parameter.
+       (__builtin_arm_tinsrh): Likewise.
+       (__builtin_arm_tinsrw): Likewise.
+       (__builtin_arm_wsadb): Add missing v2si parameter.
+       (__builtin_arm_wsadh): Likewise.
+       (__builtin_arm_getwcx): Delete.
+       (__builtin_arm_setwcx): Delete.
+       (__builtin_arm_getwcgr0): Add.
+       (__builtin_arm_getwcgr1): Add.
+       (__builtin_arm_getwcgr2): Add.
+       (__builtin_arm_getwcgr3): Add.
+       (__builtin_arm_setwcgr0): Add.
+       (__builtin_arm_setwcgr1): Add.
+       (__builtin_arm_setwcgr2): Add.
+       (__builtin_arm_setwcgr3): Add.
+
+2012-06-26  Richard Guenther  <rguenther@suse.de>
+
+       Revert
+       2012-06-21  Richard Guenther  <rguenther@suse.de>
+
+       * tree-inline.c (estimate_num_insns): Estimate call cost for
+       tailcalls properly.
+
+2012-06-26  Steven Bosscher  <steven@gcc.gnu.org>
+
+       PR other/33190
+       * doc/tm.texi.in: Document LOGICAL_OP_NON_SHORT_CIRCUIT.
+       * doc/tm.texi: Regenerate.
+
+2012-06-26  Steven Bosscher  <steven@gcc.gnu.org>
+
+       PR other/33190
+       * config/mips/mips.h: Do not define ALL_COP_ADDITIONAL_REGISTER_NAMES.
+       * config/frv/frv.h: Do not define REVERSE_CONDEXEC_PREDICATES_P.
+       * doc/tm.texi.in: Remove documentation for unused target macros
+       ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN,
+       DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE,
+       REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and
+       TARGET_NARROW_VOLATILE_BITFIELDS.
+       Document that MD_HANDLE_UNWABI is a macro in libgcc.
+       * doc/tm.texi: Regenerate.
+       * system.h: Poison target macros
+       ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN,
+       DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE,
+       REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and
+       TARGET_NARROW_VOLATILE_BITFIELDS
+
+2012-06-26  Jan Hubicka  <jh@suse.cz>
+
+       PR lto/53572
+       * cgraph.h (varpool_can_remove_if_no_refs): Fix handling of
+       used symbols.
+
+2012-06-26  Dehao Chen  <dehao@google.com>
+
+       * tree-inline.c: (expand_call_inline): Ensure that lexical block's
+       source location is consistant with the call stmt.
+
+2012-06-26  Ulrich Weigand  <ulrich.weigand@linaro.org>
+
+       PR tree-optimization/53729
+       PR tree-optimization/53636
+       * tree-vect-slp.c (vect_slp_analyze_bb_1): Delay call to
+       vect_verify_datarefs_alignment until after statements have
+       been marked as relevant/irrelevant.
+       * tree-vect-data-refs.c (vect_verify_datarefs_alignment):
+       Skip irrelevant statements.
+       (vect_enhance_data_refs_alignment): Use STMT_VINFO_RELEVANT_P
+       instead of STMT_VINFO_RELEVANT.
+       (vect_get_data_access_cost): Do not check for supportable
+       alignment before calling vect_get_load_cost/vect_get_store_cost.
+       * tree-vect-stmts.c (vect_get_store_cost): Do not abort when
+       handling unsupported alignment.
+       (vect_get_load_cost): Likewise.
+
+2012-06-25  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * config/rl78/rl78.h: Do not undefine DONT_USE_BUILTIN_SETJMP.
+       Do not define JMP_BUF_SIZE.
+
+2012-06-26  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/53748
+       * tree-ssa-phiopt.c (conditional_replacement): Only optimize
+       if arg0/arg1 have integral or pointer types.
+
+2012-06-25  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/sse.md (sse2_sse4_1): Remove code attr.
+       (<s>dot_prodv4si, <s>dot_prodv8si): Remove
+       (sdot_prodv4si): New; handle only XOP.
+
+2012-06-25  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386-builtin-types.def (V4UDI, V8USI): New.
+       (V2UDI_FUNC_V4USI_V4USI): New.
+       (V4UDI_FUNC_V8USI_V8USI): New.
+       * config/i386/i386.c (ix86_expand_args_builtin): Handle them.
+       (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI): New.
+       (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V8SI): New.
+       (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V4SI): New.
+       (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V8SI): New.
+       (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V4SI): New.
+       (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V8SI): New.
+       (bdesc_args): Add them.
+       (ix86_builtin_mul_widen_even, ix86_builtin_mul_widen_odd): New.
+       (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
+       (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
+       (ix86_expand_mul_widen_evenodd): Use xop_pmacsdqh.
+       * config/i386/sse.md (vec_widen_<s>mult_odd_<V124_AVX2>): New.
+
 2012-06-25  Richard Henderson  <rth@redhat.com>
 
        * config/i386.sse.md (mul<VI4_AVX2>3): Use xop_pmacsdd.
        (neon_vld1_dupv2di): New, fixes vld1q_dup_s64.
 
 2012-06-25  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
-            James Greenhalgh  <james.greenhalgh@arm.com>
+           James Greenhalgh  <james.greenhalgh@arm.com>
 
        * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add new built-ins.
        (TARGET_FMA): New macro.
 
 2012-06-24  Richard Sandiford  <rdsandiford@googlemail.com>
 
-       * config/mips/mips.c (mips_process_sync_loop): Add missing
-       enum cast.
+       * config/mips/mips.c (mips_process_sync_loop): Add missing enum cast.
 
 2012-06-23  Richard Henderson  <rth@redhat.com>
 
 
        Merge from graphite branch
        2011-08-10  Sebastian Pop <sebpop@gmail.com>
-    
+
        * graphite-sese-to-poly.c (build_scop_drs): Fix memory leak.
 
        2012-01-13  Tobias Grosser  <tobias@grosser.es>
 
        PR debug/53671
        PR debug/49888
-       * alias.c (memrefs_conflict_p): Improve handling of AND for
-       alignment.
+       * alias.c (memrefs_conflict_p): Improve handling of AND for alignment.
 
 2012-06-21  Alexandre Oliva  <aoliva@redhat.com>
 
        created in c_push_function_context.  Always clear out the
        x_cur_stmt_list field of the restored language function.
 
-2012-06-21   Sterling Augustine  <saugustine@google.com>
-             Cary Coutant  <ccoutant@google.com>
+2012-06-21  Sterling Augustine  <saugustine@google.com>
+           Cary Coutant  <ccoutant@google.com>
 
        * dwarf2out.c (is_cu_die, is_namespace_die, is_class_die,
        add_AT_pubnames, add_enumerator_pubname, want_pubnames): New functions.
        * tree-data-ref.c (struct rdg_vertex_info): Remove.
        (rdg_vertex_for_stmt): Simplify using gimple_uid.
        (create_rdg_vertices): Pass loop argument, remove stmt to RDG index
-       hashtable.   Record stmt data-references.
+       hashtable.  Record stmt data-references.
        (hash_stmt_vertex_info): Remove.
        (eq_stmt_vertex_info): Likewise.
        (hash_stmt_vertex_del): Likewise.
        (enable_warning_as_error): Do not special case Wuninitialized.
        * optc-gen.awk: Add sanity checks.
 
-2012-05-17  Jan Hubicka   <jh@suse.cz>
+2012-05-17  Jan Hubicka  <jh@suse.cz>
 
        * ipa-reference.c (is_proper_for_analysis): Do not check flags
        that might change as result of global optimization.