144580 Commits

Author SHA1 Message Date
Jakub Jelinek
c464c0db19 Tweak comment further.
From-SVN: r233567
2016-02-19 20:13:20 +01:00
Jakub Jelinek
4b6c824a58 re PR c++/69851 (ICE: in assign_temp, at function.c:961)
PR c++/69851
	* expr.c (store_field): Don't use bit-field path if exp is
	COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
	different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
	and the assignment can be performed by bitwise copy.  Formatting
	fix.

	* g++.dg/torture/pr69851.C: New test.

From-SVN: r233566
2016-02-19 20:11:58 +01:00
Martin Sebor
15fca21a3e PR testsuite/69573 - FAIL: gcc.dg/pr61053.c (test for excess errors)
Tested on x86_64 by running make check-c with
RUNTESTFLAGS='--target_board=unix/-m32/-m128bit-long-double dg.exp=pr61053.c'
gcc/testsuite/ChangeLog:
2016-01-30  Martin Sebor  <msebor@redhat.com>

	PR testsuite/69573
	* gcc.dg/pr61053.c: Tweaked test to avoid bogus failures.

From-SVN: r233564
2016-02-19 11:37:40 -07:00
Patrick Palka
200e869c8f Adjust fix PR c++/68948
gcc/cp/ChangeLog:

	PR c++/68948
	* pt.c (tsubst_baselink): Don't diagnose an invalid constructor
	call here.
	* semantics.c (finish_call_expr): Don't assume a constructor
	call is dependent if only the "this" pointer is dependent.  When
	building a constructor call, always use a dummy object.

From-SVN: r233563
2016-02-19 17:04:29 +00:00
Jakub Jelinek
de4fcb999f re PR middle-end/69838 (Lra deletes EH_REGION)
PR middle-end/69838
	* lra.c (lra_process_new_insns): If non-call exceptions are enabled,
	call copy_reg_eh_region_note_forward on before and/or after sequences
	and remove note from insn if it no longer can throw.

From-SVN: r233562
2016-02-19 17:25:58 +01:00
Jakub Jelinek
03a616ac36 re PR c++/69850 (unnecessary -Wnonnull-compare warning)
PR c++/69850
	* init.c (build_vec_delete_1): Set TREE_NO_WARNING on the NE_EXPR
	condition.
	* cp-gimplify.c (cp_fold): Propagate TREE_NO_WARNING from binary
	operators if folding preserved the binop, just with different
	arguments.

	* g++.dg/warn/Wnonnull-compare-2.C: New test.
	* g++.dg/warn/Wnonnull-compare-3.C: New test.

From-SVN: r233561
2016-02-19 17:02:51 +01:00
Jakub Jelinek
19e2158623 re PR c++/67767 (-Wsuggest-attribute=noreturn suggests noreturn for function which already has noreturn and cold.)
PR c++/67767
	* parser.c (cp_parser_std_attribute_spec_seq): Don't assume
	attr_spec is always single element chain, chain all the attributes
	properly together in the right order.

	* g++.dg/cpp0x/pr67767.C: New test.

From-SVN: r233560
2016-02-19 17:01:50 +01:00
Kyrylo Tkachov
2db16594fe [AArch64] Skip gcc.target/aarch64/assembler_arch_1.c if assembler does not support it
* lib/target-supports.exp: Define aarch64_asm_FUNC_ok checks
	for fp, simd, crypto, crc, lse.
	* doc/sourcebuild.texi (AArch64-specific attributes): Document the
	above.
	* gcc.target/aarch64/assembler_arch_1.c: Add aarch64_asm_lse_ok
	effective target check.

From-SVN: r233559
2016-02-19 14:20:27 +00:00
Jakub Jelinek
5a7d9d1e13 re PR tree-optimization/69820 (Test miscompiled with -O3 option)
PR target/69820
	* config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
	if TARGET_AVX512BW.

	* gcc.target/i386/pr69820.c: New test.

From-SVN: r233558
2016-02-19 14:42:38 +01:00
Andreas Krebbel
d9128d88e6 S/390: z13 Add missing commutative operand markers.
gcc/ChangeLog:

	* config/s390/vector.md: Add missing commutative operand markers
	to the patterns which qualify for one.
	* config/s390/vx-builtins.md: Likewise.

