1. 29 Sep, 2011 9 commits
    • expr.c (do_store_flag): Expand vector comparison by building an appropriate VEC_COND_EXPR. · d246ab4f
      2011-09-29  Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
      
      	* expr.c (do_store_flag): Expand vector comparison by
      	building an appropriate VEC_COND_EXPR.
      	* c-typeck.c (build_binary_op): Typecheck vector comparisons.
      	(c_objc_common_truthvalue_conversion): Adjust.
      	* tree-vect-generic.c (do_compare): Helper function.
      	(expand_vector_comparison): Check if hardware supports
      	vector comparison of the given type or expand vector
      	piecewise.
      	(expand_vector_operation): Treat comparison as binary
      	operation of vector type.
      	(expand_vector_operations_1): Adjust.
      
      	* gcc.c-torture/execute/vector-compare-1.c: New testcase.
      	* gcc.c-torture/execute/vector-compare-2.c: Likewise.
      	* gcc.dg/vector-compare-1.c: Likewise.
      	* gcc.dg/vector-compare-2.c: Likewise.
      
      From-SVN: r179342
      Artjoms Sinkarovs committed
    • tree.c (build_opaque_vector_type): Make opaque vectors variant types of the… · 7c99ecef
      tree.c (build_opaque_vector_type): Make opaque vectors variant types of the corresponding non-opaque type.
      
      2011-09-29  Richard Guenther  <rguenther@suse.de>
      
      	* tree.c (build_opaque_vector_type): Make opaque vectors
      	variant types of the corresponding non-opaque type.  Make
      	sure to share opaque vector types properly.
      
      From-SVN: r179341
      Richard Guenther committed
    • ChangeLog: Fix whitespace. · 9b0c7202
      	* ChangeLog: Fix whitespace.
      	* testsuite/ChangeLog: Ditto.
      
      From-SVN: r179338
      Uros Bizjak committed
    • Remove unnecessary sparc code attr. · 580bd500
      	* config/sparc/sparc.md (gcond_name): Delete unnecessary code attr.
      	(VIS pixel-compare insn): Just use <gcond:name>.
      
      From-SVN: r179335
      David S. Miller committed
    • Add sparc 3D array addressing VIS intrinsics. · 1ec01ab2
      gcc/
      
      	* config/sparc/sparc.md (UNSPEC_ARRAY8, UNSPEC_ARRAY16,
      	UNSPEC_ARRAY32): New unspec.
      	(define_attr type): New type 'array'.
      	(array{8,16,32}<P:mode>_vis): New patterns.
      	* config/sparc/ultra1_2.md: Add reservations for 'array'.
      	* config/sparc/ultra3.md: Likewise.
      	* config/sparc/niagara.md: Likewise.
      	* config/sparc/niagara2.md: Likewise.
      	* config/sparc/sparc.c (sparc_vis_init_builtins): Build new
      	array builtins.
      	* config/sparc/visintrin.h (__vis_array8, __vis_array16,
      	__vis_array32): New.
      	* doc/extend.texi: Document new VIS builtins.
      
      gcc/testsuite/
      
      	* gcc.target/sparc/array.c: New test.
      
      From-SVN: r179334
      David S. Miller committed
    • darwin9.h (STACK_CHECK_STATIC_BUILTIN): Enable for Darwin >= 9. · 8f931eff
      
      gcc:
      
      	* config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Enable for
      	Darwin >= 9.
      
      From-SVN: r179332
      Iain Sandoe committed
    • predcom-1.c: Explicitly turn on loop unroll and set max unroll times to 8. · 655cd20f
      2011-09-29  Jiangning Liu  <jiangning.liu@arm.com>
      
      	* gcc/testsuite/gcc.dg/tree-ssa/predcom-1.c: Explicitly turn on
      	loop unroll and set max unroll times to 8.
      	* gcc/testsuite/gcc.dg/tree-ssa/predcom-2.c: Likewise.
      	* gcc/testsuite/gcc.dg/tree-ssa/predcom-3.c: Likewise.
      	* gcc/testsuite/gcc.dg/tree-ssa/predcom-4.c: Likewise.
      	* gcc/testsuite/gcc.dg/tree-ssa/predcom-5.c: Likewise.
      
      From-SVN: r179330
      Jiangning Liu committed
    • Respin sparc pixel-compare patterns using iterators. · b3304235
      	* config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE,
      	UNSPEC_FCMPGT, UNSPEC_FCMPEQ): Delete and reduce to...
      	(UNSPEC_FCMP): New unspec.
      	(gcond): New code iterator.
      	(gcond_name): New code attr.
      	(GCM): New mode iterator.
      	(gcm_name): New mode attr.
      	(fcmp{le,ne,gt,eq}{16,32}_vis): Reimplement using iterators.
      
      From-SVN: r179329
      David S. Miller committed
    • Daily bump. · bdcf918b
      From-SVN: r179327
      GCC Administrator committed
  2. 28 Sep, 2011 14 commits
  3. 27 Sep, 2011 17 commits
    • m32r.md: Use match_test rather than eq/ne symbol_ref throughout file. · f18d1d16
      gcc/
      	* config/m32r/m32r.md: Use match_test rather than eq/ne symbol_ref
      	throughout file.
      
      From-SVN: r179297
      Richard Sandiford committed
    • iq2000.md: Use match_test rather than eq/ne symbol_ref throughout file. · b4d58803
      gcc/
      	* config/iq2000/iq2000.md: Use match_test rather than eq/ne symbol_ref
      	throughout file.
      
      From-SVN: r179296
      Richard Sandiford committed
    • mfmovd.c: Extend list of supported targets. · 88778f15
      	* gcc.target/sh/mfmovd.c: Extend list of supported targets.
      	* gcc.target/sh/struct-arg-dw2.c: Fix typo.
      	* gcc.target/sh/sh4a-sincos.c: Make test SH4A only.
      	* gcc.target/sh/sh4a-sincosf.c: Ditto.
      	* gcc.target/sh/sh4a-cos.c: Ditto.
      	* gcc.target/sh/sh4a-cosf.c: Ditto.
      	* gcc.target/sh/sh4a-sin.c: Ditto.
      	* gcc.target/sh/sh4a-sinf.c: Ditto.
      	* gcc.target/sh/sh4a-fsrra.c: Ditto.
      	* gcc.target/sh/sh4a-memmovua.c: Ditto.
      	* gcc.target/sh/sh4a-bitmovua.c: Ditto.
      
      From-SVN: r179295
      Oleg Endo committed
    • re PR c++/31489 (error says struct when it should say class) · 2427db20
      /cp
      2011-09-27  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/31489
      	* parser.c (cp_parser_elaborated_type_specifier): For RECORD_TYPE,
      	set CLASSTYPE_DECLARED_CLASS.
      
      /testsuite
      2011-09-27  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/31489
      	* g++.dg/parse/error40.C: New.
      	* g++.dg/warn/incomplete1.C: Adjust.
      
      From-SVN: r179293
      Paolo Carlini committed
    • trans-types.c (gfc_type_for_size): Return wider type if no suitable narrower type has been found. · 82aa8722
      	* trans-types.c (gfc_type_for_size): Return wider type
      	if no suitable narrower type has been found.
      	(gfc_type_for_mode): Return NULL_TREE if gfc_type_for_size
      	returned type doesn't have expected TYPE_MODE.
      
      From-SVN: r179290
      Jakub Jelinek committed
    • output.h (SECTION_EXCLUDE): New macro. · 4c345757
      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.
      
      From-SVN: r179288
      Sriraman Tallam committed
    • fwprop.c (forward_propagate_and_simplify): After checking reg/subreg… · 8e8af9b7
      fwprop.c (forward_propagate_and_simplify): After checking reg/subreg combinations, check whether the modes are the same.
      
      gcc/
      	* fwprop.c (forward_propagate_and_simplify): After checking
      	reg/subreg combinations, check whether the modes are the same.
      
      From-SVN: r179287
      Richard Sandiford committed
    • mips.c (mips_add_cfa_restore): New function. · a7449961
      gcc/
      2011-09-25  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.
      
      Co-Authored-By: Richard Sandiford <rdsandiford@googlemail.com>
      
      From-SVN: r179286
      Bernd Schmidt committed
    • re PR libgomp/50386 (libgomp.h:87:5: error: unnamed struct/union that defines no instances) · 58ac6459
      gcc/
      	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.
      
      From-SVN: r179285
      Richard Sandiford committed
    • 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