Commit Graph

143540 Commits

Author SHA1 Message Date
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
Torvald Riegel 0d1ed41261 libitm: Remove dead code and data.
From-SVN: r232275
2016-01-12 14:57:45 +00:00
Jonathan Wakely 1c3c7c4145 Prevent recursive instantiation in std::function
PR libstdc++/69005
	PR libstdc++/69222
	* include/std/functional (function::_Invoke): Remove, use result_of.
	(function::_Callable): Replace alias template with class template
	and use partial specialization instead of _NotSelf alias template.
	(function(_Functor)): Add "not self" constraint so that _Callable is
	not used while type is incomplete.
	* testsuite/20_util/function/69222.cc: New.

From-SVN: r232273
2016-01-12 14:54:33 +00:00
Richard Biener 3c4e91c903 re PR debug/69077 (omnetpp ICEs with -flto -g)
2016-01-12  Richard Biener  <rguenther@suse.de>

	PR lto/69077
	lto/
	* lto-symtab.c (lto_symtab_prevailing_virtual_decl): Properly
	merge TREE_ADDRESSABLE and DECL_POSSIBLY_INLINED flags.

	* g++.dg/lto/pr69077_0.C: New testcase.
	* g++.dg/lto/pr69077_1.C: Likewise.

From-SVN: r232272
2016-01-12 14:22:40 +00: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
Alan Lawrence 86cefc4942 Cleanup vect testsuite includes
* gcc.dg/vect/fast-math-bb-slp-call-3.c: Declare functions as 'extern'
	rather than #including math.h & stdlib.h.
	* gcc.dg/vect/pr47001.c: Declare abort as 'extern', remove stdlib.h.
	* gcc.dg/vect/pr49771.c: Likewise.
	* gcc.dg/vect/vect-10-big-array.c: Likewise.
	* gcc.dg/vect/vect-neg-store-1.c: Likewise.
	* gcc.dg/vect/vect-neg-store-2.c: Likewise.
	* gcc.dg/vect/slp-37.c: Change NULL to 0, remove stdlib.h.
	* gcc.dg/vect/pr40254.c: Remove unnecessary include of stdlib.h.
	* gcc.dg/vect/pr44507.c: Likewise.
	* gcc.dg/vect/pr45902.c: Likewise.
	* gcc.dg/vect/slp-widen-mult-half.c: Likewise.
	* gcc.dg/vect/vect-117.c: Likewise.
	* gcc.dg/vect/vect-99.c: Likewise.
	* gcc.dg/vect/vect-aggressive-1.c: Likewise.
	* gcc.dg/vect/vect-cond-1.c: Likewise.
	* gcc.dg/vect/vect-cond-2.c: Likewise.
	* gcc.dg/vect/vect-cond-3.c: Likewise.
	* gcc.dg/vect/vect-cond-4.c: Likewise.
	* gcc.dg/vect/vect-mask-load-1.c: Likewise.
	* gcc.dg/vect/vect-mask-loadstore-1.c: Likewise.
	* gcc.dg/vect/vect-over-widen-1-big-array.c: Likewise.
	* gcc.dg/vect/vect-over-widen-1.c: Likewise.
	* gcc.dg/vect/vect-over-widen-2-big-array.c: Likewise.
	* gcc.dg/vect/vect-over-widen-2.c: Likewise.
	* gcc.dg/vect/vect-over-widen-3-big-array.c: Likewise.
	* gcc.dg/vect/vect-over-widen-3.c: Likewise.
	* gcc.dg/vect/vect-over-widen-4-big-array.c: Likewise.
	* gcc.dg/vect/vect-over-widen-4.c: Likewise.
	* gcc.dg/vect/vect-widen-mult-const-s16.c: Likewise.
	* gcc.dg/vect/vect-widen-mult-const-u16.c: Likewise.
	* gcc.dg/vect/vect-widen-mult-half-u8.c: Likewise.
	* gcc.dg/vect/vect-widen-mult-half.c: Likewise.
	* gcc.dg/vect/no-trapping-math-vect-ifcvt-11.c: Remove unnecessary
	include of signal.h.
	* gcc.dg/vect/no-trapping-math-vect-ifcvt-12.c: Likewise.
	* gcc.dg/vect/no-trapping-math-vect-ifcvt-13.c: Likewise.
	* gcc.dg/vect/no-trapping-math-vect-ifcvt-14.c: Likewise.
	* gcc.dg/vect/no-trapping-math-vect-ifcvt-15.c: Likewise.
	* gcc.dg/vect/no-trapping-math-vect-ifcvt-16.c: Likewise.
	* gcc.dg/vect/vect-ifcvt-16.c: Likewise.
	* gcc.dg/vect/vect-ifcvt-17.c: Likewise.
	* gcc.dg/vect/vect-ifcvt-2.c: Likewise.
	* gcc.dg/vect/vect-ifcvt-3.c: Likewise.
	* gcc.dg/vect/vect-ifcvt-4.c: Likewise.
	* gcc.dg/vect/vect-ifcvt-5.c: Likewise.
	* gcc.dg/vect/vect-ifcvt-5.c: Likewise.
	* gcc.dg/vect/vect-ifcvt-6.c: Likewise.
	* gcc.dg/vect/vect-ifcvt-7.c: Likewise.
	* gcc.dg/vect/vect-ifcvt-9.c: Likewise.
	* gcc.dg/vect/vect-outer-5.c: Likewise.
	* gcc.dg/vect/vect-outer-6.c: Likewise.
	* gcc.dg/vect/vect-strided-u8-i8-gap4-unknown.c: Remove unnecessary
	include of stdio.h.