From-SVN: r233556
2016-02-19 10:39:15 +00:00
Andreas Krebbel
90573e884b S/390: Add single element vector types to iterators.
gcc/ChangeLog:

	* config/s390/vector.md (VI, VI_QHS): Add single element vector
	types to mode iterators.
	(vec_double): ... and mode attribute.
	* config/s390/vx-builtins.md (non_vec_int): Likewise.

From-SVN: r233555
2016-02-19 10:38:22 +00:00
Andreas Krebbel
6448f0645b S/390: z13 Change predicates of 128 bit add sub.
So far usage of 128 bit add/sub instruction was rejected if the second
operand was a constant because the predicate rejected this.

gcc/testsuite/ChangeLog:

	* gcc.target/s390/vector/int128-1.c: New test.

gcc/ChangeLog:

	* config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
	Change the predicate of op2 from nonimmediate to general and let
	reload fix it if necessary.

From-SVN: r233554
2016-02-19 10:37:19 +00:00
Andreas Krebbel
ece33b1b76 S/390: Add vec_sub_u128 to vecintrin.h
This adds a missing macro to the vecintrin.h header file.

gcc/ChangeLog:

	* config/s390/vecintrin.h (vec_sub_u128): Define missing macro.

From-SVN: r233553
2016-02-19 10:35:48 +00:00
Andreas Krebbel
d0a859e621 S/390: z13 fix mode in vcond expansion
For floating point vector compares the target mode is an integer mode
which accidently was used as register mode when forcing the compare
operands into regs.

gcc/ChangeLog:

	* config/s390/s390.c (s390_expand_vcond): Use the compare operand
	mode.

gcc/testsuite/ChangeLog:

	* gcc.target/s390/vector/vec-vcond-1.c: New test.

From-SVN: r233552
2016-02-19 10:34:12 +00:00
Andreas Krebbel
9e4eb64394 S/390: Adjust movstr-1.c testcase to work with the z13 stpcpy implementation.
2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gcc.target/s390/md/movstr-1.c: Allow also the z13 strings
	instruction pattern name to prevent the testcase from failing with
	-march=z13.

From-SVN: r233551
2016-02-19 10:32:38 +00:00
Andreas Krebbel
859a4c0e84 S/390: z13 inline stpcpy implementation.
A handwritten loop for stpcpy using the new z13 vector instructions
appears to be much faster than the millicoded instruction.  However,
the implementation is much longer and therefore will only be enabled
when optimization for speed.

gcc/testsuite/ChangeLog:

	* gcc.target/s390/md/movstr-2.c: New test.

gcc/ChangeLog:

	* config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
	* config/s390/s390.c (s390_expand_vec_movstr): New function.
	* config/s390/s390.md ("movstr<P:mode>"): Call
	s390_expand_vec_movstr.

From-SVN: r233550
2016-02-19 10:31:05 +00:00
Andreas Krebbel
9a36359ec6 S/390: z13 lcbb fix address operand.
gcc/ChangeLog:

2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.md: Add missing output modifier for operand 1
	to print it as address properly.

From-SVN: r233549
2016-02-19 10:28:45 +00:00
Andreas Krebbel
239020213a S/390: Add IBM z13 pipeline description
This patch adds proper support for the -mtune=z13 option by adding a
z13 pipeline description.  As started with zEC12 we mostly make use of
the sched reorder hooks to implement a grouping strategy.  However,
this time we also keep an eye at the instruction mix provided in the
out of order window to allow the hardware to exploit the different
units.

gcc/ChangeLog:

	* config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
	* config/s390/2964.md: New file.
	* config/s390/s390.c (s390_get_sched_attrmask): Use the right set
	of insn grouping attributes depending on the CPU level.
	(s390_get_unit_mask): New function.
	(s390_sched_score): Remove the OOO from the scheduling macros.
	Add loop to calculate a score for the instruction mix.
	(s390_sched_reorder): Likewise plus improve debug output.
	(s390_sched_variable_issue): Rename macros as above.  Calculate
	the unit distances after actually scheduling an insn.  Improve
	debug output.
	(s390_sched_init): Clear last_scheduled_unit_distance array.
	* config/s390/s390.md: Include 2964.md.

From-SVN: r233548
2016-02-19 10:27:12 +00:00
Marcin Kościelnicki
efc2340b5f S/390: Add __morestack test.
gcc/testsuite/ChangeLog:

	* gcc.target/s390/morestack.c: New test.

