aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2011-09-27common.opt: Add -foptimize-strlen option.Jakub Jelinek1-0/+1
* 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
2011-09-27common.opt: Add -foptimize-strlen option.Jakub Jelinek1-0/+8
* 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
2011-09-27common.opt: Add -foptimize-strlen option.Jakub Jelinek38-4/+3671
* 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
2011-09-27re PR middle-end/43864 (Same basic blocks should be merged)Tom de Vries7-2/+120
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
2011-09-27re PR middle-end/43864 (Same basic blocks should be merged)Tom de Vries12-16/+1824
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
2011-09-27* ipa-inline-analysis.c (MAX_TIME): Reduce to avoid overflows.Jan Hubicka2-1/+5
From-SVN: r179274
2011-09-27inline-5.c: New testcase.Jan Hubicka4-9/+100
* 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
2011-09-27re PR rtl-optimization/50249 (ira marks wrong value for inheriting)Bernd Schmidt2-14/+37
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
2011-09-27invoke.texi (ffat-lto-objects): Document.Andi Kleen6-30/+87
* 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
2011-09-27ipa-inline-analysis.c (predicate_probability): Avoid comparison between ↵Richard Sandiford2-4/+9
signed and unsigned. gcc/ * ipa-inline-analysis.c (predicate_probability): Avoid comparison between signed and unsigned. From-SVN: r179268
2011-09-27tree-vect-stmts.c (vectorizable_type_demotion): Handle basic block ↵Ira Rosen7-34/+177
vectorization. * 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
2011-09-27target-supports.exp (check_profiling_available): Don't rely solely on TLS ↵Bernd Schmidt2-4/+7
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
2011-09-27a-cbhase.adb, [...]: Add iterator machinery to bounded sets and indefinite sets.Ed Schonberg17-239/+989
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
2011-09-27tree-object-size.c (compute_object_sizes): Fix dumping of folded statement.Richard Guenther2-4/+6
2011-09-27 Richard Guenther <rguenther@suse.de> * tree-object-size.c (compute_object_sizes): Fix dumping of folded statement. From-SVN: r179259
2011-09-27[multiple changes]Arnaud Charlet10-65/+245
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
2011-09-27[multiple changes]Arnaud Charlet4-4/+90
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
2011-09-27[multiple changes]Arnaud Charlet4-9/+72
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
2011-09-27[multiple changes]Arnaud Charlet7-17/+47
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
2011-09-27[multiple changes]Arnaud Charlet10-9/+74
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
2011-09-27s-osinte-hpux.ads, [...]: Revert previous changes.Pascal Obry31-453/+112
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
2011-09-27[multiple changes]Arnaud Charlet13-76/+90
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
2011-09-27s-taprop.ads (Initialize_Lock): New spec for r/w lock.Pascal Obry26-40/+462
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
2011-09-27exp_ch9.adb, [...]: Minor reformatting.Pascal Obry10-19/+136
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
2011-09-27rtsfind.ads: Add RE_Lock_Read_Only into rtsfind circuitry.Pascal Obry7-17/+42
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
2011-09-27re PR tree-optimization/50363 (internal compiler error: verify_gimple failed)Richard Guenther4-5/+30
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
2011-09-27gcc/Richard Sandiford2-172/+24
* 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
2011-09-27avr.md (ashrqi3): Split alternative "n" into its remaining parts C03...Georg-Johann Lay3-25/+13
* 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
2011-09-27rtl.h (const_tiny_rtx): Change into array of 4 x MAX_MACHINE_MODE from 3 x ↵Jakub Jelinek5-11/+43
MAX_MACHINE_MODE. * 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
2011-09-26Add explicit VIS intrinsics for addition and subtraction.David S. Miller6-0/+155
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
2011-09-26fix ChangeLogJason Merrill1-1/+1
From-SVN: r179233
2011-09-26re PR c++/45012 (Invalid ambiguity on partial class specialization matching)Jason Merrill4-1/+33
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
2011-09-26re PR c++/46105 (Ordering failure among partial specializations with ↵Jason Merrill4-1/+36
non-deduced context) PR c++/46105 * typeck.c (structural_comptypes): Ignore cv-quals on typename scope. From-SVN: r179229
2011-09-26re PR c++/50508 ([C++0x] ICE cxx_eval_logical_expression cp/semantics.c:6487)Jason Merrill4-2/+24
PR c++/50508 * semantics.c (cxx_eval_logical_expression): Use tree_int_cst_equal rather than ==. From-SVN: r179228
2011-09-26Improve code generation for edge and pixel-compare...David S. Miller8-112/+185
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
2011-09-27re PR c++/45487 (Request to change comma to semicolon in error message)Paolo Carlini5-7/+38
/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
2011-09-27Daily bump.GCC Administrator1-1/+1
From-SVN: r179225
2011-09-26Add rdgsr, edge, and pixel-compare VIS tests.David S. Miller4-0/+104
gcc/testsuite/ * gcc.target/sparc/rdgsr.c: New test. * gcc.target/sparc/edge.c: New test. * gcc.target/sparc/fcmp.c: New test. From-SVN: r179215
2011-09-26Fix sparc %gsr write elimination and add a testcase.David S. Miller5-7/+30
gcc/ * 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. gcc/testsuite/ * gcc.target/sparc/wrgsr.c: New test. From-SVN: r179214
2011-09-26re PR fortran/50515 (gfortran should not accept an external that is a common ↵Janus Weil11-16/+76
(r178939)) 2011-09-26 Janus Weil <janus@gcc.gnu.org> PR fortran/50515 * resolve.c (resolve_common_blocks): Check for EXTERNAL attribute. PR fortran/50517 * interface.c (gfc_compare_interfaces): Bugfix in check for result type. 2011-09-26 Janus Weil <janus@gcc.gnu.org> PR fortran/50515 * gfortran.dg/common_15.f90: New. PR fortran/50517 * gfortran.dg/dummy_procedure_5.f90: New. * gfortran.dg/interface_26.f90: Modified error message. * gfortran.dg/proc_ptr_11.f90: Ditto. * gfortran.dg/proc_ptr_15.f90: Ditto. * gfortran.dg/proc_ptr_comp_20.f90: Ditto. * gfortran.dg/proc_ptr_result_5.f90: Ditto. From-SVN: r179213
2011-09-26Fix location of error about unused import "unsafe".Ian Lance Taylor1-0/+1
From-SVN: r179211
2011-09-26Move target CPP macro handling to C file and add __VIS/__VIS__.David S. Miller6-31/+119
* 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. From-SVN: r179210
2011-09-26re PR c++/50512 (surprising change in overloading resolution)Jason Merrill4-8/+30
PR c++/50512 * call.c (compare_ics): Only consider rvaluedness_matches_p if the target type is the same or it too differs in rvalueness. From-SVN: r179208
2011-09-26avr.md (peephole casesi+2): Use -1 instead of 65536.Georg-Johann Lay3-1/+39
* 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. From-SVN: r179206
2011-09-26gimple-fold.c (gimplify_and_update_call_from_tree): Set gctx.into_ssa after ↵Jakub Jelinek6-17/+78
push_gimplify_context. * 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. From-SVN: r179204
2011-09-26re PR c++/50523 (C++ FE apparently incorrectly rejects tramp3d)Jason Merrill4-3/+29
PR c++/50523 * call.c (implicit_conversion): Mask out inappropriate LOOKUP flags at the top of the function. From-SVN: r179203
2011-09-26* pt.c (tsubst_copy) [PARM_DECL]: Handle 'this' in NSDMI.Jason Merrill5-0/+37
From-SVN: r179201
2011-09-26pt.c (convert_nontype_argument): Handle NULLPTR_TYPE.Paolo Carlini4-0/+24
/cp 2011-09-26 Paolo Carlini <paolo.carlini@oracle.com> * pt.c (convert_nontype_argument): Handle NULLPTR_TYPE. /testsuite 2011-09-26 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/cpp0x/nullptr25.C: New. From-SVN: r179199
2011-09-26re PR c++/26747 (bad break/continue is not detected until the gimplifier)Paolo Carlini2-10/+5
2011-09-26 Paolo Carlini <paolo.carlini@oracle.com> PR c++/26747 * cp-gimplify.c (get_bc_label): Remove obsolete diagnostics. From-SVN: r179198
2011-09-26re PR tree-optimization/50472 (Volatile qualification in data is not enough ↵Richard Guenther4-0/+27
to avoid optimization over pointer to data) 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. * gcc.dg/torture/pr50472.c: New testcase. From-SVN: r179196
2011-09-26tm.texi: Correct documentation for TARGET_ADDR_SPACE_SUBSET_P.Bingfeng Mei3-2/+6
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. From-SVN: r179195