From-SVN: r232265
2016-01-12 12:28:47 +00:00
Nick Clifton b832f61ed2 re PR testsuite/68913 (gcc.dg/lto/pr61886 FAILs)
PR target/68913
	* gcc.dg/lto/pr61886_0.c: Rename the external function called
	to fread so that it will be found in all target runtimes.

From-SVN: r232264
2016-01-12 11:43:59 +00: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
Jakub Jelinek 723033a6b2 re PR c++/66808 (tree check fail in symbol_table::decl_assembler_name_hash)
PR c++/66808
	PR c++/69000
	* pt.c (tsubst_decl): If not local_p, clear DECL_TEMPLATE_INFO.

	* g++.dg/tls/pr66808.C: New test.
	* g++.dg/tls/pr69000.C: New test.

From-SVN: r232259
2016-01-12 09:21:53 +01: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 feb20787df re PR tree-optimization/68356 (FAIL: gcc.dg/torture/pr68264.c -O* execution test on x86_64-apple-darwin1(0|4))
PR tree-optimization/68356
	* gcc.dg/torture/pr68264.c: Disable exp2 ERANGE test on hppa unix.

From-SVN: r232256
2016-01-12 02:06:20 +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
GCC Administrator 0f474f11b1 Daily bump.
From-SVN: r232248
2016-01-12 00:16:11 +00:00
Joseph Myers 8a4a086c7a * zh_CN.po: Update.
From-SVN: r232244
2016-01-11 23:56:35 +00:00
Jason Merrill 9fc2197747 re PR c++/69131 (default constructor of union incorrectly deleted)
PR c++/69131
	* method.c (walk_field_subobs): Add dtor_from_ctor parm.
	(process_subob_fn): Likewise.  Don't consider triviality if true.
	(synthesize_method_walk): Pass it.

From-SVN: r232243
2016-01-11 15:53:07 -05:00
Jakub Jelinek 23552a4d50 re PR target/67462 (FAIL: gcc.dg/ifcvt-3.c scan-rtl-dump ce1 "3 true changes made")
PR target/67462
	* gcc.dg/ifcvt-3.c: Only compile on lp64 targets, include also i?86
	if lp64.

