1. 27 Sep, 2011 40 commits
    • ifcvt.c (cheap_bb_rtx_cost_p): Add SCALE argument. · 16a275d2
      	* 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.
      
      From-SVN: r179284
      Jeff Law committed
    • re PR middle-end/49463 (LTO doesn't work symbol renamed via asm statement) · 9b7ab6d6
      	PR middle-end/49463
      	* gcc.c-torture/execute/builtins/strstr-asm-lib.c
      	(my_strstr): Mark used.
      
      From-SVN: r179280
      Jan Hubicka committed
    • common.opt: Add -foptimize-strlen option. · d8878031
      	* 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].
      cp/
      	* decl.c (duplicate_decls): If compatible stpcpy prototype
      	is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
      testsuite/
      	* gcc.dg/strlenopt-1.c: New test.
      	* gcc.dg/strlenopt-1f.c: New test.
      	* gcc.dg/strlenopt-2.c: New test.
      	* gcc.dg/strlenopt-2f.c: New test.
      	* gcc.dg/strlenopt-3.c: New test.
      	* gcc.dg/strlenopt-4.c: New test.
      	* gcc.dg/strlenopt-4g.c: New test.
      	* gcc.dg/strlenopt-4gf.c: New test.
      	* gcc.dg/strlenopt-5.c: New test.
      	* gcc.dg/strlenopt-6.c: New test.
      	* gcc.dg/strlenopt-7.c: New test.
      	* gcc.dg/strlenopt-8.c: New test.
      	* gcc.dg/strlenopt-9.c: New test.
      	* gcc.dg/strlenopt-10.c: New test.
      	* gcc.dg/strlenopt-11.c: New test.
      	* gcc.dg/strlenopt-12.c: New test.
      	* gcc.dg/strlenopt-12g.c: New test.
      	* gcc.dg/strlenopt-13.c: New test.
      	* gcc.dg/strlenopt-14g.c: New test.
      	* gcc.dg/strlenopt-14gf.c: New test.
      	* gcc.dg/strlenopt-15.c: New test.
      	* gcc.dg/strlenopt-16g.c: New test.
      	* gcc.dg/strlenopt-17g.c: New test.
      	* gcc.dg/strlenopt-18g.c: New test.
      	* gcc.dg/strlenopt.h: New file.
      
      From-SVN: r179279
      Jakub Jelinek committed
    • common.opt: Add -foptimize-strlen option. · 19ecbcbc
      	* 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].
      cp/
      	* decl.c (duplicate_decls): If compatible stpcpy prototype
      	is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
      testsuite/
      	* gcc.dg/strlenopt-1.c: New test.
      	* gcc.dg/strlenopt-1f.c: New test.
      	* gcc.dg/strlenopt-2.c: New test.
      	* gcc.dg/strlenopt-2f.c: New test.
      	* gcc.dg/strlenopt-3.c: New test.
      	* gcc.dg/strlenopt-4.c: New test.
      	* gcc.dg/strlenopt-4g.c: New test.
      	* gcc.dg/strlenopt-4gf.c: New test.
      	* gcc.dg/strlenopt-5.c: New test.
      	* gcc.dg/strlenopt-6.c: New test.
      	* gcc.dg/strlenopt-7.c: New test.
      	* gcc.dg/strlenopt-8.c: New test.
      	* gcc.dg/strlenopt-9.c: New test.
      	* gcc.dg/strlenopt-10.c: New test.
      	* gcc.dg/strlenopt-11.c: New test.
      	* gcc.dg/strlenopt-12.c: New test.
      	* gcc.dg/strlenopt-12g.c: New test.
      	* gcc.dg/strlenopt-13.c: New test.
      	* gcc.dg/strlenopt-14g.c: New test.
      	* gcc.dg/strlenopt-14gf.c: New test.
      	* gcc.dg/strlenopt-15.c: New test.
      	* gcc.dg/strlenopt-16g.c: New test.
      	* gcc.dg/strlenopt-17g.c: New test.
      	* gcc.dg/strlenopt-18g.c: New test.
      	* gcc.dg/strlenopt.h: New file.
      
      From-SVN: r179278
      Jakub Jelinek committed
    • common.opt: Add -foptimize-strlen option. · 8b57bfeb
      	* 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].
      cp/
      	* decl.c (duplicate_decls): If compatible stpcpy prototype
      	is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
      testsuite/
      	* gcc.dg/strlenopt-1.c: New test.
      	* gcc.dg/strlenopt-1f.c: New test.
      	* gcc.dg/strlenopt-2.c: New test.
      	* gcc.dg/strlenopt-2f.c: New test.
      	* gcc.dg/strlenopt-3.c: New test.
      	* gcc.dg/strlenopt-4.c: New test.
      	* gcc.dg/strlenopt-4g.c: New test.
      	* gcc.dg/strlenopt-4gf.c: New test.
      	* gcc.dg/strlenopt-5.c: New test.
      	* gcc.dg/strlenopt-6.c: New test.
      	* gcc.dg/strlenopt-7.c: New test.
      	* gcc.dg/strlenopt-8.c: New test.
      	* gcc.dg/strlenopt-9.c: New test.
      	* gcc.dg/strlenopt-10.c: New test.
      	* gcc.dg/strlenopt-11.c: New test.
      	* gcc.dg/strlenopt-12.c: New test.
      	* gcc.dg/strlenopt-12g.c: New test.
      	* gcc.dg/strlenopt-13.c: New test.
      	* gcc.dg/strlenopt-14g.c: New test.
      	* gcc.dg/strlenopt-14gf.c: New test.
      	* gcc.dg/strlenopt-15.c: New test.
      	* gcc.dg/strlenopt-16g.c: New test.
      	* gcc.dg/strlenopt-17g.c: New test.
      	* gcc.dg/strlenopt-18g.c: New test.
      	* gcc.dg/strlenopt.h: New file.
      
      From-SVN: r179277
      Jakub Jelinek committed
    • re PR middle-end/43864 (Same basic blocks should be merged) · baaa40ae
      2011-09-27  Tom de Vries  <tom@codesourcery.com>
      
      	PR middle-end/43864
      	* gcc.dg/fold-compare-2.c (dg-options): Add -fno-tree-tail-merge.
      	* gcc/testsuite/gcc.dg/uninit-pred-2_c.c: Same.
      	* gcc.dg/pr43864.c: New test.
      	* gcc.dg/pr43864-2.c: Same.
      	* gcc.dg/pr43864-3.c: Same.
      	* gcc.dg/pr43864-4.c: Same.
      
      From-SVN: r179276
      Tom de Vries committed
    • re PR middle-end/43864 (Same basic blocks should be merged) · c9e93168
      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.
      
      From-SVN: r179275
      Tom de Vries committed
    • * ipa-inline-analysis.c (MAX_TIME): Reduce to avoid overflows. · 99e299a8
      From-SVN: r179274
      Jan Hubicka committed
    • inline-5.c: New testcase. · 2ceb2339
      	* gcc.dg/ipa/inline-5.c: New testcase.
      	* ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle parameters
      	passed by reference; handle loads from non-SSA scalars and update comments.
      
      From-SVN: r179273
      Jan Hubicka committed
    • re PR rtl-optimization/50249 (ira marks wrong value for inheriting) · 0b47c1a9
      	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.
      
      From-SVN: r179272
      Bernd Schmidt committed
    • invoke.texi (ffat-lto-objects): Document. · cc8547a7
      	* 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.
      
      Co-Authored-By: Jan Hubicka <jh@suse.cz>
      
      From-SVN: r179271
      Andi Kleen committed
    • mksysinfo: Fix for systems that don't define TIOCSCTTY. · 3019bbae
      From Rainer Orth.
      
      From-SVN: r179269
      Ian Lance Taylor committed
    • ipa-inline-analysis.c (predicate_probability): Avoid comparison between signed and unsigned. · 0578e417
      gcc/
      	* ipa-inline-analysis.c (predicate_probability): Avoid comparison
      	between signed and unsigned.
      
      From-SVN: r179268
      Richard Sandiford committed
    • tree-vect-stmts.c (vectorizable_type_demotion): Handle basic block vectorization. · 4ef69dfc
      
              * 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.
      
      From-SVN: r179267
      Ira Rosen committed
    • target-supports.exp (check_profiling_available): Don't rely solely on TLS tests… · d22c9c31
      target-supports.exp (check_profiling_available): Don't rely solely on TLS tests for -fprofile-generate...
      
      	* testsuite/lib/target-supports.exp (check_profiling_available):
      	Don't rely solely on TLS tests for -fprofile-generate, fall
      	through to the other code.
      
      From-SVN: r179263
      Bernd Schmidt committed
    • a-cbhase.adb, [...]: Add iterator machinery to bounded sets and indefinite sets. · ffb35bbf
      2011-09-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* a-cbhase.adb, a-cbhase.ads, a-cborse.adb, a-cborse.ads,
      	a-cihase.adb, a-cihase.ads, a-ciorse.adb, a-ciorse.ads,
      	a-coorse.adb, a-coorse.ads: Add iterator machinery to bounded sets and
      	indefinite sets.
      	* a-coorma.ads: Minor reformmating.
      	* einfo.ads: Improve the comment describing the
      	Directly_Designated_Type function.
      	* a-ciorma.adb, a-ciorma.ads: Add iterator machinery to indefinite
      	ordered maps.
      	* gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Update
      	dependencies.
      
      From-SVN: r179260
      Ed Schonberg committed
    • tree-object-size.c (compute_object_sizes): Fix dumping of folded statement. · 862a84f5
      2011-09-27  Richard Guenther  <rguenther@suse.de>
      
      	* tree-object-size.c (compute_object_sizes): Fix dumping of
      	folded statement.
      
      From-SVN: r179259
      Richard Guenther committed
    • [multiple changes] · da124b6a
      2011-09-27  Robert Dewar  <dewar@adacore.com>
      
      	* a-comutr.ads: Minor reformatting.
      
      2011-09-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* a-cimutr.adb, a-cimutr.ads, a-cbmutr.adb, a-cbmutr.ads: Add children
      	iterators to multiway trees.
      
      2011-09-27  Yannick Moy  <moy@adacore.com>
      
      	* debug.adb (d.D): New option for strict Alfa mode.
      	* opt.ads (Strict_Alfa_Mode): New flag to interpret compiler
      	permissions as strictly as possible.
      	* sem_ch3.adb (Signed_Integer_Type_Declaration): In non-strict
      	Alfa mode, now, interpret ranges of base types like GNAT does; in
      	strict mode, simply change the range of the implicit base Itype.
      	* gnat1drv.adb: Update comments. Set Strict_Alfa_Mode.
      
      From-SVN: r179258
      Arnaud Charlet committed
    • [multiple changes] · 706a4067
      2011-09-27  Robert Dewar  <dewar@adacore.com>
      
      	* exp_ch9.adb: Minor comment fixes.
      
      2011-09-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* a-comutr.adb, a-comutr.ads: Add children iterators on multiway
      	trees.
      
      From-SVN: r179257
      Arnaud Charlet committed
    • [multiple changes] · 05c1e7d2
      2011-09-27  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* checks.adb (Apply_Scalar_Range_Check): Use Designated_Type
      	instead of Directly_Designated_Type in the indirect array case.
      
      2011-09-27  Robert Dewar  <dewar@adacore.com>
      
      	* exp_util.adb, exp_aggr.adb: Minor reformatting.
      
      From-SVN: r179256
      Arnaud Charlet committed
    • [multiple changes] · 65e78a74
      2011-09-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* sinfo.ads, par-ch3.adb: Minor comment update: aspect specification
      	on subtype declarations.
      	* exp_aggr.adb: Minor comment update.
      
      2011-09-27  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* exp_util.adb (Safe_Prefixed_Reference): Remove always-false
      	test in the N_Explicit_Dereference case.  Fold double logical
      	negation in the special loop case and conditionalize it on
      	Variable_Ref being true.
      
      2011-09-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch4.adb (Analyze_Selected_Component): If the prefix is a
      	single protected object and the selector is a discriminant or an
      	entry family, this is a non-overloaded candidate interpretation,
      	and possible primitive operations of the type must not be
      	examined.
      
      2011-09-27  Arnaud Charlet  <charlet@adacore.com>
      
      	* s-taspri-posix-noaltstack.ads (Lock): Mark fields aliased.
      
      From-SVN: r179255
      Arnaud Charlet committed
    • [multiple changes] · 6f5add73
      2011-09-27  Pascal Obry  <obry@adacore.com>
      
      	* s-osinte-hpux.ads, s-osinte-aix.ads, s-osinte-solaris-posix.ads,
      	s-osinte-irix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads:
      	Add dummy definitions for pthread_rwlock_t
      	and pthread_rwlockattr_t on all POSIX platforms.
      	* s-taprop-irix.adb, s-taprop-posix.adb (Initialize_Lock): Fix lock
      	reference.
      	(Finalize_Lock): Likewise.
      	(Write_Lock): Likewise.
      	(Unlock): Likewise.
      
      2011-09-27  Tristan Gingold  <gingold@adacore.com>
      
      	* s-tassta.adb (Task_Wrapper): Increase Guard_Page_Size value for
      	windows 64.
      
      From-SVN: r179254
      Arnaud Charlet committed
    • s-osinte-hpux.ads, [...]: Revert previous changes. · 64a63cd5
      2011-09-27  Pascal Obry  <obry@adacore.com>
      
      	* s-osinte-hpux.ads, s-taprop-vxworks.adb, s-taspri-vxworks.ads,
      	s-taprop-tru64.adb, s-osinte-aix.ads, s-taspri-posix-noaltstack.ads,
      	s-taspri-mingw.ads, s-taprop-vms.adb, s-tpoben.adb, s-tpoben.ads,
      	s-taprop-mingw.adb, s-taprob.adb, s-taprob.ads,
      	s-osinte-solaris-posix.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
      	s-osinte-irix.ads, s-taprop-irix.adb, s-osinte-darwin.ads,
      	s-taspri-dummy.ads, s-taspri-posix.ads, s-taprop.ads,
      	s-taspri-vms.ads, s-osinte-freebsd.ads, s-taprop-hpux-dce.adb,
      	s-taspri-hpux-dce.ads, s-taspri-tru64.ads, s-taprop-dummy.adb,
      	s-taprop-posix.adb: Revert previous changes.
      	(Lock): Now a record containing the two possible lock
      	(mutex and read/write) defined in OS_Interface.
      	* s-taprop-linux.adb (Finalize_Protection): Use r/w lock for
      	'R' locking policy.
      	(Initialize_Protection): Likewise.
      	(Lock): Likewise.
      	(Lock_Read_Only): Likewise.
      	(Unlock): Likewise.
      
      From-SVN: r179253
      Pascal Obry committed
    • [multiple changes] · f672a756
      2011-09-27  Pascal Obry  <obry@adacore.com>
      
      	* s-taspri-posix-noaltstack.ads (RW_Lock): This type is now defined as
      	OS_Interface.pthread_rwlock_t.
      
      2011-09-27  Robert Dewar  <dewar@adacore.com>
      
      	* exp_ch9.adb, a-cimutr.adb, a-cimutr.ads, gnat1drv.adb, a-comutr.adb,
      	a-comutr.ads, exp_dist.adb, a-cbmutr.adb, a-cbmutr.ads,
      	sem_ch5.adb, sem_util.adb: Minor reformatting.
      
      From-SVN: r179252
      Arnaud Charlet committed
    • s-taprop.ads (Initialize_Lock): New spec for r/w lock. · 7a44cb69
      2011-09-27  Pascal Obry  <obry@adacore.com>
      
      	* s-taprop.ads (Initialize_Lock)[RW_Lock]: New spec for r/w lock.
      	(Finalize_Lock)[RW_Lock]: Likewise.
      	(Write_Lock)[RW_Lock]: Likewise.
      	(Unlock)[RW_Lock]: Likewise.
      	(Read_Lock): Define L as RW_Lock (instead of Lock).
      	* s-taprop-linux.adb (Initialize_Lock)[RW_Lock]: New
      	routine for r/w lock.
      	(Finalize_Lock)[RW_Lock]: Likewise.
      	(Write_Lock)[RW_Lock]: Likewise.
      	(Unlock)[RW_Lock]: Likewise.
      	(Read_Lock): Define L as RW_Lock (instead of Lock).
      
      	* s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
      	s-taprop-mingw.adb, s-taprop-solaris.adb, s-taprop-irix.adb,
      	s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-posix.adb
      	(Initialize_Lock)[RW_Lock]: Same implementation as corresponding
      	routine for standard lock.
      	(Finalize_Lock)[RW_Lock]: Likewise.
      	(Write_Lock)[RW_Lock]: Likewise.
      	(Unlock)[RW_Lock]: Likewise.
      	(Read_Lock): Define L as RW_Lock (instead of Lock).
      	* s-taprob.ads, s-tpoben.ads (Protection): Add RWL (RW_Lock)
      	in the record definition.
      	* s-taprob.adb, s-taproben.adb (Finalize_Protection): Use r/w
      	lock for 'R' locking policy.
      	(Initialize_Protection): Likewise.
      	(Lock): Likewise.
      	(Lock_Read_Only): Likewise.
      	(Unlock): Likewise.
      	* s-taspri-posix.ads (RW_Lock): New type defined as
      	OS_Interface.pthread_rwlock_t.
      
      	* s-taspri-vxworks.ads, s-taspri-posix-noaltstack.ads,
      	s-taspri-mingw.ads, s-taspri-solaris.ads, s-taspri-dummy.ads,
      	s-taspri-posix.ads, s-taspri-vms.ads, s-taspri-hpux-dce.ads,
      	s-taspri-tru64.ads (RW_Lock): New type defined as alias to Lock.
      
      From-SVN: r179251
      Pascal Obry committed
    • exp_ch9.adb, [...]: Minor reformatting. · 4c173b50
      2011-09-27  Pascal Obry  <obry@adacore.com>
      
      	* exp_ch9.adb, s-taspri-posix.ads: Minor reformatting.
      
      2011-09-27  Pascal Obry  <obry@adacore.com>
      
      	* s-osinte-aix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads,
      	s-osinte-hpux.ads, s-osinte-irix.ads,
      	s-osinte-solaris-posix.ads (pthread_rwlock_t): New definition alias of
      	pthread_mutex_t.
      	(pthread_rwlockattr_t): New definition alias of pthread_mutexattr_t.
      	* s-osinte-linux.ads (pthread_rwlock_t, pthread_rwlockattr_t,
      	pthread_rwlockattr_init, pthread_rwlockattr_destroy,
      	pthread_rwlockattr_setkind_np, pthread_rwlock_init,
      	pthread_rwlock_destroy, pthread_rwlock_rdlock,
      	pthread_rwlock_wrlock, pthread_rwlock_unlock): New.
      
      From-SVN: r179250
      Pascal Obry committed
    • rtsfind.ads: Add RE_Lock_Read_Only into rtsfind circuitry. · 343250a6
      2011-09-27  Pascal Obry  <obry@adacore.com>
      
      	* rtsfind.ads: Add RE_Lock_Read_Only into rtsfind circuitry.
      	(RE_Id): Add RE_Lock_Read_Only.
      	(RE_Unit_Table): Likewise.
      	* sem_prag.adb (Process_Convention): Change Pragma_Locking_Policy
      	to lift restriction on first character. Handle now the
      	Name_Concurrent_Readers_Locking where policy character is set to
      	'R'.
      	* snames.ads-tmpl (Name_Concurrent_Readers_Locking): New
      	constant.
      	* exp_ch9.adb (Build_Protected_Subprogram_Body): Generate a
      	read only lock for function in protected object.
      	* s-taprob.ads (Lock_Read_Only): Remove obsolete comment as
      	this routine is now used.
      
      From-SVN: r179248
      Pascal Obry committed
    • re PR tree-optimization/50363 (internal compiler error: verify_gimple failed) · 48acf1b7
      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.
      
      	* gcc.dg/torture/pr50363.c: New testcase.
      
      From-SVN: r179247
      Richard Guenther committed
    • gcc/ · ddfd2edf
      	* 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.
      
      From-SVN: r179243
      Richard Sandiford committed
    • avr.md (ashrqi3): Split alternative "n" into its remaining parts C03... · 1cd12949
      	* 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.
      
      From-SVN: r179241
      Georg-Johann Lay committed
    • rtl.h (const_tiny_rtx): Change into array of 4 x MAX_MACHINE_MODE from 3 x MAX_MACHINE_MODE. · e7c82a99
      	* 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.
      
      From-SVN: r179238
      Jakub Jelinek committed
    • tinfo.cc (type_info::operator==): Test __name instead of name(). · 16fa5e23
      2011-09-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
      
      	* libsupc++/tinfo.cc (type_info::operator==): Test __name instead
      	of name().
      
      From-SVN: r179236
      Marcus Shawcroft committed
    • Add explicit VIS intrinsics for addition and subtraction. · f14e0262
      gcc/
      
      	* 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.
      
      gcc/testsuite/
      
      	* gcc.target/sparc/fpaddsubi.c: New test.
      
      From-SVN: r179235
      David S. Miller committed
    • re PR libstdc++/50529 ([C++0x] std::vector::erase invokes undefined behavior with empty range) · a7cee01d
      2011-09-26  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR libstdc++/50529
      	* include/bits/vector.tcc (vector<>::erase(iterator, iterator)):
      	Fix to do nothing if the range is empty.
      	* include/bits/stl_bvector.h: Likewise.
      	* include/bits/deque.tcc: Likewise.
      	* include/debug/vector: Adjust.
      	* include/debug/deque: Likewise.
      	* testsuite/23_containers/vector/modifiers/erase/50529.cc: New.
      	* testsuite/23_containers/deque/modifiers/erase/50529.cc: Likewise.
      	* testsuite/23_containers/deque/modifiers/erase/3.cc: Adjust.
      
      From-SVN: r179234
      Paolo Carlini committed
    • fix ChangeLog · b92edfe5
      From-SVN: r179233
      Jason Merrill committed
    • re PR c++/45012 (Invalid ambiguity on partial class specialization matching) · 9d84dbe6
      	PR c++/45102
      	* pt.c (tsubst_copy_and_build) [CONST_DECL]: Don't pull out
      	constant value if we're still in a template.
      
      From-SVN: r179230
      Jason Merrill committed
    • re PR c++/46105 (Ordering failure among partial specializations with non-deduced context) · 69d28b4f
      	PR c++/46105
      	* typeck.c (structural_comptypes): Ignore cv-quals on typename scope.
      
      From-SVN: r179229
      Jason Merrill committed
    • re PR c++/50508 ([C++0x] ICE cxx_eval_logical_expression cp/semantics.c:6487) · 15442c9c
      	PR c++/50508
      	* semantics.c (cxx_eval_logical_expression): Use tree_int_cst_equal
      	rather than ==.
      
      From-SVN: r179228
      Jason Merrill committed
    • Improve code generation for edge and pixel-compare... · cb8bbba8
      Improve code generation for edge and pixel-compare, specifically avoid
      sign and zero extensions on 64-bit and allow such instructions to be
      placed in delay slots.
      
      gcc/
      
      	* 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.
      
      gcc/testsuite/
      
      	* gcc.target/sparc/edge.c: Update for new return types.
      	* gcc.target/sparc/fcmp.c: Likewise.
      
      From-SVN: r179227
      David S. Miller committed
    • re PR c++/45487 (Request to change comma to semicolon in error message) · ca17c07b
      /cp
      2011-09-26  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/45487
      	* error.c (dump_template_bindings): Separate bindings with semicolons
      	instead of commas.
      
      /testsuite
      2011-09-26  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/45487
      	* g++.dg/diagnostic/bindings1.C: New.
      	* g++.old-deja/g++.pt/memtemp77.C: Adjust.
      
      From-SVN: r179226
      Paolo Carlini committed