1. 16 Dec, 2013 15 commits
    • re PR rtl-optimization/59466 (Slow code generation by LRA for memory addresses on PPC) · 91c5ee5b
      2013-12-16  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/59466
      	* emit-rtl.c (change_address_1): Don't validate address for LRA.
      	* recog.c (general_operand): Accept any memory for LRA.
      	* lra.c (lra_set_insn_recog_data): Add an assert.
      
      From-SVN: r206023
      Vladimir Makarov committed
    • tree-vectorizer.h (struct _loop_vec_info): Add scalar_loop field. · 7670d795
      	* tree-vectorizer.h (struct _loop_vec_info): Add scalar_loop field.
      	(LOOP_VINFO_SCALAR_LOOP): Define.
      	(slpeel_tree_duplicate_loop_to_edge_cfg): Add scalar_loop argument.
      	* config/i386/sse.md (maskload<mode>, maskstore<mode>): New expanders.
      	* tree-data-ref.c (get_references_in_stmt): Handle MASK_LOAD and
      	MASK_STORE.
      	* internal-fn.def (LOOP_VECTORIZED, MASK_LOAD, MASK_STORE): New
      	internal fns.
      	* tree-if-conv.c: Include expr.h, optabs.h, tree-ssa-loop-ivopts.h and
      	tree-ssa-address.h.
      	(release_bb_predicate): New function.
      	(free_bb_predicate): Use it.
      	(reset_bb_predicate): Likewise.  Don't unallocate bb->aux
      	just to immediately allocate it again.
      	(add_to_predicate_list): Add loop argument.  If basic blocks that
      	dominate loop->latch don't insert any predicate.
      	(add_to_dst_predicate_list): Adjust caller.
      	(if_convertible_phi_p): Add any_mask_load_store argument, if true,
      	handle it like flag_tree_loop_if_convert_stores.
      	(insert_gimplified_predicates): Likewise.
      	(ifcvt_can_use_mask_load_store): New function.
      	(if_convertible_gimple_assign_stmt_p): Add any_mask_load_store
      	argument, check if some conditional loads or stores can't be
      	converted into MASK_LOAD or MASK_STORE.
      	(if_convertible_stmt_p): Add any_mask_load_store argument,
      	pass it down to if_convertible_gimple_assign_stmt_p.
      	(predicate_bbs): Don't return bool, only check if the last stmt
      	of a basic block is GIMPLE_COND and handle that.  Adjust
      	add_to_predicate_list caller.
      	(if_convertible_loop_p_1): Only call predicate_bbs if
      	flag_tree_loop_if_convert_stores and free_bb_predicate in that case
      	afterwards, check gimple_code of stmts here.  Replace is_predicated
      	check with dominance check.  Add any_mask_load_store argument,
      	pass it down to if_convertible_stmt_p and if_convertible_phi_p,
      	call if_convertible_phi_p only after all if_convertible_stmt_p
      	calls.
      	(if_convertible_loop_p): Add any_mask_load_store argument,
      	pass it down to if_convertible_loop_p_1.
      	(predicate_mem_writes): Emit MASK_LOAD and/or MASK_STORE calls.
      	(combine_blocks): Add any_mask_load_store argument, pass
      	it down to insert_gimplified_predicates and call predicate_mem_writes
      	if it is set.  Call predicate_bbs.
      	(version_loop_for_if_conversion): New function.
      	(tree_if_conversion): Adjust if_convertible_loop_p and combine_blocks
      	calls.  Return todo flags instead of bool, call
      	version_loop_for_if_conversion if if-conversion should be just
      	for the vectorized loops and nothing else.
      	(main_tree_if_conversion): Adjust caller.  Don't call
      	tree_if_conversion for dont_vectorize loops if if-conversion
      	isn't explicitly enabled.
      	* tree-vect-data-refs.c (vect_check_gather): Handle
      	MASK_LOAD/MASK_STORE.
      	(vect_analyze_data_refs, vect_supportable_dr_alignment): Likewise.
      	* gimple.h (gimple_expr_type): Handle MASK_STORE.
      	* internal-fn.c (expand_LOOP_VECTORIZED, expand_MASK_LOAD,
      	expand_MASK_STORE): New functions.
      	* tree-vectorizer.c: Include tree-cfg.h and gimple-fold.h.
      	(vect_loop_vectorized_call, fold_loop_vectorized_call): New functions.
      	(vectorize_loops): Don't try to vectorize loops with
      	loop->dont_vectorize set.  Set LOOP_VINFO_SCALAR_LOOP for if-converted
      	loops, fold LOOP_VECTORIZED internal call depending on if loop
      	has been vectorized or not.
      	* tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
      	New function.
      	(slpeel_tree_duplicate_loop_to_edge_cfg): Add scalar_loop argument.
      	If non-NULL, copy basic blocks from scalar_loop instead of loop, but
      	still to loop's entry or exit edge.
      	(slpeel_tree_peel_loop_to_edge): Add scalar_loop argument, pass it
      	down to slpeel_tree_duplicate_loop_to_edge_cfg.
      	(vect_do_peeling_for_loop_bound, vect_do_peeling_for_loop_alignment):
      	Adjust callers.
      	(vect_loop_versioning): If LOOP_VINFO_SCALAR_LOOP, perform loop
      	versioning from that loop instead of LOOP_VINFO_LOOP, move it to the
      	right place in the CFG afterwards.
      	* tree-vect-loop.c (vect_determine_vectorization_factor): Handle
      	MASK_STORE.
      	* cfgloop.h (struct loop): Add dont_vectorize field.
      	* tree-loop-distribution.c (copy_loop_before): Adjust
      	slpeel_tree_duplicate_loop_to_edge_cfg caller.
      	* optabs.def (maskload_optab, maskstore_optab): New optabs.
      	* passes.def: Add a note that pass_vectorize must immediately follow
      	pass_if_conversion.
      	* tree-predcom.c (split_data_refs_to_components): Give up if
      	DR_STMT is a call.
      	* tree-vect-stmts.c (vect_mark_relevant): Don't crash if lhs
      	is NULL.
      	(exist_non_indexing_operands_for_use_p): Handle MASK_LOAD
      	and MASK_STORE.
      	(vectorizable_mask_load_store): New function.
      	(vectorizable_call): Call it for MASK_LOAD or MASK_STORE.
      	(vect_transform_stmt): Handle MASK_STORE.
      	* tree-ssa-phiopt.c (cond_if_else_store_replacement): Ignore
      	DR_STMT where lhs is NULL.
      	* optabs.h (can_vec_perm_p): Fix up comment typo.
      	(can_vec_mask_load_store_p): New prototype.
      	* optabs.c (can_vec_mask_load_store_p): New function.
      
      	* gcc.dg/vect/vect-cond-11.c: New test.
      	* gcc.target/i386/vect-cond-1.c: New test.
      	* gcc.target/i386/avx2-gather-5.c: New test.
      	* gcc.target/i386/avx2-gather-6.c: New test.
      	* gcc.dg/vect/vect-mask-loadstore-1.c: New test.
      	* gcc.dg/vect/vect-mask-load-1.c: New test.
      
      From-SVN: r206022
      Jakub Jelinek committed
    • Additional ChangeLog entry fix. · d5be9028
      From-SVN: r206021
      Jakub Jelinek committed
    • Fix up ChangeLog entry function name. · 4b689195
      From-SVN: r206020
      Jakub Jelinek committed
    • re PR libgomp/59337 (surprising OMP error message) · 97a778bd
      	PR libgomp/59337
      	* openmp.c (resolve_omp_atomic): Adjust error message.
      
      	* gfortran.dg/gomp/pr59337.f90: New test.
      
      From-SVN: r206017
      Jakub Jelinek committed
    • Revert r206010. · 292e6398
      From-SVN: r206016
      Kirill Yukhin committed
    • driver-arm.c (arm_cpu_table): Add cortex-a12 entry. · 2c00495a
      2013-12-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
      
      	* config/arm/driver-arm.c (arm_cpu_table): Add cortex-a12 entry.
      
      From-SVN: r206015
      Kyrylo Tkachov committed
    • re PR ipa/59265 (Segmentation fault in ipa_note_param_call for -fprofile-use in SPEC CPU2006) · fd3c9a7e
      	PR ipa/59265
      	* ipa-profile.c (ipa_profile_generate_summary): Do not ICE when
      	call is already devirtualized.
      
      Co-Authored-By: Markus Trippelsdorf <octoploid@yandex.com>
      
      From-SVN: r206014
      Jan Hubicka committed
    • Makefile.in (version.o): Restore dependencies on $(REVISION), $(DATESTAMP),… · 609458ae
      Makefile.in (version.o): Restore dependencies on $(REVISION), $(DATESTAMP), $(BASEVER) and $(DEVPHASE).
      
      	* Makefile.in (version.o): Restore dependencies on
      	$(REVISION), $(DATESTAMP), $(BASEVER) and $(DEVPHASE).
      
      From-SVN: r206013
      Jakub Jelinek committed
    • re PR ipa/59473 (ice in get_class_context with -O3) · 3b4e93c3
      
      	PR ipa/59473
      	* ipa-devirt.c (get_class_context): Do not ICE when type is found
      	at wrong offset.
      
      From-SVN: r206012
      Jan Hubicka committed
    • re PR libgomp/58756 (FAIL: libgomp.c/pr58392.c execution test) · e9792e1d
      	PR libgomp/58756
      	* omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_REDUCTION>: For
      	reductions without placeholder if is_simd, but when not using
      	GOMP_SIMD* internal calls, also perform the reduction operation
      	on the outer var rather than simple assignment.
      
      	* testsuite/libgomp.c/pr58756.c: New test.
      
      From-SVN: r206011
      Jakub Jelinek committed
    • i386.c (slm_cost): Fix imul cost for HI. · cc7937da
      * config/i386/i386.c (slm_cost): Fix imul cost for HI.
      
      From-SVN: r206010
      Yuri Rumyantsev committed
    • re PR middle-end/58956 (wrong code at -O1 and above (affecting gcc 4.6 to trunk)) · 9f1363cd
      	PR middle-end/58956
      	PR middle-end/59470
      	* gimple-walk.h (walk_stmt_load_store_addr_fn): New typedef.
      	(walk_stmt_load_store_addr_ops, walk_stmt_load_store_ops): Use it
      	for callback params.
      	* gimple-walk.c (walk_stmt_load_store_ops): Likewise.
      	(walk_stmt_load_store_addr_ops): Likewise.  Adjust all callback
      	calls to supply the gimple operand containing the base tree
      	as an extra argument.
      	* tree-ssa-ter.c: Include gimple-walk.h.
      	(find_ssaname, find_ssaname_in_store): New helper functions.
      	(find_replaceable_in_bb): For calls or GIMPLE_ASM, only set
      	same_root_var if USE is used somewhere in the stores of the stmt.
      	* ipa-prop.c (visit_ref_for_mod_analysis): Remove name of the stmt
      	argument and ATTRIBUTE_UNUSED, add another unnamed tree argument.
      	* ipa-pure-const.c (check_load, check_store, check_ipa_load,
      	check_ipa_store): Likewise.
      	* gimple.c (gimple_ior_addresses_taken_1, check_loadstore): Likewise.
      	* ipa-split.c (test_nonssa_use, mark_nonssa_use): Likewise.
      	(verify_non_ssa_vars, visit_bb): Adjust their callers.
      	* cfgexpand.c (add_scope_conflicts_1): Use
      	walk_stmt_load_store_addr_fn type for visit variable.
      	(visit_op, visit_conflict): Remove name of the stmt
      	argument and ATTRIBUTE_UNUSED, add another unnamed tree argument.
      	* tree-sra.c (asm_visit_addr): Likewise.  Remove name of the data
      	argument and ATTRIBUTE_UNUSED.
      	* cgraphbuild.c (mark_address, mark_load, mark_store): Add another
      	unnamed tree argument.
      	* gimple-ssa-isolate-paths.c (check_loadstore): Likewise.  Remove
      	ATTRIBUTE_UNUSED from stmt parameter.
      
      	* gcc.target/i386/pr59470.c: New test.
      
      From-SVN: r206009
      Jakub Jelinek committed
    • opts-common.c (integral_argument): Add support for hexadecimal command option integer arguments. · 317c1849
      2013-12-16  Chung-Lin Tang  <cltang@codesourcery.com>
      
      	* opts-common.c (integral_argument): Add support for
      	hexadecimal command option integer arguments. Update comments.
      
      From-SVN: r206008
      Chung-Lin Tang committed
    • Daily bump. · de9d8725
      From-SVN: r206007
      GCC Administrator committed
  2. 15 Dec, 2013 7 commits
    • re PR ipa/59265 (Segmentation fault in ipa_note_param_call for -fprofile-use in SPEC CPU2006) · b786d31f
      
      	PR ipa/59265
      	* ipa-prop.c (ipa_analyze_call_uses): Skip already
      	devirtualized calls.
      	g++.dg/torture/pr59265.C: New testcase.
      
      From-SVN: r206004
      Jan Hubicka committed
    • vect-nop-move.c (foo32x2_be): Call __builtin_ia32_emms for 32bit x86 targets. · 88fab00d
      	* gcc.dg/vect/vect-nop-move.c (foo32x2_be): Call
      	__builtin_ia32_emms for 32bit x86 targets.
      	(foo32x2_le): Ditto.
      	(main): Reorder function calls.
      
      From-SVN: r206002
      Uros Bizjak committed
    • pr57756.c (dg-options): Add -mno-sse3. · 4e7a80df
      	* gcc.target/i386/pr57756.c (dg-options): Add -mno-sse3.
      
      From-SVN: r206000
      Uros Bizjak committed
    • * ChangeLog: Add missing PR number. · 71803dc5
      From-SVN: r205999
      Uros Bizjak committed
    • pr43662.c (dg-options): Add -maccumulate-outgoing-args. · e009b7da
      	* gcc.target/i386/pr43662.c (dg-options):
      	Add -maccumulate-outgoing-args.
      	* gcc.target/i386/pr43869.c (dg-options): Ditto.
      	* gcc.target/i386/pr57003.c (dg-options): Ditto.
      	* gcc.target/i386/avx-vzeroupper-16.c (dg-options):
      	Remove -mtune=generic and add -maccumulate-outgoing-args instead.
      	* gcc.target/i386/avx-vzeroupper-17.c (dg-options): Ditto.
      	* gcc.target/i386/avx-vzeroupper-18.c (dg-options): Ditto.
      	* gcc.target/x86_64/abi/callabi/func-1.c (dg-options):
      	Add -maccumulate-outgoing-args.
      	* gcc.target/x86_64/abi/callabi/func-2a.c (dg-options): Ditto.
      	* gcc.target/x86_64/abi/callabi/func-2b.c (dg-options): Ditto.
      	* gcc.target/x86_64/abi/callabi/func-indirect.c (dg-options): Ditto.
      	* gcc.target/x86_64/abi/callabi/func-indirect-2a.c (dg-options): Ditto.
      	* gcc.target/x86_64/abi/callabi/func-indirect-2b.c (dg-options): Ditto.
      	* gcc.target/x86_64/abi/callabi/leaf-1.c (dg-options): Ditto.
      	* gcc.target/x86_64/abi/callabi/leaf-2.c (dg-options): Ditto.
      	* gcc.target/x86_64/abi/callabi/pr38891.c (dg-options): Ditto.
      	* gcc.target/x86_64/abi/callabi/vaarg-1.c (dg-options): Ditto.
      	* gcc.target/x86_64/abi/callabi/vaarg-2.c (dg-options): Ditto.
      	* gcc.target/x86_64/abi/callabi/vaarg-3.c (dg-options): Ditto.
      	* gcc.target/x86_64/abi/callabi/vaarg-4a.c (dg-options): Ditto.
      	* gcc.target/x86_64/abi/callabi/vaarg-4b.c (dg-options): Ditto.
      	* gcc.target/x86_64/abi/callabi/vaarg-5a.c (dg-options): Ditto.
      	* gcc.target/x86_64/abi/callabi/vaarg-5b.c (dg-options): Ditto.
      
      From-SVN: r205998
      Uros Bizjak committed
    • re PR fortran/59493 ([OOP] ICE: Segfault on Class(*) pointer association) · 013a961b
      2013-12-15  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/59493
      	* class.c (gfc_find_intrinsic_vtab): Handle BT_CLASS.
      
      
      2013-12-15  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/59493
      	* gfortran.dg/unlimited_polymorphic_15.f90: New.
      
      From-SVN: r205997
      Janus Weil committed
    • Daily bump. · 5fbcd8d4
      From-SVN: r205996
      GCC Administrator committed
  3. 14 Dec, 2013 14 commits
  4. 13 Dec, 2013 4 commits