From-SVN: r232242
2016-01-11 20:07:31 +01: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
David Malcolm 655441d601 PR c++/68795: fix uninitialized close_paren_loc in cp_parser_postfix_expression
gcc/cp/ChangeLog:
	PR c++/68795
	* parser.c (cp_parser_postfix_expression): Initialize
	close_paren_loc to UNKNOWN_LOCATION; only use it if
	it has been written to by
	cp_parser_parenthesized_expression_list.
	(cp_parser_parenthesized_expression_list): Document the behavior
	with respect to the CLOSE_PAREN_LOC param.

From-SVN: r232238
2016-01-11 18:03:15 +00:00
Jakub Jelinek 9cb6bd7432 re PR c++/69211 (g++ ICE on x86_64-linux-gnu (verify_gimple failed))
PR c++/69211
	* cp-gimplify.c (cp_fold): If COMPOUND_EXPR or MODIFY_EXPR
	folded operands have side-effects, but folding changed any of them,
	build a new tree with the folded operands instead of returning the
	unfolded tree.

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

From-SVN: r232237
2016-01-11 18:59:22 +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
Ian Lance Taylor de41ebf5dd re PR go/68980 (ps -o cmd in gotest isn't portable)
PR 68980
    libgo/testsuite: portable ps usage in gotest
    
    gotest is using "ps" to list descendant sleep
    processes in its timeout handling, grepping
    the command name.
    
    We are currently using the "cmd" ps output
    formatter, which is non-portable. We should
    use "comm" which is part of the POSIX
    standard, and outputs only the command name
    and not the arguments.
    
    Fixes https://gcc.gnu.org/PR68980
    
    Reviewed-on: https://go-review.googlesource.com/18426

From-SVN: r232234
2016-01-11 17:55:39 +00: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
Jonathan Wakely 1517bc3008 allocator_traits<allocator<T>> partial specialization
PR libstdc++/60976
	* include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
	Define partial specialization.
	* testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
	destroy members to std::allocator explicit specialization.

From-SVN: r232232
2016-01-11 16:47:58 +00:00
Uros Bizjak 8c18c836db pr66232-10.c: Do not compile on ia32 target.
* gcc.target/i386/pr66232-10.c: Do not compile on ia32 target.
	* gcc.target/i386/pr66232-11.c: Ditto.
	* gcc.target/i386/pr66232-12.c: Ditto.
	* gcc.target/i386/pr66232-13.c: Ditto.

From-SVN: r232231
2016-01-11 17:31:55 +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
Alexander Monakov 0d58938ed7 nvptx plugin: do not force JIT target SM version
When link_ptx runs, a CUDA device is already bound to current thread, so the
driver library knows the target architecture.  There isn't any benefit from
forcing a specific target here; on the contrary, hardcoding sm_30 breaks
offloading on later (Maxwell, sm_5x) devices.
    
	* plugin/plugin-nvptx.c (link_ptx): Do not set CU_JIT_TARGET.

From-SVN: r232227
2016-01-11 15:55:31 +03: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
Tom de Vries 4f6403a8ce Handle case that outer phi res is not used in a phi in gather_scalar_reductions
2016-01-11  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/69108
	* tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
	res is not used in a phi.

	* gcc.dg/autopar/pr69108.c: New test.

From-SVN: r232211
2016-01-11 09:19:33 +00:00
Yury Gribov 4bfede854f Fix docs for -frandom-seed.
2016-01-11  Yury Gribov  <y.gribov@samsung.com>

	PR 67425
	* common.opt (frandom-seed): Fix parameter name.
	* doc/invoke.texi (frandom-seed): Ditto and describe parameter.

From-SVN: r232209
2016-01-11 09:06:14 +00:00
Tom de Vries e9ff08b28d Don't parallelize loops if libgomp not supported
2016-01-11  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/69058
	* tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
	not supported.

From-SVN: r232208
2016-01-11 08:55:16 +00:00