Commit Graph

61888 Commits

Author SHA1 Message Date
Bernd Schmidt 3342fd71e0 Improve warning locations (PR66208)
PR c/66208
	* c-common.c (check_function_nonnull): Remove unnecessary declaration.
	Add new arg loc and pass it down as context.
	(check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
	to the location to use for the warning.
	(check_function_arguments): New arg loc.  All callers changed.  Pass
	it to check_function_nonnull.
	* c-common.h (check_function_arguments): Adjust declaration.

testsuite/
	PR c/66208
	* c-c++-common/pr66208.c: New file.

From-SVN: r232345
2016-01-13 20:03:26 +00:00
Jakub Jelinek 2ad3adf102 re PR middle-end/69156 (gcc.dg/pr59630.c: ICE: verify_gimple failed: non-trivial conversion at assignment with -fno-tree-ccp)
PR tree-optimization/69156
	* gimple.c (validate_type): Removed.
	(gimple_builtin_call_types_compatible_p): Use
	useless_type_conversion_p instead of validate_type.
	* value-prof.c (gimple_stringop_fixed_value): Fold
	icall_size to correct type.

	* gcc.dg/pr69156.c: New test.

From-SVN: r232342
2016-01-13 20:21:59 +01:00
Jonathan Wakely 260936f29d Clarify __atomic_compare_exchange effects
* doc/extend.texi (__atomic Builtins): Clarify compare_exchange
	effects.

From-SVN: r232341
2016-01-13 19:07:21 +00:00
Richard Henderson 4c868789e4 re PR target/68964 (Internal compiler error for test case gcc.dg/tm/20100610.c since r231674)
PR 68964

gcc/
 PR tree-opt/68964
 * target.def (builtin_tm_load, builtin_tm_store): Remove.
 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
 (ix86_builtin_tm_store): Remove.
 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
 * doc/tm.texi: Rebuild.
 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
 (BUILT_IN_TM_MEMCPY_RTWN): New.
 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
 fallback from vector to integer helpers.
 (build_tm_load): Handle vector types directly, instead of
 via target hook.
 (build_tm_store): Likewise.
 (expand_assign_tm): Prepare for register types not handled by
 the above.  Copy them to memory and use memcpy.
 * tree.c (tm_define_builtin): New.
 (find_tm_vector_type): New.
 (build_tm_vector_builtins): New.
 (build_common_builtin_nodes): Call it.

libitm/
 * Makefile.am (libitm_la_SOURCES) [ARCH_AARCH64]: Add vect128.cc
 (libitm_la_SOURCES) [ARCH_ARM]: Add neon.cc
 (libitm_la_SOURCES) [ARCH_PPC]: Add vect128.cc
 (libitm_la_SOURCES) [ARCH_S390]: Add vect128.cc
 * configure.ac (ARCH_AARCH64): New conditional.
 (ARCH_PPC, ARCH_S390): Likewise.
 * Makefile.in, configure: Rebuild.
 * libitm.h (_ITM_TYPE_M128): Always define.
 * vect64.cc: Split ...
 * vect128.cc: ... out of...
 * config/x86/x86_sse.cc: ... here.
 * config/arm/neon.cc: New file.

From-SVN: r232330
2016-01-13 09:03:42 -08:00
Uros Bizjak ef6d177268 pr45685.c (dg-options): Add -mno-sse4.
* gcc.target/i386/pr45685.c (dg-options): Add -mno-sse4.
	* gcc.target/i386/pr68432-1.c (dg-options): Ditto.
	* gcc.target/i386/pr68432-2.c (dg-options): Ditto.
	* gcc.target/i386/pr68432-3.c (dg-options): Ditto.

From-SVN: r232329
2016-01-13 17:50:17 +01:00
Uros Bizjak 6235f59c57 i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for TARGET_SSE_MATH without TARGET_SSE2.
* config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
	TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.

From-SVN: r232328
2016-01-13 17:41:46 +01:00
Yvan Roux 4e3999a75b arm-arches.def: Remove spurious whitespace in "armv8.1-a" and "armv8.1-a+crc" entries.
2016-01-13  Yvan Roux  <yvan.roux@linaro.org>

	* config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
	and "armv8.1-a+crc" entries.

From-SVN: r232325
2016-01-13 15:28:28 +00:00
Alexander Fomin 8866d62c0a AVX512: Restrict default masks for prefetch gather/scatter
instructions.

gcc/

	PR target/69228
	* config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
	Change first operand predicate from register_or_constm1_operand
	to register_operand.
	(define_expand "avx512pf_gatherpf<mode>df"): Likewise.
	(define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
	(define_expand "avx512pf_scatterpf<mode>df"): Likewise.
	(define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
	(define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
	(define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
	(define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
	* config/i386/i386.c (ix86_expand_builtin): Remove first operand
	comparison with constm1_rtx from vec_prefetch_gen part.

gcc/testsuite

	PR target/69228
	* gcc.target/i386/avx512pf-vscatterpf0dpd-1.c: Adjust.
	* gcc.target/i386/avx512pf-vscatterpf0dps-1.c: Likewise.
	* gcc.target/i386/avx512pf-vscatterpf0qpd-1.c: Likewise.
	* gcc.target/i386/avx512pf-vscatterpf0qps-1.c: Likewise.
	* gcc.target/i386/avx512pf-vscatterpf1dpd-1.c: Likewise.
	* gcc.target/i386/avx512pf-vscatterpf1dps-1.c: Likewise.
	* gcc.target/i386/avx512pf-vscatterpf1qpd-1.c: Likewise.
	* gcc.target/i386/avx512pf-vscatterpf1qps-1.c: Likewise.

From-SVN: r232324
2016-01-13 09:31:13 -05:00
Richard Biener 8bc47ae2a7 re PR tree-optimization/69013 (gfortran-5.3.0 ICE in prune_uninit_phi_opnds_in_unrealizable_paths, at tree-ssa-uninit.c:1121)
2016-01-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69013
	* tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
	Exchange assert for a test.

From-SVN: r232320
2016-01-13 12:15:01 +00:00
Andreas Krebbel 9060e33505 S/390: PR69247: Fix bswap hi splitter.
gcc/ChangeLog:

2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR target/69247
	* config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.

gcc/testsuite/ChangeLog:

2016-01-13  Jakub Jelinek  <jakub@redhat.com>

	PR target/69247
	* gcc.dg/pr69247.c: New test.

From-SVN: r232318
2016-01-13 11:59:29 +00:00
Richard Biener 40311329e5 re PR tree-optimization/69242 (ICE in visit_reference_op_load, at tree-ssa-sccvn.c:3224)
2016-01-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69242
	* tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
	assert with a check.

	* gcc.dg/torture/pr69242.c: New testcase.

From-SVN: r232315
2016-01-13 08:27:42 +00:00
Richard Biener ccbd710399 re PR tree-optimization/69186 (ICE at -O3 on x86_64-linux-gnu in vect_update_misalignment_for_peel, at tree-vect-data-refs.c:889)
2016-01-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69186
	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
	Properly guard vect_update_misalignment_for_peel call.

	* gcc.dg/torture/pr69186.c: New testcase.

From-SVN: r232314
2016-01-13 08:26:45 +00:00
Jeff Law c6f72a4614 [PATCH][PR tree-optimization/pr67755] Fix profile insanity adjustments
PR tree-optimization/pr67755
	* tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
	"need_profile_correction".
	(thread_block_1): Initialize new field to false by default.  If we
	have multiple thread paths through a common joiner to different
	final targets, then set new field to true.
	(compute_path_counts): Only do count adjustment when it's really
	needed.

	PR tree-optimization/67755
	* gcc.dg/tree-ssa/pr67755.c: New test.

From-SVN: r232313
2016-01-12 21:17:36 -07:00
Sandra Loosemore 5ee4820a1f invoke.texi (Spec Files): Move section down in file, past all command-line option descriptions.
2016-01-12  Sandra Loosemore <sandra@codesourcery.com>

	gcc/
	* doc/invoke.texi (Spec Files): Move section down in file, past
	all command-line option descriptions.

From-SVN: r232311
2016-01-12 22:27:24 -05:00
Trevor Saunders 36365906b7 remove mark_hook gty attribute
gcc/ChangeLog:

2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	PR middle-end/54809
	* doc/gty.texi: Remove documentation of mark_hook.
	* gengtype.c (struct write_types_data): Remove code to support
	mark_hook attribute.
	(walk_type): Likewise.
	(write_func_for_structure): Likewise.

From-SVN: r232309
2016-01-13 02:51:11 +00:00
Sandra Loosemore ad9c3d9d46 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
gcc/
	* doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
	Directory Options, and -specs= to Overall Options.
	(Overall Options): Adjust similarly.  Reorder to group related
	options together.  Make -specs= cross-reference the spec file details.
	(Directory Options): Adjust similarly.

From-SVN: r232306
2016-01-12 19:40:41 -05:00
Jeff Law bd4b6b0d78 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
From-SVN: r232297
2016-01-12 15:38:06 -07:00
Olivier Hainque ba85c5fd8f Prevent "undef var" errors on gcc --help or --version with self-specs
* gcc.c (spec_undefvar_allowed): New global.
        (process_command): Set to true when running for --version or --help,
        alone or together.
        (getenv_spec_function): When the variable is not defined, use the
        variable name as the variable value if we're allowed not to issue
        a fatal error.

From-SVN: r232287
2016-01-12 17:53:14 +00:00
Bin Cheng c446cf07e9 re PR tree-optimization/68911 (wrong code with -O1 -ftree-vrp)
PR tree-optimization/68911
	* tree-vrp.c (adjust_range_with_scev): Check overflow in range
	information computed for expression "init + nit * step".

	gcc/testsuite/ChangeLog
	PR tree-optimization/68911
	* gcc.c-torture/execute/pr68911.c: New test.

From-SVN: r232286
2016-01-12 17:49:51 +00:00
Sandra Loosemore ee30410c37 invoke.texi (Invoking GCC): Copy-edit.
2016-01-12  Sandra Loosemore <sandra@codesourcery.com>

	gcc/
	* doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
	about name of GCC executable.  Remove deleted node from menu.
	(Directory Options) <-B>: Remove cross-reference to deleted node.
	(Target Options): Delete section.

From-SVN: r232285
2016-01-12 12:34:37 -05:00
Christian Bruel 81b9a3d9f5 re PR target/69180 ([ARM] #pragma GCC target should not warn about redefined macros)
PR target/69180
* config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.

From-SVN: r232276
2016-01-12 16:01:12 +01:00
Jakub Jelinek 8b1bbf9cd7 re PR target/69198 (FAIL: gcc.target/i386/avx512vl-vmovaps-1.c scan-assembler-times vmovaps[ \\t]+[^{\n]*%xmm[0-9]+[^\n]*\\){%k[1-7]}(?:\n|[ \\t]+#) 1)
PR target/69198
	* config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
	aligned_mem is properly set for AVX512-VL floating point masked
	stores.

From-SVN: r232268
2016-01-12 14:20:33 +01:00
Jakub Jelinek 5664cea1cd re PR target/69175 (ICE in haifa_luid_for_non_insn, at haifa-sched.c:7895)
PR target/69175
	* ifcvt.c (cond_exec_process_if_block): When removing the last
	insn from then_bb, remove also any possible barriers that follow it.

	* g++.dg/opt/pr69175.C: New test.

From-SVN: r232267
2016-01-12 14:19:49 +01:00
H.J. Lu 5cc2af593f Define STDINT_LONG32 and add predefined integer types for IAMCU
Define STDINT_LONG32 to 0, add SIZE_TYPE, PTRDIFF_TYPE and WCHAR_TYPE
for IAMCU to make integer types compatible with i386 Linux.

	PR target/68456
	PR target/69226
	* config/i386/iamcu.h (SIZE_TYPE): New macro.
	(PTRDIFF_TYPE): Likewise.
	(WCHAR_TYPE): Likewise.
	(WCHAR_TYPE_SIZE): Likewise.
	(STDINT_LONG32): Likewise.

From-SVN: r232266
2016-01-12 05:16:53 -08:00
Richard Biener 8eac49b1b6 re PR target/69053 (ICE in build_vector_from_val)
2016-01-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69053
	* tree-vect-loop.c (get_initial_def_for_reduction): Properly
	convert initial value for cond reductions.

	* g++.dg/torture/pr69053.C: New testcase.

From-SVN: r232263
2016-01-12 11:41:16 +00:00
Richard Biener 5b723b6806 re PR testsuite/69007 (test cases gcc.dg/vect/vect-reduc-dot-s8a.c fails starting with r231815)
2016-01-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69007
	* tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
	widen_sum after dot_prod and sad.

From-SVN: r232262
2016-01-12 11:39:54 +00:00
Richard Biener 2935d99414 re PR tree-optimization/69168 (ICE in vect_analyze_loop_2, at tree-vect-loop.c:2182)
2016-01-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69168
	* tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
	pattern stmt SLP type.
	* tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
	end up unused so cope with that case.

	* gcc.dg/torture/pr69168.c: New testcase.

From-SVN: r232261
2016-01-12 08:36:24 +00:00
Richard Biener 66c16fd94f re PR tree-optimization/69157 (ICE in vect_transform_stmt, at tree-vect-stmts.c:8176)
2016-01-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69157
	* tree-vect-stmts.c (vectorizable_mask_load_store): Check
	stmts def type only during analyze phase.
	(vectorizable_call): Likewise.
	(vectorizable_simd_clone_call): Likewise.
	(vectorizable_conversion): Likewise.
	(vectorizable_assignment): Likewise.
	(vectorizable_shift): Likewise.
	(vectorizable_operation): Likewise.
	(vectorizable_store): Likewise.
	(vectorizable_load): Likewise.

	* gcc.dg/torture/pr69157.c: New testcase.

2016-01-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69174
	* tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
	space.
	(vectorizable_load): Properly compute the number of loads needed
	for permuted strided SLP loads and do not spuriously assign
	to SLP_TREE_VEC_STMTS.

	* gcc.dg/torture/pr69174.c: New testcase.

From-SVN: r232260
2016-01-12 08:30:44 +00:00
Andris Pavenis 3df6ff355f [PATCH 5/6] [DJGPP] Update DJGPP configuration related files
* config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
       (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
       (MD_EXEC_PREFIX): Remove.
       (MD_STARTFILE_PREFIX) Removee.
       (FILE_NAME_ABSOLUTE_P): Remove.
       (CPP_SPEC): Do not read macros from sys/version.h.
       (LINK_COMMAND_SPEC): Remove.
       (LOCAL_INCLUDE_DIR): Remove.
       (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
       (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
       (POST_LINK_SPEC): Define to invoke stubify after linker
       (LIBSTDCXX): Remove define
       (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
       (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
       (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
       (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
       (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
       (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
       (i386_djgpp_asm_named_section): Add propotype of new procedure

       * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
       (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
       (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX in config/i386/djgpp.h).
       (STANDARD_STARTFILE_PREFIX_2): Define identical to STANDARD_STARTFILE_PREFIX_1.
       (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
       (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal installation errors.
       (MAX_OFILE_ALIGNMENT): Define to 128.
       (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.

       * config/i386/djgpp.c: New file. Add implementation of i386_djgpp_asm_named_section.

       * config/i386/djgpp.opt: Remove obsolete option -mbnu210.

       * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
       Add rule for building djgpp.o.

From-SVN: r232258
2016-01-12 06:57:10 +02:00
Bill Schmidt 3574cf47fa rs6000.c (v2df_reduction_p): New function.
[gcc]

2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (v2df_reduction_p): New function.
	(rtx_is_swappable_p): Reductions are swappable.
	(insn_is_swappable_p): V2DF reductions are swappable.

[gcc/testsuite]

2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/swaps-p8-23.c: New test.
	* gcc.target/powerpc/swaps-p8-24.c: Likewise.

From-SVN: r232257
2016-01-12 04:49:55 +00:00
John David Anglin 668c901b80 pa.c (pa_emit_move_sequence): Handle floating point reloads for other unsupported memory operands.
* config/pa/pa.c (pa_emit_move_sequence): Handle floating point
	reloads for other unsupported memory operands.

From-SVN: r232253
2016-01-12 01:35:23 +00:00
Kugan Vivekanandarajah 27b1820af0 re PR target/69194 (internal compiler error: in extract_insn, at recog.c:2286)
gcc/ChangeLog:

2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
	    Jim Wilson  <jim.wilson@linaro.org>

	PR target/69194
	* config/arm/arm-builtins.c (arm_expand_neon_args): Call
	copy_to_mode_reg instead of force_reg.

gcc/testsuite/ChangeLog:

2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
	    Jim Wilson  <jim.wilson@linaro.org>

	PR target/69194
	* gcc.target/arm/pr69194.c: New test.


Co-Authored-By: Jim Wilson <jim.wilson@linaro.org>

From-SVN: r232251
2016-01-12 00:40:54 +00:00
H.J. Lu cf4de6af25 Set FLT_EVAL_METHOD to 2 only if 387 FPU is used
When 387 FPU isn't used, there is no excess precision.  We should set
FLT_EVAL_METHOD to 2 only if 387 FPU is used.

gcc/

	PR target/69225
	* config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
	TARGET_80387 is true.

gcc/testsuite

	PR target/69225
	* gcc.target/i386/pr69225-1.c: New test.
	* gcc.target/i386/pr69225-2.c: Likewise.
	* gcc.target/i386/pr69225-3.c: Likewise.
	* gcc.target/i386/pr69225-4.c: Likewise.
	* gcc.target/i386/pr69225-5.c: Likewise.
	* gcc.target/i386/pr69225-6.c: Likewise.

From-SVN: r232249
2016-01-11 16:30:30 -08:00
Jakub Jelinek 26ff85b0b9 re PR target/69071 (ICE: in decompose, at rtl.h:2107 with -g)
PR target/69071
	* lra-eliminations.c (move_plus_up): Only move plus up
	if subreg of the constant can be simplified into constant
	and use the simplified subreg of the constant instead of
	the original constant.

	* gcc.dg/pr69071.c: New test.

From-SVN: r232241
2016-01-11 20:06:34 +01:00
Jakub Jelinek 5a32af0ec5 fold-const.c (fold_convertible_p): Don't return true for conversion of VECTOR_TYPE to same sized integral type.
* fold-const.c (fold_convertible_p): Don't return true
	for conversion of VECTOR_TYPE to same sized integral type.
	(fold_convert_loc): Fix up formatting.  Fold conversion of
	VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
	instead of NOP_EXPR.

From-SVN: r232236
2016-01-11 18:57:43 +01:00
Jakub Jelinek 1ebd5558eb re PR tree-optimization/69214 (ICE (segfault) at -Os on x86_64-linux-gnu in "fail_abnormal_edge_coalesce")
PR tree-optimization/69214
	* tree-vrp.c (simplify_cond_using_ranges): Don't propagate
	innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
	Formatting fix.

	* gcc.c-torture/compile/pr69214.c: New test.

From-SVN: r232235
2016-01-11 18:56:39 +01:00
Jakub Jelinek 7c285ab9ae re PR tree-optimization/69207 (gcc.target/aarch64/vldN_1.c ICEs at -O3)
PR tree-optimization/69207
	* tree-vect-slp.c (vect_get_constant_vectors): For
	VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
	fold_convertible_p to vector_type's element type, and always
	use VCE for non-VECTOR_BOOLEAN_TYPE_P.

From-SVN: r232233
2016-01-11 18:55:38 +01:00
Richard Biener 62446e6e25 re PR tree-optimization/69173 (ICE (segfault) in vinfo_for_stmt)
2016-01-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69173
	* tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
	fixup the cycle if all stmts are in a pattern.

	* gcc.dg/torture/pr69173.c: New testcase.

From-SVN: r232230
2016-01-11 16:02:23 +00:00
Uros Bizjak 3a28db463b re PR middle-end/68999 (FAIL: gfortran.fortran-torture/execute/save_1.f90 execution)
PR middle-end/68999
	* alias.c (base_alias_check): Move check for addresses with
	alignment ANDs before the call for compare_base_decls.
	(memrefs_conflict_p): Return -1 for different decls
	that went through alignment adjustments.

From-SVN: r232229
2016-01-11 16:48:40 +01:00
Kyrylo Tkachov 2b8568fe56 [AArch64] PR rtl-optimization/68796: Add patterns for QImode and HImode comparison with zero
PR rtl-optimization/68796
	* config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
	* config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
	and QImode comparisons against zero with CC_NZmode.
	* config/aarch64/iterators.md (short_mask): New mode_attr.

	* gcc.target/aarch64/tst_5.c: New test.
	* gcc.target/aarch64/tst_6.c: Likewise.

From-SVN: r232228
2016-01-11 14:44:22 +00:00
H.J. Lu b34b1c3436 Remove snprintf from <avx512>_(load|store)<mode>_mask
This patch removes snprintf from <avx512>_(load|store)<mode>_mask
patterns.

	* config/i386/sse.md (<avx512>_load<mode>_mask): Remove
	snprintf.
	(<avx512>_store<mode>_mask): Likewise.

From-SVN: r232225
2016-01-11 04:33:25 -08:00
Kyrylo Tkachov 5baf45323b [RTL-ifcvt] PR rtl-optimization/68841: Make sure one basic block doesn't clobber CC reg usage of the other
PR rtl-optimization/68841
        * ifcvt.c (struct noce_if_info): Add orig_x field.
        (bbs_ok_for_cmove_arith): Add to_rename parameter.
        Don't record conflicts on to_rename if it's present.
        Allow memory destinations in sets.
        (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
        blocks, passing orig_x to the checks.
        (noce_process_if_block): Set if_info->orig_x appropriately.

        * gcc.dg/pr68841.c: New test.
        * gcc.c-torture/execute/pr68841.c: New test.

From-SVN: r232223
2016-01-11 12:13:50 +00:00
Tom de Vries 1c5211b13c Add missing phi args in create_parallel_loop
2016-01-11  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/69069
	* tree-parloops.c (create_parallel_loop): Add missing phi args.

From-SVN: r232221
2016-01-11 12:08:38 +00:00
Yuri Rumyantsev ca90b1ed9a re PR rtl-optimization/68920 (Undesirable if-conversion for a rarely taken branch)
gcc/

2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR rtl-optimization/68920
	* config/i386/i386.c (ix86_option_override_internal): Restrict number
	of conditional moves for  RTL if-conversion to 1 for
	TARGET_ONE_IF_CONV_INSN.
	* config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
	* config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
	* params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
	parameter to restirct number of conditional moves for
	RTL if-conversion.
	* doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
	* ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
	conditionl moves.

gcc/testsuite/

2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR rtl-optimization/68920
	* gcc.dg/ifcvt-4.c: Add "--param max-rtl-if-conversion-insns=3" option
	for ix86 targets.
	* gcc.dg/ifcvt-5.c: New test.

From-SVN: r232220
2016-01-11 12:07:31 +00:00
Alexandre Oliva b4934671ae [PR69123] fix handling of MEMs in VTA to avoid dataflow oscillation
The problem arises because we used to drop overwritten MEMs from loc
lists of VALUEs, but not of other onepart variables, and it just so
happens that, by doing so, block 6 in the testcase has no D#5 in its
output in the first pass, because the MEM holding its (previous) value
was correctly dropped from value 88:88, but gains it in the second
pass because D#5 has the MEM location incoming directly in its loc
list, rather than indirectly in a VALUE.

This incorrect binding enables other blocks to believe they have a
tentative binding for D#5 in some cycles, but others, still operating
on the early conclusion, believe there isn't, and they oscillate from
that.

Since we check for escaping MEMs in clobbers, we won't lose anything
relevant by dropping call-clobbered or overwritten MEMs in all onepart
variables, and this ensures the loc intersection operation in onepart
vars won't let a MEM through that wasn't present in earlier
iterations.

for  gcc/ChangeLog

	PR bootstrap/69123
	* var-tracking.c (drop_overlapping_mem_locs): Operate on all
	onepart vars.  Fix typo in comment.  Fix reversed condition in
	unshare test.
	(dataflow_set_remove_mem_locs): Operate on all onepart vars.

for gcc/testsuite/ChangeLog

	PR bootstrap/69123
	* g++.dg/pr69123.C: New.

From-SVN: r232218
2016-01-11 10:40:33 +00:00
Alexandre Oliva 4708731cce [PR69123] make dataflow_set_different details more verbose
for  gcc/ChangeLog

	PR bootstrap/69123
	* var-tracking.c (dump_onepart_variable_differences): New.
	(dataflow_set_different): If a detailed dump is requested,
	delay early returns and dump differences between onepart
	variables present before and after, and added variables.

From-SVN: r232217
2016-01-11 10:40:12 +00:00
Ilya Enkovich 83834c0942 re PR target/69010 (Boolean vector constant with a scalar mode is expanded incorrectly)
gcc/

	PR target/69010
	* expr.c (expand_expr_real_1): For boolean vector constants
	with a scalar mode use const_scalar_mask_from_tree.
	(const_scalar_mask_from_tree): New.
	* optabs.c (expand_vec_cond_mask_expr): Use mask mode
	assigned to a mask type to handle constants.

gcc/testsuite/

	PR target/69010
	* gcc.target/i386/pr69010.c: New test.

From-SVN: r232216
2016-01-11 10:27:17 +00:00
Martin Jambor dcf89d5780 [PR ipa/69044] Do not clone for param removal when not possible
2016-01-11  Martin Jambor  <mjambor@suse.cz>

	PR ipa/69044
	* ipa-cp.c (estimate_local_effects): Do not clone for removal of
	useless parameters if we cannot change function signature.

testsuite/
	* gcc.target/i386/chkp-pr69044.c: New test.

From-SVN: r232215
2016-01-11 11:09:17 +01:00
Martin Jambor fa59e957b4 [PR ipa/66616] Copy can_change_signature flag to artificial thunks
2016-01-11  Martin Jambor  <mjambor@suse.cz>

	PR ipa/66616
	* cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
	flag.

From-SVN: r232214
2016-01-11 11:03:44 +01:00
Tom de Vries d95167eef4 Don't allow latch with phi in try_transform_to_exit_first_loop_alt
2016-01-11  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/69109
	* tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
	latch with phi.

	* gcc.dg/autopar/pr69109-2.c: New test.
	* gcc.dg/autopar/pr69109.c: New test.

From-SVN: r232212
2016-01-11 09:38:28 +00:00