From-SVN: r233547
2016-02-19 10:20:23 +00:00
Dominik Vogt
ca2bfbc2ca S/390: PR 69625: Add test case
gcc/testsuite/ChangeLog

	PR target/69625
	* gcc.target/s390/pr69625.c: Add test case.

From-SVN: r233546
2016-02-19 10:15:43 +00:00
Jakub Jelinek
7082a7621a re PR target/69671 (FAIL: gcc.target/i386/avx512vl-vpmovqb-1.c scan-assembler-times vpmovqb[ \\t]+[^{\n]*%ymm[0-9]+[^\n]*%xmm[0-9]+{%k[1-7]}{z}(?)
PR target/69671
	* config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
	*avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
	*avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
	*avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
	*avx512f_<code>v8div16qi2_mask_1): New insns.

From-SVN: r233545
2016-02-19 08:56:36 +01:00
Jason Merrill
747b61fcb3 mangle.c (maybe_check_abi_tags): Add for_decl parm.
* mangle.c (maybe_check_abi_tags): Add for_decl parm.  Call
	mangle_decl.
	(mangle_decl): Call maybe_check_abi_tags for function scope.
	(mangle_guard_variable): Call maybe_check_abi_tags here.
	(write_guarded_var_name): Not here.

From-SVN: r233544
2016-02-19 01:25:05 -05:00
GCC Administrator
654f089a92 Daily bump.
From-SVN: r233543
2016-02-19 00:16:16 +00:00
Bernd Edlinger
efd4bd05f3 re PR testsuite/68580 (FAIL: c-c++-common/tsan/pr65400-1.c -O0 execution test)
PR testsuite/68580
* c-c++-common/tsan/pr65400-1.c (v, q, o): Make 8-byte aligned.

From-SVN: r233538
2016-02-18 22:27:09 +00:00
Michael Meissner
2bf2078afb re PR bootstrap/68404 (PGO/LTO bootstrap failure on ppc64le)
[gcc]
2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/68404
	* config/rs6000/predicates.md (fusion_gpr_addis): Revert
	2016-02-09 change.

	* config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
	earlyclobber from target.  Use wF constraint for fused memory
	address.
	(fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.

[gcc/testsuites]
2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/68404
	* gcc.target/powerpc/fusion.c: Revert the 2016-02-09 change.
	* gcc.target/powerpc/fusion3.c: Likewise.

From-SVN: r233532
2016-02-18 19:36:39 +00:00
Jakub Jelinek
c461d26383 Do not emit red stack zones for a fn with no_sanitize_address
PR sanitizer/69863
	* cfgexpand.c (asan_sanitize_stack_p): New function.
	(partition_stack_vars): Use the function.
	(expand_stack_vars): Likewise.
	(defer_stack_allocation): Likewise.
	(expand_used_vars): Likewise.

Co-Authored-By: Martin Liska <mliska@suse.cz>

From-SVN: r233524
2016-02-18 17:15:25 +00:00
Richard Biener
f003579e9c re PR middle-end/69553 (Optimizations O1/O2 makes std::array value incorrect when passed to function)
2016-02-18  Richard Biener  <rguenther@suse.de>

	PR middle-end/69553
	* fold-const.c (operand_equal_p): Properly compare offsets for
	IMAGPART_EXPR and ARRAY_REF.

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

From-SVN: r233520
2016-02-18 14:34:59 +00:00
Nick Clifton
cc7ab8a232 Fix PR number in changelog entries.
From-SVN: r233519
2016-02-18 13:23:06 +00:00
Nick Clifton
19233914d1 PR target/62554
PR target/69610
gcc     * config/arm/arm.c (arm_option_override_internal): Disable
        interworking if the target does not support thumb instructions.
        (arm_reload_in_hi): Handle the case where a register to register
        move needs reloading because there is no simple pattern to handle
        it.
        (arm_reload_out_hi): Likewise.

tests   * gcc.target/arm/pr62554.c: New test.
        * gcc.target/arm/pr69610-1.c: New test.
        * gcc.target/arm/pr69610-2.c: New test.

From-SVN: r233518
2016-02-18 13:00:07 +00:00
Richard Biener
23f2783968 re PR middle-end/69854 (ICE: tree check: expected class 'constant', have 'binary' (plus_expr) in generic_simplify_65, at generic-match.c:3110)
2016-02-18  Richard Biener  <rguenther@suse.de>

	PR middle-end/69854
	* match.pd: Don't use fold_binary or fold_unary for folding
	constants.

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

From-SVN: r233516
2016-02-18 08:43:58 +00:00
Ian Lance Taylor
43414a5dd3 libgo: Update to final Go 1.6 release.
Reviewed-on: https://go-review.googlesource.com/19592

From-SVN: r233515
2016-02-18 05:56:46 +00:00
Jason Merrill
fa837fb670 re PR c++/65985 (compiler segfault with assert() in constexpr constructor body)
PR c++/65985
	* constexpr.c (build_constexpr_constructor_member_initializers):
	Handle an additional STATEMENT_LIST.

From-SVN: r233514
2016-02-18 00:08:09 -05:00
Jason Merrill
bcb5f3c9f5 re PR c++/68585 (c++14 code accepted by 4.9 not accepted by 5 and 6)
PR c++/68585
	* constexpr.c (cxx_eval_bare_aggregate): Fix 'changed' detection.

From-SVN: r233513
2016-02-18 00:08:02 -05:00
Jason Merrill
50ccdf5bc2 re PR c++/68679 (gcc-5.2.1 ICE in C++11 anon union of structs with template fns, OK in gcc <= 4.9.3)
PR c++/68679
	* decl2.c (reset_type_linkage_2): Look through member templates.

From-SVN: r233512
2016-02-18 00:07:55 -05:00
GCC Administrator
f590daa42a Daily bump.
From-SVN: r233511
2016-02-18 00:16:12 +00:00
Jakub Jelinek
932c0da42d re PR c++/69850 (unnecessary -Wnonnull-compare warning)
PR c++/69850
	* gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
	on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
	* gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
	warn on gimple_no_warning_p statements.

	* init.c (build_delete): Set TREE_NO_WARNING on ifexp.

	* g++.dg/warn/Wnonnull-compare-1.C: New test.

From-SVN: r233508
2016-02-17 23:27:24 +01:00
Jason Merrill
0f02dd56f5 re PR c++/69842 (Parameter deduction in polymorphic lambdas)
PR c++/69842
	* method.c (forward_parm): Split out from...
	(add_one_base_init): ...here.
	* lambda.c (maybe_add_lambda_conv_op): Use it.

From-SVN: r233506
2016-02-17 15:45:15 -05:00
Max Filippov
9bfcbdeecf xtensa: fix libgcc build with --text-section-literals
Functions __muldf3_aux, __divdf3_aux, __mulsf3_aux and __divsf3_aux
don't start with leaf_entry, so they need explicit .literal_position,
otherwise libgcc build fails in the presence of --text-section-literals.

2016-02-17  Max Filippov  <jcmvbkbc@gmail.com>
libgcc/
	* config/xtensa/ieee754-df.S (__muldf3_aux, __divdf3_aux): Add
	.literal_position before the function.
	* config/xtensa/ieee754-sf.S (__mulsf3_aux, __divsf3_aux):
	Likewise.

From-SVN: r233505
2016-02-17 20:21:48 +00:00
Jonathan Wakely
e8f289e597 extend.texi (C++ Attributes): Correct description of warn_unused type attribute.
* doc/extend.texi (C++ Attributes): Correct description of
	warn_unused type attribute.

From-SVN: r233502
2016-02-17 17:36:22 +00:00
Jerry DeLisle
efea09f21b re PR libfortran/69651 ([6 Regession] Usage of unitialized pointer io/list_read.c)
2016-02-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/69651
	* io/list_read.c (push_char4): Fix the pointer usage for xrealloc.

From-SVN: r233500
2016-02-17 16:48:57 +00:00
Bill Schmidt
1bed93e465 altivec.md (*altivec_lvxl_<mode>_internal): Output correct instruction.
[gcc]

2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
	correct instruction.

[gcc/testsuite]

2012-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/vec-cg.c: New test.

From-SVN: r233499
2016-02-17 16:23:55 +00:00
Richard Biener
375374ad41 re PR rtl-optimization/69609 (block reordering consumes an inordinate amount of time, REE consumes much memory)
2016-02-17  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/69609
	* bb-reorder.c (struct bbro_basic_block_data): Add priority member.
	(find_traces_1_round): When ending a trace update cached priority
	of successors.
	(bb_to_key): Use cached priority when available.
	(copy_bb): Initialize cached priority.
	(reorder_basic_blocks_software_trace_cache): Likewise.

From-SVN: r233498
2016-02-17 14:57:58 +00:00
Richard Biener
57bfb13452 re PR testsuite/69586 (FAIL: gcc.dg/uninit-21.c for target defaulting to short enum)
2016-02-17  Richard Biener  <rguenther@suse.de>

	PR testsuite/69586
	* gcc.dg/uninit-21.c: Add -fno-short-enums.

From-SVN: r233497
2016-02-17 14:51:27 +00:00
Kyrylo Tkachov
a44e0ebb89 [AArch64] PR target/69161: Don't use special predicate for CCmode comparisons in expressions that require matching modes
PR target/69161
	* config/aarch64/predicates.md (aarch64_comparison_operator_mode):
	New predicate.
	(aarch64_comparison_operator): Break overly long line into two.
	(aarch64_comparison_operation): Likewise.
	* config/aarch64/aarch64.md (cstorecc4): Use
	aarch64_comparison_operator_mode instead of
	aarch64_comparison_operator.
	(cstore<mode>4): Likewise.
	(aarch64_cstore<mode>): Likewise.
	(*cstoresi_insn_uxtw): Likewise.
	(cstore<mode>_neg): Likewise.
	(*cstoresi_neg_uxtw): Likewise.

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

From-SVN: r233496
2016-02-17 13:42:35 +00:00
Kyrylo Tkachov
ac4bf40708 [ARM] PR target/69161: Don't ignore mode when matching comparison operator in cstore-like patterns
PR target/69161
	* config/arm/predicates.md (arm_comparison_operator_mode):
	New predicate.
	* config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
	instead of arm_comparison_operator.
	(*mov_negscc): Likewise.
	(*mov_notscc): Likewise.
	* config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
	(*thumb2_mov_negscc): Likewise.
	(*thumb2_mov_negscc_strict_it): Likewise.
	(*thumb2_mov_notscc): Likewise.
	(*thumb2_mov_notscc_strict_it): Likewise.

From-SVN: r233495
2016-02-17 13:39:30 +00:00
David Sherwood
ffacd7263e re PR target/69532 (FAIL: gcc.target/arm/{vect-,}fmaxmin.c execution test on armv7)
2016-02-17  David Sherwood  <david.sherwood@arm.com>

    gcc/testsuite:
        PR target/69532
        * gcc.target/arm/fmaxmin.c: Change effective target to arm_v8_neon_hw.
        * gcc.target/arm/vect-fmaxmin.c: Likewise.

From-SVN: r233494
2016-02-17 13:16:31 +00:00
Wilco Dijkstra
1312b1ba11 As part of the final cleanup of aarch64_internal_mov_immediate a return was accidentally removed.
As part of the final cleanup of aarch64_internal_mov_immediate a return was
accidentally removed.  This causes the 2-instruction case to fallthrough
into the general case even when it found a match.  An example immediate is
0xcccccccccccccccd which was using 2 instructions in GCC5 but now requires 4.
Adding the return fixes the regressions.

2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>

    gcc/
	* config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
	Add missing return.

From-SVN: r233490
2016-02-17 11:52:35 +00:00
Eric Botcazou
448db8d2f6 * gcc.dg/ifcvt-4.c: Skip on Visium.
From-SVN: r233489
2016-02-17 11:20:06 +00:00
Eric Botcazou
8072945b83 visium.c (machine_libfunc_index): New enum.
* config/visium/visium.c (machine_libfunc_index): New enum.
	(machine_libfuncs): New structure.
	(visium_libfuncs): New static variable.
	(TARGET_INIT_LIBFUNCS): Define to...
	(visium_init_libfuncs): ...this.  New function.
	(expand_block_move_4): Use the appropriate libfunc.
	(expand_block_move_2): Likewise.
	(expand_block_move_1): Likewise.
	(expand_block_set_4): Likewise.
	(expand_block_set_2): Likewise.
	(expand_block_set_1): Likewise.
	(visium_trampoline_init): Likewise.

From-SVN: r233488
2016-02-17 11:17:15 +00:00
Nick Clifton
01c93899e2 msp430.c (msp430_mcu_data): Sync with data from TI's devices.csv file as of March 2016.
* config/msp430/msp430.c (msp430_mcu_data): Sync with data from
	TI's devices.csv file as of March 2016.

From-SVN: r233487
2016-02-17 09:53:42 +00:00