1. 29 Sep, 2011 1 commit
  2. 28 Sep, 2011 14 commits
  3. 27 Sep, 2011 25 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
    • 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