+2011-09-28 Kai Tietz <ktietz@redhat.com>
+
+ * configure.ac: Add test for new section attribute
+ specifier "e" via define HAVE_GAS_SECTION_EXCLUDE.
+ * config.in: Regenerated.
+ * configure: Regenerated.
+ * config/i386/winnt.c (i386_pe_asm_named_section): Emit
+ new section flag "e" for excluded sections, if supported.
+ Otherwise we mark section withc SECTION_EXCLUDE flag
+ as never-load.
+
+2011-09-28 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/m32r/m32r.md: Use match_test rather than eq/ne symbol_ref
+ throughout file.
+
+2011-09-28 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/iq2000/iq2000.md: Use match_test rather than eq/ne symbol_ref
+ throughout file.
+
+2011-09-27 Sriraman Tallam <tmsriram@google.com>
+
+ * output.h (SECTION_EXCLUDE): New macro.
+ * varasm.c (default_elf_asm_named_section): Check for
+ SECTION_EXCLUDE.
+
+2011-09-27 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * fwprop.c (forward_propagate_and_simplify): After checking
+ reg/subreg combinations, check whether the modes are the same.
+
+2011-09-27 Bernd Schmidt <bernds@codesourcery.com>
+ Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.c (mips_add_cfa_restore): New function.
+ (mips16e_save_restore_reg): Use it.
+ (mips_restore_reg): Likewise. Split double FPRs for
+ REG_CFA_RESTORE notes.
+
+2011-09-27 Richard Sandiford <rdsandiford@googlemail.com>
+
+ PR middle-end/50386
+ PR middle-end/50326
+ * tree-sra.c (build_ref_for_model): Use the type of the field as
+ the type of the COMPONENT_REF.
+
+2011-09-27 Jeff Law <law@redhat.com>
+
+ * ifcvt.c (cheap_bb_rtx_cost_p): Add SCALE argument. Scale
+ non-jumping insns by REG_BR_PROB_BASE and the maximum cost
+ by SCALE.
+ (find_if_case_1): Use the probability of the THEN clause when
+ determining if speculation is profitable.
+ (find_if_case_2): Similarly for the ELSE clause.
+
+2011-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ * common.opt: Add -foptimize-strlen option.
+ * Makefile.in (OBJS): Add tree-ssa-strlen.o.
+ (tree-sssa-strlen.o): Add dependencies.
+ * opts.c (default_options_table): Enable -foptimize-strlen
+ by default at -O2 if not -Os.
+ * passes.c (init_optimization_passes): Add pass_strlen
+ after pass_object_sizes.
+ * timevar.def (TV_TREE_STRLEN): New timevar.
+ * params.def (PARAM_MAX_TRACKED_STRLENS): New parameter.
+ * tree-pass.h (pass_strlen): Declare.
+ * tree-ssa-strlen.c: New file.
+ * c-decl.c (merge_decls): If compatible stpcpy prototype
+ is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
+
+2011-09-27 Tom de Vries <tom@codesourcery.com>
+
+ PR middle-end/43864
+ * tree-ssa-tail-merge.c: New file.
+ (struct same_succ_def): Define.
+ (same_succ, const_same_succ): New typedef.
+ (struct bb_cluster_def): Define.
+ (bb_cluster, const_bb_cluster): New typedef.
+ (struct aux_bb_info): Define.
+ (BB_SIZE, BB_SAME_SUCC, BB_CLUSTER, BB_VOP_AT_EXIT): Define.
+ (gvn_uses_equal): New function.
+ (same_succ_print, same_succ_print_traverse, update_dep_bb)
+ (stmt_update_dep_bb, local_def, same_succ_hash)
+ (inverse_flags, same_succ_equal, same_succ_alloc, same_succ_delete)
+ (same_succ_reset): New function.
+ (same_succ_htab, same_succ_edge_flags)
+ (deleted_bbs, deleted_bb_preds): New var.
+ (debug_same_succ): New function.
+ (worklist): New var.
+ (print_worklist, add_to_worklist, find_same_succ_bb, find_same_succ)
+ (init_worklist, delete_worklist, delete_basic_block_same_succ)
+ (same_succ_flush_bbs, purge_bbs, update_worklist): New function.
+ (print_cluster, debug_cluster, update_rep_bb)
+ (add_bb_to_cluster, new_cluster, delete_cluster): New function.
+ (all_clusters): New var.
+ (alloc_cluster_vectors, reset_cluster_vectors, delete_cluster_vectors)
+ (merge_clusters, set_cluster): New function.
+ (gimple_equal_p, gsi_advance_bw_nondebug_nonlocal, find_duplicate)
+ (same_phi_alternatives_1, same_phi_alternatives, bb_has_non_vop_phi)
+ (deps_ok_for_redirect_from_bb_to_bb, deps_ok_for_redirect)
+ (find_clusters_1, find_clusters): New function.
+ (update_vuses, vop_phi, vop_at_entry, replace_block_by): New function.
+ (update_bbs): New var.
+ (apply_clusters): New function.
+ (update_debug_stmt, update_debug_stmts): New function.
+ (tail_merge_optimize): New function.
+ tree-pass.h (tail_merge_optimize): Declare.
+ * tree-ssa-pre.c (execute_pre): Use tail_merge_optimize.
+ * Makefile.in (OBJS-common): Add tree-ssa-tail-merge.o.
+ (tree-ssa-tail-merge.o): New rule.
+ * opts.c (default_options_table): Set OPT_ftree_tail_merge by default at
+ OPT_LEVELS_2_PLUS.
+ * tree-ssa-sccvn.c (vn_valueize): Move to ...
+ * tree-ssa-sccvn.h (vn_valueize): Here.
+ * timevar.def (TV_TREE_TAIL_MERGE): New timevar.
+ * common.opt (ftree-tail-merge): New switch.
+ * params.def (PARAM_MAX_TAIL_MERGE_COMPARISONS)
+ (PARAM_MAX_TAIL_MERGE_ITERATIONS): New parameter.
+ * doc/invoke.texi (Optimization Options, -O2): Add -ftree-tail-merge.
+ (-ftree-tail-merge, max-tail-merge-comparisons)
+ (max-tail-merge-iterations): New item.
+
+2011-09-27 Jan Hubicka <jh@suse.cz>
+
+ * ipa-inline-analysis.c (MAX_TIME): Reduce to avoid overflows.
+
+2011-09-27 Jan Hubicka <jh@suse.cz>
+
+ * ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle parameters
+ passed by reference; handle loads from non-SSA scalars and update comments.
+
+2011-09-27 Bernd Schmidt <bernds@codesourcery.com>
+
+ PR rtl-optimization/50249
+ * reload1.c (reload_reg_reaches_end_p): Accept a reloadnum argument
+ instead of opnum and type. All callers changed. Remove useless
+ declaration.
+ Search forward for other reloads of the same type for the same operand
+ using the same register; if any are found, return false.
+ (reload_regs_reach_end_p): Same argument changes; all callers changed.
+
+2011-09-27 Andi Kleen <ak@linux.intel.com>
+ Jan Hubicka <jh@suse.cz>
+
+ * doc/invoke.texi (ffat-lto-objects): Document.
+ * toplev.c (compile_file): Do not output assembly when doing slim lto;
+ Output __gnu_slim_lto when doing slim lto.
+ * cgraphunit.c (ipa_passes): Do only analysis when producing slim lto.
+ (cgraph_optimize): Return early when doing slim lto.
+ * opts.c (finish_options): Complain about lack of linker plugin
+ when doing slim lto.
+ * common.opt (ffat-lto-objects): New.
+
+2011-09-27 Richard Sandiford <richard.sandiford@linaro.org>
+
+ * ipa-inline-analysis.c (predicate_probability): Avoid comparison
+ between signed and unsigned.
+
+2011-09-27 Ira Rosen <ira.rosen@linaro.org>
+
+ * tree-vect-stmts.c (vectorizable_type_demotion): Handle basic block
+ vectorization.
+ (vectorizable_type_promotion): Likewise.
+ (vect_analyze_stmt): Call vectorizable_type_demotion and
+ vectorizable_type_promotion for basic blocks.
+ (supportable_widening_operation): Don't assume loop vectorization.
+ * tree-vect-slp.c (vect_build_slp_tree): Allow multiple types for
+ basic blocks. Update vectorization factor for basic block
+ vectorization.
+ (vect_analyze_slp_instance): Allow multiple types for basic block
+ vectorization. Recheck unrolling factor after construction of SLP
+ instance.
+
+2011-09-27 Richard Guenther <rguenther@suse.de>
+
+ * tree-object-size.c (compute_object_sizes): Fix dumping of
+ folded statement.
+
+2011-09-27 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/50363
+ * tree-ssa-pre.c (create_expression_by_pieces): Handle
+ pointer conversions in POINTER_PLUS_EXPRs properly.
+
+2011-09-27 Richard Sandiford <richard.sandiford@linaro.org>
+
+ * config/arm/neon.md (neon_vget_highv16qi, neon_vget_highv8hi)
+ (neon_vget_highv4si, neon_vget_highv4sf, neon_vget_highv2di)
+ (neon_vget_lowv16qi, neon_vget_lowv8hi, neon_vget_lowv4si)
+ (neon_vget_lowv4sf, neon_vget_lowv2di): Turn into define_expands
+ that produce subreg moves. Define using VQX iterators.
+
+2011-09-27 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/avr.md (ashrqi3): Split alternative "n"
+ into its remaining parts C03, C04, C05, C06, C07 and describe
+ impact in CC by attribute "cc" appropriately.
+ * config/avr/avr.c (notice_update_cc): Clean-up: Don't patch CC0
+ by digging RTX.
+
+2011-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ * rtl.h (const_tiny_rtx): Change into array of 4 x MAX_MACHINE_MODE
+ from 3 x MAX_MACHINE_MODE.
+ (CONSTM1_RTX): Define.
+ * emit-rtl.c (const_tiny_rtx): Change into array of 4 x MAX_MACHINE_MODE
+ from 3 x MAX_MACHINE_MODE.
+ (gen_rtx_CONST_VECTOR): Use CONSTM1_RTX if all inner constants are
+ CONSTM1_RTX.
+ (init_emit_once): Initialize CONSTM1_RTX for MODE_INT and
+ MODE_VECTOR_INT modes.
+ * simplify-rtx.c (simplify_binary_operation_1) <case IOR, XOR, AND>:
+ Optimize if one operand is CONSTM1_RTX.
+ * config/i386/i386.c (ix86_expand_sse_movcc): Optimize mask ? -1 : x
+ into mask | x.
+
+2011-09-26 David S. Miller <davem@davemloft.net>
+
+ * config/sparc/sparc.md (edge{8,16,32}{,l}): Return Pmode.
+ (fcmp{le,ne,gt,eq}{16,32}): Likewise.
+ * config/sparc/visintrin.h: Update edge and pixel-compare
+ intrinsics to return 'long' instead of 'int'.
+ * doc/extend.texi: Update documentation to match.
+ * config/sparc/sparc.c (eligible_for_return_delay): When leaf or
+ flat, allow any instruction. Otherwise, when V9 allow parallels
+ which consist only of sets to registers outside of %o0 to %o5.
+ (sparc_vis_init_builtins): Update VIS builtin types for edge
+ and pixel-compare.
+
+ * config/sparc/sparc.c (sparc_conditional_register_usage): When VIS
+ is enabled, mark %gsr as global.
+ * config/sparc/sparc.md (UNSPEC_WRGSR): Delete.
+ (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus): Don't wrap in an unspec.
+
+ * config/sparc/sparc-c.c: New file implementing sparc_target_macros,
+ which will now define __VIS and __VIS__ when -mvis is enabled.
+ * config/sparc/t-sparc: Likewise.
+ * config.gcc: Add sparc-c.o to c_target_objs and cxx_target_objs,
+ and add t-sparc to tmake_file for all sparc targets.
+ * config/sparc/sparc-protos.h (sparc_target_macros): Declare.
+ * config/sparc/sparc.h (TARGE_CPU_CPP_BUILTINS): Call it.
+
+ * config/sparc/sparc.c (sparc_vis_init_builtins): Add explicit
+ builtins for VIS vector addition and subtraction.
+ * config/sparc/visintrin.h (__vis_fpadd16, __vis_fpadd16s,
+ __vis_fpadd32, __vis_fpadd32s, __vis_fpsub16, __vis_fpsub16s,
+ __vis_fpsub32, __vis_fpsub32s): New.
+ * doc/extend.texi: Document new VIS intrinsics.
+
+2011-09-26 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/avr.md (peephole casesi+2): Use -1 instead of 65536.
+ * config/avr/avr.c (avr_out_compare): Print shorter sequence for
+ EQ/NE comparisons against +/-1 in the case of unused-after,
+ non-ld-regs target.
+
+2011-09-26 Jakub Jelinek <jakub@redhat.com>
+
+ * gimple-fold.c (gimplify_and_update_call_from_tree): Set
+ gctx.into_ssa after push_gimplify_context.
+
+ * gimple.c (gimple_build_call_valist): New function.
+ * gimple.h (gimple_build_call_valist): New prototype.
+ * tree-ssa-propagate.c (finish_update_gimple_call): New function.
+ (update_gimple_call): Likewise.
+ (update_call_from_tree): Use finish_update_gimple_call.
+ * tree-ssa-propagate.h (update_gimple_call): New prototype.
+
+2011-09-26 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/50472
+ * gimple-fold.c (fold_const_aggregate_ref_1): Do not fold
+ volatile references.
+
+2011-09-26 Bingfeng Mei <bmei@broadcom.com>
+
+ * doc/tm.texi: Correct documentation for TARGET_ADDR_SPACE_SUBSET_P.
+ * target.def: (addr_space_subset_p): Likewise.
+
+2011-09-26 Tom de Vries <tom@codesourcery.com>
+
+ * tree-ssa-alias.h (pt_solution_singleton_p): Declare.
+ * tree-ssa-structalias.c (pt_solution_singleton_p): New function.
+ * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Set points-to solution
+ of new var.
+
2011-09-26 Georg-Johann Lay <avr@gjlay.de>
PR target/50465